.wav文件不播放任何声音

时间:2012-05-11 20:43:57

标签: python audio numpy scipy wav

我想使用numpy和scipy库在Python中创建一个.wav文件,其中播放多个音调,我打算这样做的方法是将我的频率存储在一个数组中,然后生成的信号存储在另一个一。我已设法创建具有所需播放时间的此类文件,但它不播放任何声音。我错过了什么吗?

谢谢。

import numpy as np
from scipy.io import wavfile

freq =np.array([440,493,523,587,659,698,783,880]) #tone frequencies

fs=22050    #sample rate
duration=1 #signal duration
music=[]
t=np.arange(0,duration,1./fs) #time

for i in range(0,len(freq)):

    x=10000*np.cos(2*np.pi*freq[i]*t) #generated signals
    music=np.hstack((music,x))

wavfile.write('music.wav',fs,music)

1 个答案:

答案 0 :(得分:3)

用于创建wave文件的向量包含浮点数,但scipy.io将它们解释为64位整数(如the docs中所述),大多数玩家都不支持。< / p>

将最后一行更改为

wavfile.write('music.wav',fs,music.astype(np.dtype('i2')))

应该生成一个可以正常播放的文件。