标准化音频文件 obj-c

Posted

技术标签:

【中文标题】标准化音频文件 obj-c【英文标题】:Normalize Audio File obj-c 【发布时间】:2013-01-14 21:32:50 【问题描述】:

是否有标准化声音文件的库函数?我找遍了,但没有找到。

我希望能够规范化声音文件并将其设置到声音文件中,这样它只需要完成一次而不是即时完成。

这可以用 Core-Audio 完成吗?

【问题讨论】:

【参考方案1】:

是的,它可以完成,但不能通过单个函数调用。

您想要的功能实际上不是 CoreAudio,而是 ExtendedAudioFile.h - AudioToolbox 框架的一部分。这适用于 ios 和 MacOSX。我可以证明这很难找到。

此标头中感兴趣的函数是ExtAudioFileOpenURL()ExtAudioFileRead()ExtAudioFileWrite()

概述你的工作:

    使用ExtAudioFileOpenURL()打开输入文件

    使用ExtAudioFileGetProperty() 和propertyId kExtAudioFileProperty_FileDataFormat 来获取描述文件的AudioStreamBasicDescription。

    可能设置 ASBD 以获得您想要的格式。 MacOSX 上的 AudioToolBox 似乎比 iOS 上更适合这一点。

    计算分配一个足以容纳整个音频文件的缓冲区

    使用 ExtAudioFileRead() 读取整个文件 - 注意:此调用可能不会一次性读取所有文件 - 操作与 POSIX read() 大致相同

    执行标准化

    使用ExtAudioFileCreateWithURL()创建输出文件 使用ExtAudioFileWrite() 写出标准化样本。 处置这两个音频文件。

文档链接到几个可以充当工作代码捐赠者的示例项目。您会发现将样本作为浮点数进行标准化要容易得多,但在 iOS 中,我永远无法让转换自动工作,因此您可能必须自己进行格式转换。

【讨论】:

谢谢,看看这个。

以上是关于标准化音频文件 obj-c的主要内容,如果未能解决你的问题,请参考以下文章

我的音频标准化代码是不是正确?

FFmpeg:流式音频播放列表,标准化响度并生成频谱图和波形

MATLAB GUI导入音频

使用 Obj-C 插件和 AVAssetWriterInput 向视频添加音频

计算 wav 文件和录制声音的频谱图(音量标准化)

MP3格式音频文件结构解析