左右声道可以记录更多的信息,使用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='b') 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()
发表回复