Android MediaRecorder:AmrWb和ThreeGpp OutputFormat的区别

如果我使用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究竟有什么区别?

链接地址: http://www.djcxy.com/p/5267.html

上一篇: Android MediaRecorder: Difference between AmrWb and ThreeGpp OutputFormat

下一篇: Record Audio in Peices