to top page
2013-02-13
SoX でサイン波を作ってみたが…
SoX を使ってサイン波を生成した。
   $ sox -n a4.wav synth 1 sine 440
このコマンドで1秒の長さの 440kHz のサイン波 a4.wav ができる。
この WAV ファイルはヘッダ情報がないため、一般のオーディオソフトでは再生できないが、SoX の play コマンドで
   $ play a4.wav
とすれば聴ける。
soxi コマンドで情報を表示すると次のようになっている。

Input File     : 'a4.wav'
Channels : 1
Sample Rate : 48000
Precision : 32-bit
Duration : 00:00:01.00 = 48000 samples ~ 75 CDDA sectors
File Size : 192k
Bit Rate : 1.54M
Sample Encoding: 32-bit Signed Integer PCM

ここまではできたが、ヘッダ情報の追加ができない。たとえば SPTK のコマンドで
   $ raw2wav a4.wav
とやると、次のようなものになってしまう。

Input File     : 'a4.wav.wav'
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Duration : 00:00:06.00 = 96040 samples ~ 450.188 CDDA sectors
File Size : 192k
Bit Rate : 256k
Sample Encoding: 16-bit Signed Integer PCM

パラメタを変えたり、他のツールを使ってもうまくいかない。
あれこれ半日以上やって解決せず。
オーディオの基本を勉強するか、いいかげんにやって結果を利用するかの分かれ道である。
ゴーレムみたいなできそこないを作るつもりなら、後者でもいいかと思う。