使用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 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
python中安装模块包版本冲突问题的解决
May 02 Python
python保存文件方法小结
Jul 27 Python
pandas计数 value_counts()的使用
Jun 24 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
python怎么调用自己的函数
Jul 01 Python
django使用channels实现通信的示例
Oct 19 Python
Python爬取某平台短视频的方法
Feb 08 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 Python
python内置进制转换函数的操作
Jun 02 Python
OpenCV全景图像拼接的实现示例
Jun 05 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
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
php array_map()函数实例用法
2021/03/03 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
Python类的基础入门知识
2008/11/24 Python
python模块之re正则表达式详解
2017/02/03 Python
python模块导入的方法
2019/10/24 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
python模块如何查看
2020/06/16 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
关于长城的导游词
2015/01/30 职场文书
六一活动主持词
2015/06/30 职场文书
市场营销计划书
2019/04/24 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电