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)
您用来创建波形文件的向量包含浮点数,但scipy.io将它们解释为 64 位整数(如文档中所述),大多数播放器不支持这种方式。
将最后一行更改为
wavfile.write('music.wav',fs,music.astype(np.dtype('i2')))
Run Code Online (Sandbox Code Playgroud)
应该产生一个可以正常播放的文件。
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |