Android MediaRecorder を使用して i ファイルを記録する場合、次のようにプロパティを設定できます。
this.recorder.SetAudioSource(AudioSource.Mic);
this.recorder.SetOutputFormat(OutputFormat.AmrWb);
this.recorder.SetAudioEncoder(AudioEncoder.AmrWb);
this.recorder.SetAudioSamplingRate(16000);
3gppファイルを生成します。録音したファイルを Google Cloud Speech API に送信すると、音声が認識されてテキストに変換されます。
var response = speech.SyncRecognize(new RecognitionConfig()
{
Encoding = RecognitionConfig.Types.AudioEncoding.AmrWb,
SampleRate = 16000,
LanguageCode ="de-DE"
}, RecognitionAudio.FromFile("test.3gpp"));
ただし、OutputFormat を
this.recorder.SetOutputFormat(OutputFormat.ThreeGpp);
.3gpp ファイルも生成しますが、Google Cloud API はエラーをスローします。OutputFormat は問題ではなく、両方のケースで AMR エンコードされたエンコードされたデータのコンテナーを定義するだけだと思ったので、それは奇妙です。だから私の質問は:
AMR と ThreeGpp OutputFormat の正確な違いは何ですか?