Правильные настройки AVAudioRecorder для записи голоса? - PullRequest
39 голосов
/ 27 января 2010

Я добавляю возможность голосовых заметок с помощью 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 ]

88 голосов
/ 02 февраля 2010

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

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

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

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

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

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

2 голосов
/ 28 июля 2013

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

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

...