最初のサンプル ファイル:
sox -n -r 8k -b 8 test.wav synth 0.02 sine 400 fade t 0 0 0.02 norm
これにより、最初から最後まで直線的にフェードする 0.02 秒の長さの 400Hz サイン トーンが作成されます。これは、8 ビット精度、8kHz のサンプル レート、単一チャンネルの WAV ファイルとして保存されます。
これを [0, 255] の範囲のサンプル値の文字列に変換することに関しては、次のような sox で生成できる未加工のヘッダーなし形式で正しい軌道に乗っています。
sox -V test.wav -e unsigned test.raw
しかし、結果の.raw
ファイルをテキスト エディターで開くと、ナンセンスなファイルのように見えます。これを修正するには、hexdump
ユーティリティを介して if を送信して、データをより読みやすい形式に変換します。
hexdump -v -e '1/1 "%03u "' test.raw > test.txt
私が知る限り (私はhexdump
昨日のことだけを知ったので、私の言葉を福音と見なさないでください):-v
すべての出力が明示的に記述されていることを保証し (そうでない場合、繰り返しはアスタリスクで表されます)、-e
独自のフォーマット文字列を作成できます(内容は次のとおりです)。単一引用符):1/1
データを 1 の「束」で並べ、束ごとに 1 バイトで、"%03u "
各「束」がゼロで埋められた 3 桁の符号なし 10 進数として表されるようにします。各「束」を区切るために、単一の空白も追加されます。
または、次のように、最初のコマンドを 2 番目のコマンドに直接パイプすることもできます。
sox -V test.wav -t raw -e unsigned - | hexdump -v -e '1/1 "%03u "' > test.txt
test.txt の内容は次のようになります。
head -c 64 test.txt
# 132 169 205 233 251 255 250 230 203 167 128 090 057 030 014 009

ゼロ パディングを削除するには、コマンドから '03' を削除しますhexdump
。
これはhexdump
BSD プログラムであり、*NIX システムではどこにでもありますが、Windows で同等のものが何であるかはわかりません。