Правильные настройки AVAudioRecorder для записи голоса?

Я добавляю функцию голосовых заметок с помощью 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, и они предполагают наличие базы знаний по цифровому аудио, которой у меня нет.)

2 ответа

Решение

Вы должны прочитать раздел " Руководство по программированию приложений iPhone " под названием "Использование звука в iPhone OS" и " Руководство по программированию служб Audio Queue Services". (Изменить: эти ссылки устарели, Использование звука в iPhone OS было отредактировано из текущего Руководства по программированию приложений, но Руководство по программированию служб Audio Queue Services обновлено и перемещено.)

Большинство звуков в человеческих голосах находятся в среднем диапазоне человеческого слуха. Записанную речь легко понять даже при оцифровке с очень низкой скоростью передачи данных. Вы можете топать всю запись голоса, но при этом иметь полезный файл. Следовательно, ваше окончательное использование этих записей будет определять ваши решения в отношении этих настроек.

Сначала вам нужно выбрать аудиоформат. Ваш выбор будет зависеть от того, что вы хотите сделать со звуком после его записи. Ваш текущий выбор - IMA4. Возможно, вы захотите другой формат, но IMA4 - хороший выбор для iPhone. Это быстрая схема кодирования, поэтому она не будет слишком сложной для ограниченного процессора iPhone, и она обеспечивает сжатие 4:1, поэтому она не займет слишком много места для хранения. В зависимости от выбранного формата, вы захотите выполнить дополнительные настройки.

Ваша текущая частота дискретизации, 44,1 кГц, соответствует стандартной для аудио CD. Если вам не нужна запись с высокой точностью, вам не нужен такой высокий уровень скорости, но вы не хотите использовать произвольные значения. Большинство звукового программного обеспечения может распознавать частоты только на определенных шагах, таких как 32 кГц, 24 кГц, 16 кГц или 12 кГц.

Ваше количество каналов установлено на 2, для стерео. Если вы не используете дополнительное оборудование, у iPhone есть только один микрофон, и достаточно одного моноканала. Это сокращает ваши потребности данных в два раза.

Три настройки Linear PCM, которые вы используете, похоже, предназначены только для записей в формате Linear PCM. Я думаю, что они не влияют на ваш код, так как вы используете формат IMA4. Я не знаю формат IMA4 достаточно хорошо, чтобы сказать вам, какие настройки вам нужно установить, поэтому вам придется провести дополнительное исследование, если вы решите продолжить использовать этот параметр.

Следует учитывать, что в течение долгого времени традиционные компании, занимающиеся наземной передачей голоса, начиная с перехода на цифровую связь, использовали 8-битную частоту дискретизации 7 кГц. Вот почему магистральные линии имеют размеры, в которые они входят. Каналы T1 20 64 КБ, что оставляет немного накладных расходов для 56 КБ голосовых данных, поступающих плюс любые необходимые им метаданные управления.

Так что если вы хотите качество POTS, 8b/7KHz должно быть в порядке. Настройтесь на основе ваших потребностей.

Другие вопросы по тегам