如何在 iOS 5 上以编程方式规范化 PCM 音频样本?

Posted

技术标签:

【中文标题】如何在 iOS 5 上以编程方式规范化 PCM 音频样本?【英文标题】:How to programmatically normalize a PCM audio sample on iOS 5? 【发布时间】:2012-01-19 15:49:26 【问题描述】:

我正在使用AVAudioRecorder 录制一个 16 位线性 PCM 文件,并将其保存到 CAF 文件中。

现在我想标准化我录制的音频。 我只是找不到任何可以让我为 iPhone 执行此操作的库,无论是 Apple 还是第 3 方!

【问题讨论】:

【参考方案1】:

峰值归一化采用这种通用形式,您需要为 16 位信号添加一些转换、优化和错误检查:

double* const buffer(...);
const size_t length(...);

double max(0);
// find the peak
for (size_t idx(0); idx < length; ++idx)
  max = std::max(max, buffer[idx]);
// process
double mul(1.0/max);
for (size_t idx(0); idx < length; ++idx)
  buffer[idx] *= mul;

【讨论】:

以上是关于如何在 iOS 5 上以编程方式规范化 PCM 音频样本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上以编程方式将视频上传到 Vine?

如何在 iOS 上以编程方式将视频上传到 Vine?

我如何在iOS上以编程方式为图像着色?

如何在 iPad1 iOS SDK 上以编程方式保存视频

无法在 iOS 上以编程方式调整 UITableView 的大小

在 iOS 上以编程方式向按钮添加操作