Soxで出力するデータが毎回異なる

問題

Soxで音響信号を加工した場合,その出力が毎回異なる. 例えば

sox.exe input.wav -e ms-adpcm output.wav

のようなMS-ADPCMエンコードや,サンプリングレート変換時など.

視聴目的ならば問題ないかも知れないけれど,数値実験をしなければならない研究用途では毎回出力結果が違うようでは使いものにならない.

解決法

-Rオプションを使う

このオプションを使うと疑似乱数生成器のシードを毎回同一のものを使ってくれるらしい. そこで

sox.exe input.wav -R -e ms-adpcm output.wav

とすると毎回同じ出力が得られました.

ADPCMエンコード・デコードでは乱数は必要ない気がするけれど,ディザリングなどが勝手に行われているのでしょうか.

http://www.hcn.zaq.ne.jp/___/unix/sox-ja.html