.wav 文件不播放任何声音

Big*_*cho 3 python audio numpy wav scipy

我想使用 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)
Run Code Online (Sandbox Code Playgroud)

Tor*_*rek 5

您用来创建波形文件的向量包含浮点数,但scipy.io将它们解释为 64 位整数(如文档所述),大多数播放器不支持这种方式。

将最后一行更改为

wavfile.write('music.wav',fs,music.astype(np.dtype('i2')))
Run Code Online (Sandbox Code Playgroud)

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