我正在使用AVAudioRecorder添加语音备忘录功能,我需要知道录音机录制语音的最佳设置.
不幸的是,我对音频一无所知,甚至不确定google的条款.
目前,我正在使用以下内容从某处复制以进行测试:
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"资源,我也会这样做.(注意:我已经浏览过Apple Docs,他们假设我没有数字音频知识库.)
您需要阅读iPhone应用程序编程指南中标题为"在iPhone OS中使用声音"和" 音频队列服务编程指南"的部分.(编辑:这些链接已过时,iPhone OS中的"使用声音"已经从当前的"应用程序编程指南"中进行了编辑,但" 音频队列服务编程指南"已更新并移动.)
人类声音中的大多数声音都在人类听觉的中间范围内.即使以非常低的数据速率进行数字化,也很容易理解录制的语音.你可以在整个录音中踩踏,但仍然有一个有用的文件.因此,您对这些录音的最终用途将指导您对这些设置的决定.
首先,您需要选择音频格式.您的选择将取决于录制后您想要对音频执行的操作.您目前的选择是IMA4.也许你会想要一个不同的格式,但IMA4是iPhone的不错选择.这是一种快速的编码方案,因此它对于有限的iPhone处理器来说不会太费力,并且它提供4:1的压缩,因此它不会占用太多的存储空间.根据您选择的格式,您需要进行进一步的设置.
您当前的采样率(44.1 kHz)与CD音频的标准相同.除非您在高保真录音之后,否则您不需要这么高的速率,但您不想使用任意速率.大多数音频软件只能在32 kHz,24 kHz,16 kHz或12 kHz等特定步骤中了解速率.
对于立体声,您的通道数设置为2.除非您使用其他硬件,否则iPhone只有一个麦克风,1个单声道应该足够.这将您的数据需求减少了一半.
您使用的三个线性PCM设置似乎只适用于线性PCM格式录制.我认为它们对您的代码没有任何影响,因为您使用的是IMA4格式.我不太清楚IMA4格式是否足以告诉您需要进行哪些设置,因此如果您决定继续使用该设置,则必须进行一些额外的研究.