web-dev-qa-db-fra.com

Paramètres AVAudioRecorder appropriés pour l'enregistrement de la voix?

J'ajoute une fonction de mémo vocal en utilisant AVAudioRecorder et j'ai besoin de connaître les meilleurs paramètres pour l'enregistreur pour l'enregistrement de la voix.

Malheureusement, je ne connais rien à l'audio dans la mesure où je ne suis même pas sûr des termes pour google.

Actuellement, j'utilise les éléments suivants que j'ai copiés de quelque part à des fins de test:

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

ou:

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

Cela fonctionne, mais je ne sais pas si c'est optimal pour la voix en termes de qualité, de vitesse, de taille de fichier, etc.

Le AVAudioRecorder Class Reference liste de nombreuses constantes de paramètres mais je n'ai aucune idée de celles à utiliser pour la voix.

Sauf que, si quelqu'un connaît une bonne ressource "AudioFormats for Dummy's", je prendrai cela aussi. (Remarque: j'ai parcouru les documents Apple Docs et ils supposent une base de connaissances en audio numérique que je ne possède pas.)

41
TechZen

Vous aurez envie de lire la section Guide de programmation d'application iPhone intitulée Utilisation du son dans iPhone OS, et Guide de programmation des services de file d'attente audio . ( Edit: Ces liens sont obsolètes, l'utilisation du son dans l'iPhone OS a été modifiée à partir du guide de programmation d'application actuel, mais le Audio Guide de programmation des services de file d'attente est mis à jour et déplacé.)

La plupart des sons dans les voix humaines sont dans la gamme moyenne de l'audition humaine. La parole enregistrée est facilement comprise même lorsqu'elle est numérisée avec des débits de données très faibles. Vous pouvez piétiner un enregistrement vocal tout en conservant un fichier utile. Par conséquent, votre utilisation ultime de ces enregistrements guidera vos décisions sur ces paramètres.

Vous devez d'abord choisir le format audio. Votre choix sera déterminé par ce que vous voulez faire avec l'audio après l'avoir enregistré. Votre choix actuel est IMA4. Vous voudrez peut-être un format différent, mais IMA4 est un bon choix pour l'iPhone. C'est un schéma d'encodage rapide, donc il ne sera pas trop pénible pour le processeur iPhone limité, et il fournit une compression 4: 1, donc il ne prendra pas trop d'espace de stockage. Selon le format que vous choisissez, vous souhaiterez effectuer d'autres réglages.

Votre fréquence d'échantillonnage actuelle, 44,1 kHz, est la même que la norme pour les CD audio. À moins que vous ne recherchiez un enregistrement haute fidélité, vous n'avez pas besoin de ce taux élevé, mais vous ne voulez pas utiliser de taux arbitraires. La plupart des logiciels audio ne peuvent comprendre les débits qu'à des étapes spécifiques telles que 32 kHz, 24 kHz, 16 kHz ou 12 kHz.

Votre nombre de canaux est réglé sur 2, pour la stéréo. Sauf si vous utilisez du matériel supplémentaire, l'iPhone ne dispose que d'un microphone et 1 canal mono devrait suffire. Cela réduit de moitié vos besoins en données.

Les trois paramètres Linear PCM que vous utilisez semblent être réservés aux enregistrements au format Linear PCM. Je pense qu'ils n'ont aucun effet dans votre code, puisque vous utilisez le format IMA4. Je ne connais pas suffisamment le format IMA4 pour vous dire quels paramètres vous devrez effectuer, vous devrez donc faire des recherches supplémentaires si vous décidez de continuer à utiliser ce paramètre.

90
Mr. Berna

Une chose à considérer est que pendant longtemps les entreprises de téléphonie fixe traditionnelles - depuis leur passage au numérique - ont utilisé un échantillonnage 8 bits, 7 kHz. C'est pourquoi les lignes principales sont disponibles dans les tailles dans lesquelles elles entrent. Un T1 20 64k canaux, ce qui laisse un peu de surcharge pour les 56k de données vocales qui transitent ainsi que les métadonnées de gestion dont ils ont besoin.

Donc, si vous voulez une qualité POTS, 8b/7KHz devrait convenir. Ajustez en fonction de vos besoins.

2
Ben Carroll