AMRファイルフォーマットによると:http://developer.nokia.com/community/wiki/AMR_format AMRファイルには6バイトのヘッダーがあり、その後に1バイトのヘッダーを含む一連のオーディオフレームが続きます。各オーディオフレームは20msの長さであり、サンプルレートは各フレームのヘッダに与えられる。最初のフレームのサンプルレートを読み取るには、ファイルの7番目のバイトを読み取る必要があります。 7バイト目を右に3ビットシフトし、新しい値の下位4ビットをマスクします。 javaでは、これは "((value >> 3)& 0x0F)"です。ここで、valueはフレームの1バイトのヘッダです。次に、その数を下の表と照合して、そのフレームのビットレートを決定します。各フレームは20msの長さであるため、ビットレートを掛ける必要があります(ビット/秒として与えるため、その数に1000を掛けてビット/秒を20倍にし、(8ビット/バイト)* 1000msごとに割ります次のフレームヘッダーでスキップするバイト数を取得するには、8000を指定します。フレームの内容を変更する場合は、順番にフレームを新しいファイルに再コピーしますが、新しいフレームを古いものと置き換えてください。一時ファイルはこれに適しています。参考のため、以下のソースページからビットレートテーブルをコピーしました。
0 - AMR 4.75 - 4.75kbit/sで
1をエンコード - AMR 5.15 - 5.15kbit/sで
2をエンコード - AMR 5.9 - 5.9kbit/sで
3をエンコード - AMR 6.7 - 6.7kbit/sで
4をエンコード - AMR 7.4 - 7.4kbit/sで
5をエンコード - AMR 7.95 - 7.95kbit /秒
に符号化します
6 - AMR 10.2 - 10.2kbit/sで
7をエンコード - AMR 12.2 - 12.2kbit/sの
でエンコード