这是一个创建于 3846 天前的主题,其中的信息可能已经有所发展或是发生改变。
大家好,我是按照http://blog.csdn.net/xsc_c/article/details/8941338写的的代码
我还有三个问题请教?
wave_data = np.fromstring(str_data, dtype=np.short) # 疑问1、此时,如果wave文件的采样宽度是8比特,该如何转成数组呢?使用长度是16比特的short分割数组,合理吗
# for the data is stereo,and format is LRLRLR...
# shape the array to n*2(-1 means fit the y coordinate) wave_data.shape = -1, 2 # 疑问2、此时,应该对文件的channel数做一个判断吧,单声道的不用再这样把组数一分为二了吧?
plt.plot(time, wave_data[0]) # 疑问3、plot的两个参数的长度不一致。 此时time数组的长度是nframe ;而wave_data[0]的长度是wave_data被拆分前的一半,wave_data长度是str_data 被short 分割前的一半,wave_data[0]的长度也就是1/4 nframe 。
谢谢。
1 条回复 • 2014-05-13 10:23:52 +08:00
|
|
1
sivacohan 2014-05-13 10:23:52 +08:00
先说一下wav的格式。wav实际上是RIFF的。具体情况是,开头有一堆头信息,你的nframe之类的就是在这里读出来的。头信息之后就是具体的音频内容了。格式为
LR\n LR\n LR\n
其中L,R的大小和采样大小相同如果是CD的话就是两位。
下面说你的问题:
1、我上面解释了,你自己看看。 2、你说的对。 3、wave_data的长度没变化,现在的wave_data[0]应该是 L\n L\n L\n
|