我试图了解Safari苹果ios(12.3.1)在浏览器中录制音频的局限性。这是因为我录制的任何语音-不管编解码器/容器是什么-都比通过本地ios应用程序录制的等效音频质量低。
在safari ios(iphone8)中录制的ops,wav和mp3文件似乎以某种质量设置了上限,而与编码器设置(例如,比特率/复杂度/采样率/通道)无关。但是,当在本地应用程序中录制语音时,我发现我可以始终如一地产生出色的结果。
Safari的音频质量不受以下影响:使用不同的javascript记录器(仅wav)和javascript编码器(opus和mp3)记录音频;清除浏览器缓存;从专用浏览器窗口重新加载js;开启MediaRecorder API实验功能。但是
答案 0 :(得分:1)
最近几天,我在各种设备上与getUserMedia()
一起玩。在分析生成的WAV文件(波形和频谱分析)之后,这里是我从中可以获得的一些信息。
Safari iOS将产生一个不错的WAV文件(默认值为48000Khz,16位,立体声),但是无论传递给getUserMedia()
的约束是什么,音频频谱都不会包含任何高于14Khz的频率强>。
因此,WAV容器还可以,但是写入其中的音频质量与可以在本机iOS应用程序中找到的“中”音频预设大致相同。
其结果是对音频产生了非常明显的“电话”效果,并且该文件无法用于专业音频目的。
Android设备在默认配置(音频频谱的严格限制)中产生了相似的结果,但是通过传递一组约束来禁用此类帮助:
autoGainControl:false,
echoCancellation:false,
noiseSuppression:false
我们可以获得非常令人满意的音频质量。
不幸的是,这些相同的设置不允许iOS达到可接受的音频质量,到目前为止,似乎没有可用的解决方法。