2012-05-11 16 views
2

複数のトーンが再生されるnumpyとscipyライブラリを使用してPythonで.wavファイルを作成したいのですが、私がそれを行う方法は周波数を配列に格納することです生成された信号は別の信号に格納されます。私はそのようなファイルを作成して、目的の再生時間で作成しましたが、サウンドは再生されません。何か不足していますか?.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) 

答えて

3

あなたはWAVEファイルを作成するために使用しているベクターは、山車が含まれていますが、scipy.ioは、ほとんどのプレーヤーでサポートされていない64ビットのint型(the docsに記載されているように)としてそれらを解釈します。

適切に再生できるファイルを作成する必要があり

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

に最後の行を変更します。

+0

ありがとうございました。 –

関連する問題