使用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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
python解析文件示例
Jan 23 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
python人民币小写转大写辅助工具
Jun 20 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
python属于解释语言吗
Jun 11 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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
德生PL990的分析评价
2021/03/02 无线电
escape unescape的php下的实现方法
2007/04/27 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
python从ftp下载数据保存实例
2013/11/20 Python
Python实现的简单万年历例子分享
2014/04/25 Python
Python FTP操作类代码分享
2014/05/13 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
详解python调用cmd命令三种方法
2019/07/08 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
初中音乐教学反思
2014/01/12 职场文书
活动总结怎么写
2014/04/28 职场文书
小学节能减排倡议书
2014/05/15 职场文书
党员个人剖析材料
2014/09/30 职场文书
中小学生学籍证明
2014/10/25 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS