加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Python音频双通道分离

发布时间:2021-07-06 06:10:59 所属栏目:大数据 来源: https://www.jb51.cc
导读:某些音频是双方对话,有可能需要对音频作通道的分离。 示例代码如下: 1 # !/usr/bin/env python 2 -*- coding: utf-8 -*- 3 """ 4 音频双通道分离 5 6 import sys 7 numpy as np 8 from scipy.io wavfile 9 from converter mp3_to_wav 10 11 12 def split_c

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

示例代码如下:

 1 #!/usr/bin/env python
 2  -*- coding: utf-8 -*-
 3 """
 4 音频双通道分离
 5  6 import sys
 7  numpy as np
 8 from scipy.io  wavfile
 9 from converter  mp3_to_wav
10 
11 
12 def split_channel(wav_path,left_wav_path,right_wav_path):
13     14     通道分离
15     :param wav_path: wav音频的路径
16     :param left_wav_path: 左声道的wav音频路径
17     :param right_wav_path: 右声道的wav音频路径
18     :return None:
19     20     try:
21         sample_rate,wav_data = wavfile.read(wav_path)
22         left = []
23         right =24         for item in wav_data:
25             left.append(item[0])
26             right.append(item[1])
27         wavfile.write(left_wav_path,sample_rate,np.array(left))
28         wavfile.write(right_wav_path,np.array(right))
29     except IOError as e:
30         print('error is %s' % str(e))
31     32         other error',sys.exc_info())
33 
34 
35 if __name__ == __main__36     mp3_to_wav(input/test.mp3',tmp/tmp.wav)
37     split_channel(output/left.wavoutput/right.wav')

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

from pydub  AudioSegment
 2 
 3 
 4  mp3_to_wav(source,destin):
 5      6     mp3 转 wav
 7     :param source:
 8     :param destin:
 9 10     11     data = AudioSegment.from_mp3(source)
12     data.export(destin,format=wav')

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

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

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读