こんにちは皆さん私は本当にランダムなビットを生成するためのチュートリアルに従おうとしています
これはチュートリアルのコマンドですが、機能しません
rec -c 1 -d /dev/dsp -r 8000 -t wav -s w - | ./noise-filter >bits
マイク入力を使用して録音できることはわかっています
rec -c 1 no.wav
これは私が使ってみたコマンドです
rec -c 1 -r 8000 -t wav -s noise.wav | ./noise-filter >bits
しかし、私は得る
root@xxc:~/cc# rec -c 1 -r 8000 -t wav -s noise.wav - | ./noise-filter >bits
rec WARN formats: can't set sample rate 8000; using 48000
rec FAIL sox: Input files must have the same sample-rate
ノイズフィルターを使用しました
チュートリアルでは、使用している古いバージョンのSOXとRECを使用していると思います
sox: SoX v14.3.2 on Ubuntu 12.04 server
誰かが私を助けてくれますか?
このコマンドラインには、リストされている出力が多すぎます。
rec -c 1 -r 8000 -t wav -s noise.wav - | ./noise-filter >bits
^file ^standard output
コマンドパイプラインの場合、出力は最後の-
のみである必要があります。 rec
コマンドは、noise.wav
パラメーターを追加の入力として解釈します。これは失敗するか、偽の出力を生成します。余分なファイル名(およびその他の不要/互換性のないオプション)を削除してみてください。
rec -c 1 -t wav - | ./noise-filter > bits
あなたが参照したチュートリアル(私もそれに従っています!)と最新バージョンのSoXマンページ(2014年11月9日現在)によると、私のために機能した完全な修正されたコマンドは次のとおりです。
rec -c 1 -r 8000 -t raw -e signed-integer -2 - | ./noise-filter > bits
entは、49,152バイトのファイルに対して次の値を返しました。
Entropy = 7.996356 bits per byte.
Optimum compression would reduce the size
of this 49152 byte file by 0 percent.
Chi square distribution for 49152 samples is 247.53, and randomly
would exceed this value 50.00 percent of the times.
Arithmetic mean value of data bytes is 127.5771 (127.5 = random).
Monte Carlo value for Pi is 3.147949219 (error 0.20 percent).
Serial correlation coefficient is -0.002336 (totally uncorrelated = 0.0).
これはかなり高品質のランダムデータです!
ノイズ.wavはsoxが記録できるサンプルレートではないようです。また、soxでは両方のファイルが同じサンプルレートである必要があります。おそらく、より高いサンプルレートでnoise.wavを再生成する必要があります。