生(ヘッドレス)オーディオファイルのエンコーディングとは何ですか?

生(ヘッドレス)オーディオファイルのエンコーディングとは何ですか?

私はこれをしました:

me@riverbrain:~/sgf$ echo "test" | text2wave -otype raw -F 16000 >> test.raw

ヘッドレスオーディオファイルを生成します。このファイルの驚くべきことは、他の生のcatオーディオファイル(テキストを使用するなど)と関連付けることができることです。

もちろん質問があります。問題はまだプレイできないことです。

me@riverbrain:~/sgf$ play test.raw 

play FAIL formats: bad input format for file `test.raw': sampling rate was not specified

また、サンプリングレートを指定する場合

me@riverbrain:~/sgf$ play -r 16000 test.raw 
play FAIL formats: bad input format for file `test.raw': data encoding was not specified

いくつかの「エンコード」情報を検索したとき、プロセッサアーキテクチャと多くの関連があると感じましたが、おそらく私が間違っている可能性があります。とにかく、生のオーディオファイルのデータエンコーディングが何であるかをコンピュータに「質問」する方法に関するドキュメントが見つかりません。サンプリングレートも私が直接設定して知っていますが、私が知ることができるのがこれです。

ベストアンサー1

さまざまですが、少なくとも私にはtext2waveが1チャンネル、16ビット、符号付き整数PCMを生成します。これらはすべてかなり正常であり、正しく使用すると非常に明確になります(例えば、符号なし整数を誤って使用すると音が非常に歪む)

これで遊ぶには:

play -r 16000 -b 16 -c 1 -e signed-integer /tmp/foo.raw
play -r 16000 -2 -s -c 1 /tmp/foo.raw # obsolete way for older versions of Sox

私はこれらのパラメータがFestivalのどこかに設定されていると思います。これらのいくつかはハードコーディングされるかもしれません。

アーキテクチャに関する唯一の問題はビッグエンディアンとリトルエンディアンです。私のリトルエンディアンシステムでは、フェスティバルはリトルエンディアンを作成しています。ファイルをビッグエンディアンシステムに移動する-L。ビッグエンディアンシステムで実行している場合、text2wavビッグエンディアンデータを書き込むか、リトルエンディアンデータを書き込むかはわかりません。

おすすめ記事