Правильные настройки 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];

or:

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

Это работает, но я не знаю, оптимально ли это для голоса с точки зрения качества, скорости, размера файла и т. Д.

Справочник по классам AVAudioRecorder перечисляет множество констант настроек, но я не знаю, какие из них использовать для голоса.

Открывая это, если кто-то знает о хорошем ресурсе "AudioFormats for Dummy", я воспользуюсь и этим. (Примечание: я просмотрел Документы Apple, и они предполагают, что у меня есть база знаний в области цифрового звука, которой у меня нет.)


person TechZen    schedule 27.01.2010    source источник
comment
Чувак, я думаю, что опубликовать это в день анонса iPad было тактической ошибкой.   -  person TechZen    schedule 28.01.2010


Ответы (2)


Вы захотите прочитать Раздел «Использование звука в ОС iPhone» в Руководстве по программированию приложений для iPhone и раздел Руководство по программированию служб очереди аудио. (Изменить: эти ссылки устарели, раздел Использование звука в ОС iPhone был удален из текущего Руководства по программированию приложений, но Руководство по программированию служб очереди аудио обновлено и перемещено.)

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

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

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

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

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

person Mr. Berna    schedule 02.02.2010
comment
Спасибо, что нашли время написать такой ответ, но, как я сказал в OP, в документации Apple не указано, какие настройки оптимальны для голоса. Полезна информация о каналах и частоте дискретизации. - person TechZen; 02.02.2010
comment
Хорошо, если бы я делал голосовые заметки для использования в приложении, записывающем заметки, я бы установил AVFormatIDKey на kAudioFormatAppleIMA4, AVSampleRateKey на 16000.0, AVNumberOfChannelsKey на 1 и оставил все остальное по умолчанию. - person Mr. Berna; 02.02.2010
comment
Отличный ответ, спасибо. Fwiw, есть несколько очень хороших сессий с WWDC 2010, которые также затрагивают эту тему. В частности, Основы цифрового аудио полон хорошей информации. также очень полезен из этой презентации. Посмотрите, в частности, на слайды 51 и 52. - person lambmj; 09.01.2012
comment
Я бы по-прежнему предлагал 2 канала, так как пользователь может использовать наушники для прослушивания аудиозаписи, не говоря уже об отправке файлов на компьютер по электронной почте. - person Guntis Treulands; 20.09.2012
comment
kiok45 - ответ через 6 лет после публикации и жалоба на битые ссылки не продуктивны; возможно поделитесь обновленными ссылками! В противном случае лучше всего указать на это и двигаться дальше; это не менее правильно, просто Apple поменяла свои страницы. - person TahoeWolverine; 24.01.2017

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

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

person Ben Carroll    schedule 28.07.2013