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