【问题标题】:poor audio quality of recordings in iOS safari browseriOS Safari 浏览器中录音的音频质量很差
【发布时间】:2019-10-19 05:02:35
【问题描述】:

我正在尝试了解 safari ios (12.3.1) 在浏览器中录制音频的限制。这是因为我录制的任何语音(无论编解码器/容器如何)的质量低于通过本机 ios 应用录制的同等音频。

在 safari ios (iphone8) 中记录的 Opus、wav 和 mp3 文件似乎具有一定的质量上限,无论编码器设置如何(例如比特率/复杂性/采样率/通道)。但在原生应用程序中录制语音时,我发现我可以始终如一地产生出色的结果。

safari 中的音频质量不受以下因素影响: 使用不同的 javascript 录音机(仅限 wav)和 javascript 编码器(opus 和 mp3)录制音频;清除浏览器缓存;从私有浏览器窗口重新加载 js;开启 MediaRecorder API 实验功能。但是

【问题讨论】:

    标签: javascript ios mobile-safari html5-audio audio-recording


    【解决方案1】:

    过去几天我在各种设备上玩getUserMedia()。在分析了生成的 WAV 文件(波形和频谱分析)之后,以下是我能够从中获得的一些信息。

    Safari iOS 将生成一个不错的 WAV 文件(默认为 48000Khz,16 位,立体声),但无论传递给getUserMedia() 的约束如何,音频频谱都不会包含任何高于 14Khz 的频率 . 所以 WAV 容器是可以的,但是写入它的音频质量与原生 iOS 应用程序中可以找到的“中等”音频预设大致相同。

    iOS wave file spectrum

    这样做的后果是对音频产生非常明显的“电话”效果,并且文件无法用于专业音频目的。

    Android 设备在默认配置中产生类似的结果(音频频谱的强烈限制),但通过传递一组禁用辅助功能的约束,如下所示:

    autoGainControl:false, 
    echoCancellation:false, 
    noiseSuppression:false
    

    我们可以达到非常可接受的音频质量。

    android 8 wave file spectrum

    不幸的是,这些相同的设置不允许 iOS 达到可接受的音频质量,并且到目前为止似乎没有可用的解决方法。

    【讨论】:

    • 这是非常有价值的分析。我希望在 iOS 上的 WebKit 中解决 getusermedia 的限制 - 音频质量明显很差。
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2022-12-17
    相关资源
    最近更新 更多