代码之家  ›  专栏  ›  技术社区  ›  TechZen

录音机设置是否正确?

  •  39
  • TechZen  · 技术社区  · 15 年前

    我正在使用avaudiorecorder添加语音备忘录功能,我需要知道录音机录制语音的最佳设置。

    不幸的是,在某种程度上,我对音频一无所知,我甚至不知道谷歌的术语是什么。

    目前,我正在使用从某个地方复制的以下内容进行测试:

    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 Class Reference list many settings constants 但我不知道该用哪一个来发声。

    尽管如此,如果有人知道一个很好的“虚拟音频格式”资源,我也会接受。(注:我已经浏览过苹果文档,他们假设我没有数字音频知识库。)

    2 回复  |  直到 7 年前
        1
  •  88
  •   toraritte    7 年前

    你会想读 iPhone Application Programming Guide 标题为在iPhone操作系统中使用声音的部分,以及 Audio Queue Services Programming Guide . ( 编辑: 这些链接已经过时,iPhone操作系统中的“使用声音”已经从当前的应用程序编程指南中删除,但是 音频队列服务编程指南 更新并移动。)

    人类声音中的大多数声音处于人类听觉的中间范围。即使在数据率很低的情况下数字化,也很容易理解录制的语音。你可以跺着脚到处录音,但仍然有一个有用的文件。因此,您对这些录制的最终使用将指导您对这些设置的决策。

    首先,您需要选择音频格式。录制音频后,您的选择将取决于您对音频的处理方式。您当前的选择是IMA4。也许你会想要一个不同的格式,但IMA4是iPhone的一个不错的选择。这是一个快速的编码方案,所以对于有限的iPhone处理器来说,它不会太费钱,它提供4:1的压缩,因此不会占用太多的存储空间。根据您选择的格式,您需要进行进一步的设置。

    您当前的采样率44.1 kHz与CD音频的标准相同。除非你在做高保真录音,否则你不需要这么高的速率,但你不想使用任意速率。大多数音频软件只能理解特定步骤的频率,如32 kHz、24 kHz、16 kHz或12 kHz。

    对于立体声,您的频道数设置为2。除非使用其他硬件,否则iPhone只有一个麦克风,一个单声道就足够了。这会将您的数据需求减半。

    您使用的三个线性PCM设置似乎只是用于线性PCM格式的录制。我认为它们对您的代码没有影响,因为您使用的是IMA4格式。我不太了解IMA4格式,无法告诉您需要进行哪些设置,因此如果您决定继续使用该设置,则必须进行一些额外的研究。

        2
  •  2
  •   Ben Carroll    11 年前

    需要考虑的一件事是,长期以来,传统的陆地电话公司——从数字化开始——使用8位7kHz采样。这就是为什么主干线的尺寸与它们的尺寸相同。一个T1 20 64K通道,它为通过的56K语音数据加上他们需要的任何管理元数据留下了一点开销。

    所以,如果你想要盆的质量,8b/7kHz应该是好的。根据需要调整。