首页 > 解决方案 > 不同的 AVAudioQuality 选项对生成的录音有什么影响?

问题描述

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

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

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

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

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

标签: iosswiftavfoundationaudio-recording

解决方案


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

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

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

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

就在这里。

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

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

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

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

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

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

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

推荐阅读