Android MediaRecorder:AmrWb和ThreeGpp OutputFormat之间的区别

时间:2017-05-01 14:53:37

标签: android mediarecorder google-cloud-speech audioformat

如果我使用Android MediaRecorder录制i文件,我可以设置如下属性:

this.recorder.SetAudioSource(AudioSource.Mic);
this.recorder.SetOutputFormat(OutputFormat.AmrWb);
this.recorder.SetAudioEncoder(AudioEncoder.AmrWb);
this.recorder.SetAudioSamplingRate(16000);

它生成 3gpp -File。如果我将录制的文件发送到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之间究竟有什么区别?

0 个答案:

没有答案