【问题标题】:What effects do the different AVAudioQuality options have on the resulting recording?不同的 AVAudioQuality 选项对生成的录音有什么影响?
【发布时间】:2019-07-30 01:17:26
【问题描述】:

我正在构建的应用程序的一部分涉及录音。以下是相关代码:

let settings = [
            AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
            AVSampleRateKey: 12000,
            AVNumberOfChannelsKey: 1,
            AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue]

audioRecorder = try AVAudioRecorder(url: self.audioFilename, settings: settings)

我希望质量尽可能好,但如果可以节省空间,我希望允许用户更改设置中的质量。

AVAudioQuality 的不同值实际上有什么作用?随着质量下降,他们会使文件变小吗?采样率也是如此吗?虽然我知道专业录音通常是 44100,但我看到的很多教程都使用 12000 左右的采样率,有理由不使用 44100 吗?

【问题讨论】:

    标签: ios swift avfoundation audio-recording


    【解决方案1】:

    我会将上面的图形翻译成它在实践中的工作方式[在录制的声音上]。 音频采样率影响将要录制的频率范围,采样率越高,可以录制的音频频率越高。

    该采样数基于用于将声音数字化的 PCM(脉冲编码调制)。越高,曲线定义越好(如上图所示)

    但更好的曲线在实践中意味着什么? 更好的曲线意味着更多关于高频音频的细节。您可以录制更清晰的声音,特别是在高音频率上。

    为什么是 44100,这个数字是什么意思?有没有办法让您在脑海中弄清楚使用较低 [22050、11000、8000] 采样率的录音听起来会如何?

    是的,有。

    人耳能够听到 20Hz 到 20000Hz 的频率 [一个完美的耳朵,在非常年轻的人身上,可以达到 20000Hz,例如孩子]

    所有其他成年人都能听到大约 20Hz 到 17500Hz(这是平均值)

    当我们将声音数字化时,如果我们希望它最适合人类听觉,我们需要能够将人耳能够听到的整个频率范围数字化。即从 20Hz 到 20000Hz。

    这里简短,不深入详细介绍 PCM 的工作原理,数学和实用规则是:“采样率必须是音频频率的两倍,才能以数字方式记录该音频频率”

    这意味着:为了能够以数字方式录制 18000Hz 的高音,您需要 36000Hz 的采样率(始终是它的两倍)

    这就是数字 44100 是 44100 的原因:它是 20000Hz [人类最大听觉容量] 的两倍(加上一点)

    因此,44100 的采样率能够数字化和记录从 20Hz 到 22000Hz 范围内的音频频率,这刚好高于人类的最大能力,这意味着:完美的声音! (* 对我们人类而言)

    如果您将应用程序采样率设置为 12000 左右,它将允许您录制高达 6000Hz 的声音频率。您将失去大部分声音的高音。

    例如,电话通话的数字采样率为 8000,这使其能够传输高达 4000Hz 的声音频率。它很适合说话,但它错过了很多高于 4000Hz 的更高频率。因此,电话上没有高音。

    现在您可以在脑海中弄清楚采样率如何影响最终录制的声音。从电话音质的 4000Hz,到任何 FM 广播电台的 15200Hz,再到任何 CD 音质的 20000Hz。

    选择您希望/需要能够记录的所需最大音频频率范围,并将该值加倍:您将知道必须在您的应用程序上调整的正确采样率。

    您问是否有任何理由不成为 44100。这取决于录制声音的最终结果。对于声音,只是声音,要记录人说话,12000就足够了:它不像电话那么糟糕,它可以记录高达6000Hz的声音频率,这是大多数声音的音调,它会切断所有其他更高的频率6000Hz(鸟鸣声、分散注意力的声音、金属声等)。所以 12000 比 44100 更适合录制人声。让我们考虑在一家餐厅,所有的饮食噪音和玻璃噪音,录制声音最好采用较低的采样率,以消除所有那些高音并更好地记录声音。

    对于音乐,请始终选择 44100。

    关于文件大小,是的,采样率越低,生成的音频文件就越小。但是你使用的是 AAC 压缩,所以不用担心文件大小:

    • 44100 1 分钟 AAC 录制 [2 通道] 约为 950KB
    • 12000下1分钟AAC录音[2通道]约为280KB
    • 1 小时 AAC 录制 [2 通道] 在 44100 大约是 57MB

    大于 44100 的采样呢?有 48000、96000 甚至更多。

    48000 的采样将允许高达 24000hz 的声音频率(没有超人能够听到这种高频声音)您最终会得到一个更大的文件。

    96000 的采样将允许高达 48000Hz 的声音频率,只有 能够听到高达 45000Hz 的高音。 96000 的采样非常适合录制声音,当再现时听起来与真实声音完全一样,但对于狗的耳朵。对我们来说,与 44100 采样率没有区别。我们的耳朵分不清。 (PS:这个案例值得一提的是,你需要一个能够再现 20000Hz 以上声音的扬声器,这很难找到..)

    PS:采样率以赫特为单位,就像声音频率一样。 在提及采样率时,我故意省略了上面的“Hz”,而在提及声音频率时提及,以避免与许多看起来相似但代表两个不同事物的数字混淆。

    因此,44100 的采样意味着 44100Hz [采样率].. 等等..

    _

    • 1 Hert 表示 1(一)秒间隔内的 1(一)次振荡/旋转/事件
    • 20000Hz 表示声音频率每秒振荡 2 万次。
    • 44100Hz 意味着我们正在通过以每秒 44000 次的速率对声音进行采样来将声音数字化。

    【讨论】:

      【解决方案2】:

      1.AVSampleRateKey 是单个波形的采样点。也就是说,产生的任何声音都是正弦波形的形式,其波形决定了高质量。什么采样会创建音频信号的参考点,数量越少,波形越不准确,反之亦然。

      因此,为了获得更好的质量,数字越大。所以工作室专业人士有 44100,即单个波形的 44100 样本。图像 (c) 但更多样本会创建更大的音轨。

      下面的图片将描述更多

      我建议将音频采样率保持为 44100 并更改

      的参数
      AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
      

      取决于你的喜好。 希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 2011-02-17
        • 2016-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多