生の(ヘッダーのない)オーディオファイルのエンコーディングは何ですか?


8

私はこれを行いました:

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

「エンコーディング」の情報を調べたところ、プロセッサアーキテクチャに関係していると感じましたが、私は間違っているかもしれません。とにかく、生のオーディオファイルのデータエンコーディングをコンピューターに「尋ねる」方法に関するドキュメントは見つかりません。自分で設定しているため、サンプルレートもわかりますが、それが可能な範囲です。


2
標準のraw形式はありません。それを作成したアプリケーションが使用したパラメーターを調べる必要があります。残念ながら、それは常に十分に文書化されているわけではありません。
Gilles「SO-邪悪なことをやめよう」

回答:


8

異なる場合がありますが、少なくとも私にとって、text2waveは1チャネル、16ビット、符号付き整数PCMを生成します。これらはかなり正常であり、正しい場合は非常に明確になります(たとえば、誤って符号なし整数に署名すると、極端に歪んだサウンドが得られます)。

playでは、次のようになります。

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

これらのパラメータは、フェスティバルのどこかで設定されていると思います。それらの一部は、ハードコーディングされている場合もあります。

アーキテクチャに依存する可能性があるのは、ビッグエンディアンとリトルエンディアンだけです。私のリトルエンディアンのマシンでは、フェスティバルはリトルエンディアンを書いています。そのファイルをビッグエンディアンのマシンに移動した場合、追加する必要があるでしょう-Ltext2wavビッグエンディアンマシンで実行された場合、ビッグエンディアンデータまたはリトルエンディアンデータのどちらを書き込むかはわかりません。


ありがとうございました。これらの応答はすべて素晴らしかったですが、これが私が最終的に使用したソリューションです。
ixtmixilix

2

おそらく、独自のRIFFヘッダーを作成できます。少しバッシングするとそれができるはずです..そしてヘッダーを他の部分にキャットするだけです...

このリンクはヘッダーのレイアウトを示しています。CanonicalWAVEファイル形式

SOには関連リンクもあります。スクリプトRAWオーディオデータをWAVに変換しますが、mplayer / mencoderの回答のマークアップカウントはゼロです。ただし、SoXが機能することを意味します。

SoXは上記の両方のリンクで言及されており、Ubuntuのリポジトリで入手できます。他にもあると思います。

PS ...私はちょうどplayそれが存在することを知らなかった)を使用して試してみて、それがSoXであることを発見しました!... SOリンクはここにコピーされた例を示します:sox -r 44100 -e unsigned -b 8 -c 1 <RAW_FILE> <TARGET_FILE>

soxで動作しない場合は、mplayer / mencoderまたはRIFFヘッダーでうまくいきます。


2

aplay代わりにplayを使用して生ファイルを再生します。このようにして、-tスイッチで生のオーディオであることを指定できます。

aplay -q -c 2 -t raw -f s16 test.raw
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.