欢迎来到站圈网!

媒体php远程node摇摇七牛

投稿中心
head下方广告位置

Python

当前位置: 主页 > 编程语言 > Python

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

时间:2020-12-25|栏目:Python|点击:
    内容页广告位

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

示例代码如下:

#!/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如何实现感知器的逻辑电路

下一篇:分享PyCharm最新激活码(真永久激活方法)不用每月

本文标题:使用Python实现音频双通道分离

本文地址:https://www.zhano.cn/python/26055.html

AD300

广告投放 | 联系我们 | 版权申明 | SiteMap

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:15234109 | 邮箱:15234109#qq.com(#换成@)

Copyright © 2019-2021 豫ICP备19001789号