使用Python实现音频双通道分离


Posted in Python onDecember 25, 2020

某些音频是双方对话,有可能需要对音频作通道的分离。

示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
音频双通道分离
"""
import sys
import numpy as np
from scipy.io import wavfile
from converter import mp3_to_wav


def split_channel(wav_path, left_wav_path, right_wav_path):
 """
 通道分离
 :param wav_path: wav音频的路径
 :param left_wav_path: 左声道的wav音频路径
 :param right_wav_path: 右声道的wav音频路径
 :return None:
 """
 try:
  sample_rate, wav_data = wavfile.read(wav_path)
  left = []
  right = []
  for item in wav_data:
   left.append(item[0])
   right.append(item[1])
  wavfile.write(left_wav_path, sample_rate, np.array(left))
  wavfile.write(right_wav_path, sample_rate, np.array(right))
 except IOError as e:
  print('error is %s' % str(e))
 except:
  print('other error', sys.exc_info())


if __name__ == '__main__':
 mp3_to_wav('input/test.mp3', 'tmp/tmp.wav')
 split_channel('tmp/tmp.wav', 'output/left.wav', 'output/right.wav')

其中调用了一个自定义的库,converter.py 加入了代码:

from pydub import AudioSegment


def mp3_to_wav(source, destin):
 """
 mp3 转 wav
 :param source:
 :param destin:
 :return None:
 """
 data = AudioSegment.from_mp3(source)
 data.export(destin, format='wav')

本代码示例可以生成两个通道分离后的 wav 文件。

注意:如果源文件的格式是 wav 文件,可以省掉转换格式的过程。

以上就是使用Python实现音频双通道分离的详细内容,更多关于python 音频分离的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
Python实现PS滤镜的旋转模糊功能示例
Jan 20 Python
python读取Excel实例详解
Aug 17 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
Python如何实现强制数据类型转换
Nov 22 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
python代码实现扫码关注公众号登录的实战
Nov 01 Python
分享python函数常见关键字
Apr 26 Python
Python用户自定义异常的实现
Dec 25 #Python
Django前后端分离csrf token获取方式
Dec 25 #Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 #Python
python语言time库和datetime库基本使用详解
Dec 25 #Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 #Python
用python对excel进行操作(读,写,修改)
Dec 25 #Python
python Pexpect模块的使用
Dec 25 #Python
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP四大安全策略
2014/03/12 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
Javascript 中的 && 和 || 使用小结
2010/04/25 Javascript
Js获取事件对象代码
2010/08/05 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
js处理包含中文的字符串实例
2017/10/11 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
Python partial函数原理及用法解析
2019/12/11 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
中层竞聘演讲稿
2014/01/09 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Python正则表达式中flags参数的实例详解
2022/04/01 Python