正确的AVAudioRecorder录音设置?

我使用AVAudioRecorder添加语音备忘录function,我需要知道录音机录制语音的最佳设置。

不幸的是,我对audio一无所知,甚至不知道谷歌有什么条件。

目前,我正在使用我从某处复制的以下内容进行testing:

recorderSettingsDict=[[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithInt:kAudioFormatAppleIMA4],AVFormatIDKey, [NSNumber numberWithInt:44100.0],AVSampleRateKey, [NSNumber numberWithInt: 2],AVNumberOfChannelsKey, [NSNumber numberWithInt:16],AVLinearPCMBitDepthKey, [NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey, [NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey, nil]; 

要么:

 defaultSettings = { AVFormatIDKey = 1768775988; AVLinearPCMBitDepthKey = 16; AVLinearPCMIsBigEndianKey = 0; AVLinearPCMIsFloatKey = 0; AVNumberOfChannelsKey = 2; AVSampleRateKey = 44100; }; 

这个工作,但我不知道是否是最佳的语音质量,速度,文件大小等方面。

AVAudioRecorder类参考列出了许多设置常量,但我不知道哪些用于语音。

如果有人知道一个好的“AudioFormats for Dummy's”资源,我会采取这个方法。 (注意:我已经通过了苹果文档,他们承担了我不具备的数字audio知识基础。)

您将需要阅读“ iPhone应用程序编程指南 ”中标题为“在iPhone OS中使用声音”一节以及“ audio队列服务编程指南” 。 ( 编辑:这些链接已经过时,iPhone OS中的使用声音已经从当前的应用程序编程指南中编辑出来,但audio队列服务编程指南已更新并移动。)

人类声音中的大部分声音都处于人类听觉的中间范围。 即使以非常低的数据速率进行数字化,录制的语音也很容易理解。 你可以跺脚全部录音,但仍然有一个有用的文件。 因此,您最终使用这些录音将指导您对这些设置的决定。

首先你需要selectaudio格式。 录制后,您的select将取决于您想要对audio进行的操作。 您目前的select是IMA4。 也许你会想要一个不同的格式,但IMA4是一个不错的select。 这是一个快速的编码scheme,因此对于有限的iPhone处理器来说不会太重要,它提供了4:1的压缩率,所以不会占用太多的存储空间。 根据您select的格式,您需要进一步设置。

您当前的采样率(44.1 kHz)与CDaudio的标准相同。 除非高保真录音,否则您不需要这么高的费率,但您不想使用任意费率。 大多数audio软件只能以32 kHz,24 kHz,16 kHz或12 kHz等特定步骤了解速率。

您的通道数设置为2,用于立体声。 除非您使用额外的硬件,否则iPhone只有一个麦克风,一个单声道应该足够了。 这将您的数据需求减半。

您正在使用的三种线性PCM设置似乎仅适用于线性PCM格式logging。 我认为它们对你的代码没有任何影响,因为你使用的是IMA4格式。 我不知道IMA4格式足够好,可以告诉你需要做什么设置,所以如果你决定继续使用这个设置,你将不得不做一些额外的研究。

有一点需要考虑的是,很长一段时间以来,传统的陆地线路语音公司 – 自去数字化以来 – 使用8位,7KHz采样。 这就是为什么中继线的大小来了。一个T1 20 64k频道,为56k的语音数据加上任何pipe理元数据所需的开销。

所以如果你想要POTS质量,8b / 7KHz应该没问题。 根据您的需要调整。

    Interesting Posts