使用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 相关文章推荐
初步解析Python中的yield函数的用法
Apr 03 Python
Python求导数的方法
May 09 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python 递归函数详解及实例
Dec 27 Python
python中Apriori算法实现讲解
Dec 10 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
实例详解Python装饰器与闭包
Jul 29 Python
pymysql 开启调试模式的实现
Sep 24 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
numpy实现RNN原理实现
Mar 02 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
咖啡的化学
2021/03/03 咖啡文化
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
Python timeit模块的使用实践
2020/01/13 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
后勤人员自我评价怎么写
2013/09/19 职场文书
质量月口号
2014/06/20 职场文书
护士实习求职信
2014/06/22 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers