Python分离立体声wav压缩文件的左右声道

举报
技术火炬手 发表于 2019/08/20 17:32:09 2019/08/20
【摘要】 左右声道可以记录更多的信息,使用python如何分离左右通道呢?wav文件通常会记录左右声道,但wav文件通常会被压缩,我在网上找了几种方法,都不能正常读取压缩后的wav文件,下面介绍一种方法,使用python分离wav文件的左右声道以下是读取wav文件的代码。import soundfile as sfmusicFileName = "1016(37)_13733163362(4)_In_...

左右声道可以记录更多的信息,使用python如何分离左右通道呢?

wav文件通常会记录左右声道,但wav文件通常会被压缩,我在网上找了几种方法,都不能正常读取压缩后的wav文件,下面介绍一种方法,使用python分离wav文件的左右声道

以下是读取wav文件的代码。

import soundfile as sf

musicFileName = "1016(37)_13733163362(4)_In_20190808140419.wav"
sig, sample_rate = sf.read(musicFileName)
print("采样率:%d" % sample_rate)    
print("时长:", sig.shape[0]/sample_rate, '秒')    

serviceData = sig.T[0]
clientData = sig.T[1]

获取到的serviceData,clientData是从声音中分离出来的两个声道,接下来对这两个数据进行可视化。

下面是clientData可视化的代码与波形图

import matplotlib.pyplot as plt
import numpy as np

plt.figure()
l=sig.shape[0]
x = [i/8000 for i in range(l)]
plt.plot(x, clientData, c='r')
plt.show()


下面是serviceData可视化的代码与波形图

import matplotlib.pyplot as plt
import numpy as np

plt.figure()
l=sig.shape[0]
x = [i/8000 for i in range(l)]
plt.plot(x, serviceData , c='r')
plt.show()

下面是serviceData与clientData可视化的代码与波形图,为了更直观的显示两个声道的信号,这里在可视化的时候,调整了不透明度。

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

l=sig.shape[0]
x = [i/8000 for i in range(l)]
plt.plot(x, serviceData, c='r', alpha=0.8)
plt.plot(x, clientData, c='b', alpha=0.8)
plt.show()

分割线动图.gif

本文来自“机器在学习”

原文链接:http://www.siyuanblog.com/?p=104790

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。