2010-01-27 7 views
35

Estoy agregando una capacidad de memo de voz usando AVAudioRecorder y necesito conocer la mejor configuración para la grabadora de voz.Configuración adecuada de AVAudioRecorder para grabación de voz?

Lamentablemente, no sé nada de audio en la medida en que ni siquiera estoy seguro de qué términos utilizar en google.

Actualmente, estoy usando los siguientes, que he copiado de algún sitio para propósitos de prueba:

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]; 

o:

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

Esto funciona, pero no sé si es óptimo para la voz en términos de calidad, velocidad, tamaño de archivo, etc.

El AVAudioRecorder Class Reference list many settings constants pero no tengo ni idea cuáles usar para voz.

Mostrando que, si alguien sabe de un buen recurso de "AudioFormats for Dummy's" lo tomaré también. (Nota: Yo he estado en la Apple Docs y asumen una base de conocimientos en el audio digital que yo no poseen.)

+1

Hombre, creo que fue un error táctico publicar esto el día que se anunció el iPad. – TechZen

Respuesta

83

Usted querrá leer la sección titulada Usando iPhone Application Programming Guide de sonido en el iPhone OS, y la Audio Queue Services Programming Guide . (Editar: Estos enlaces son obsoletas, el sonido por medio de iPhone OS ha sido editado fuera de la presente Guía de programación de aplicaciones, pero el Audio Queue Services Programming Guide está actualizada y movido.)

mayoría de los sonidos de la voz humana están en la gama media de la audición humana. El habla grabada se entiende fácilmente incluso cuando se digitaliza con tasas de datos muy bajas. Puede pisar toda una grabación de voz, y aún así tener un archivo útil. Por lo tanto, su uso final para estas grabaciones guiará sus decisiones sobre estas configuraciones.

Primero debe elegir el formato de audio. Su elección estará determinada por lo que quiera hacer con el audio después de grabarlo. Tu elección actual es IMA4. Tal vez quieras un formato diferente, pero IMA4 es una buena opción para el iPhone. Es un esquema de codificación rápido, por lo que no será demasiado agotador para el procesador limitado de iPhone, y proporciona compresión 4: 1, por lo que no ocupará demasiado espacio de almacenamiento. Dependiendo del formato que elija, querrá realizar más configuraciones.

Su frecuencia de muestreo actual, 44.1 kHz, es la misma que la estándar para audio de CD. A menos que busque una grabación de alta fidelidad, no necesita este alto de una tasa, pero no desea usar tasas arbitrarias. La mayoría del software de audio solo puede comprender las tasas en pasos específicos como 32 kHz, 24 kHz, 16 kHz o 12 kHz.

Su número de canales está configurado en 2, para estéreo. A menos que use hardware adicional, el iPhone solo tiene un micrófono y 1 canal mono debería ser suficiente. Esto reduce sus necesidades de datos a la mitad.

Las tres configuraciones Linear PCM que está utilizando parecen ser solo para grabaciones en formato PCM lineal. Creo que no tienen ningún efecto en tu código, ya que estás usando el formato IMA4. No conozco el formato IMA4 lo suficientemente bien como para indicarle qué configuraciones necesitará realizar, por lo que tendrá que investigar un poco más si decide continuar usando esa configuración.

+0

Gracias por tomarse el tiempo para escribir una respuesta de este tipo, pero como dije en el PO, la documentación de Apple no aborda qué configuraciones son óptimas para la voz. La información sobre los canales y la frecuencia de muestreo es útil. – TechZen

+16

OK, si estuviera haciendo memos de voz para usar en la aplicación que registra los memos, establecería AVFormatIDKey en kAudioFormatAppleIMA4, AVSampleRateKey en 16000.0, AVNumberOfChannelsKey en 1 y dejaré todo lo demás en los valores predeterminados. –

+6

Excelente respuesta, gracias. Fwiw, hay algunas muy buenas sesiones de la WWDC 2010 que cubren este tema también. En particular, [Fundamentos de audio digital] (https://developer.apple.com/itunes/?destination=adc.apple.com.4088182973.04088182975.4092394228?i=1971902954) está lleno de buena información. El [panel de diapositivas] (http://adcdownload.apple.com//wwdc_2010/wwdc_2010_video_assets__pdfs/411__fundamentals_of_digital_audio_for_mac_os_x_and_iphone_os.pdf) de esa presentación también es muy útil. Mira las diapositivas 51 y 52 en particular. – lambmj

1

Una cosa a tener en cuenta es que durante mucho tiempo las compañías de voz tradicionales de línea fija -desde que se convirtieron en digitales- usaban muestras de 8 bits y 7 KHz. Esta es la razón por la cual las líneas troncales vienen en los tamaños que ingresan. A T1 20 64k canales, lo que deja un poco de sobrecarga para los 56k de datos de voz que llegan más los metadatos de administración que necesitan.

Si quiere calidad POTS, 8b/7KHz debería estar bien. Ajuste según sus necesidades.

Cuestiones relacionadas