2010-10-24 5 views
1

Quels sont les meilleurs réglages pour l'enregistrement de la voix? Que devrais-je remplacer par '?' en dessous du code?Meilleur réglage pour le son d'enregistrement

recordSetting = [[NSMutableDictionary alloc] init]; 

[recordSetting setValue :[NSNumber numberWithInt:?] forKey:AVFormatIDKey]; 
[recordSetting setValue:[NSNumber numberWithFloat:?] forKey:AVSampleRateKey]; 
[recordSetting setValue:[NSNumber numberWithInt: ?] forKey:AVNumberOfChannelsKey]; 
[recordSetting setValue :[NSNumber numberWithInt:?] forKey:AVLinearPCMBitDepthKey]; 
[recordSetting setValue :[NSNumber numberWithBool:?] forKey:AVLinearPCMIsBigEndianKey]; 
[recordSetting setValue :[NSNumber numberWithBool:?] forKey:AVLinearPCMIsFloatKey]; 
+0

vous posez 2 questions. aussi, s'il vous plaît reformatez votre question pour élaborer sur le «meilleur» - sinon, je vais vous dire 96000 Hz, PCM signé 64 bits est plus que suffisant pour stocker une voix humaine. – justin

Répondre

2

cela devrait être un excellent point de départ pour la parole, compte tenu du matériel (car cela est étiqueté « iphone », je suppose qui est la source).

[recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
[recordSetting setValue:[NSNumber numberWithFloat:12000.0f] forKey:AVSampleRateKey]; 
[recordSetting setValue:[NSNumber numberWithInt:1 /* mono */ ] forKey:AVNumberOfChannelsKey]; 
[recordSetting setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 
[recordSetting setValue:[NSNumber numberWithBool:NX_BigEndian == NXHostByteOrder()] forKey:AVLinearPCMIsBigEndianKey]; 
[recordSetting setValue:[NSNumber numberWithBool:0] forKey:AVLinearPCMIsFloatKey]; 

si vous voulez réduire la taille du fichier, vous pouvez préférer enregistrer à une qualité supérieure, puis convertir en un format compressé suivant enregistrement.

Si vous avez de longs enregistrements à faire, alors vous pouvez vouloir enregistrer dans un format compressé (je l'éviterais autrement parce que les demandes de ressources sont plus élevées). En tant que tel, ils peuvent ne pas être les meilleurs pour une application spécifique, mais un bon équilibre entre la taille, la vitesse et la qualité.

+0

Erreur: non déclaré 'NX_BigEndian', 'kAudioFormatLinearPCM' – SajjadZare

+0

Il vous manque un '# includes'. 'grep -r NX_BigEndian/Développeur/Plateformes/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk', et' grep -r kAudioFormatLinearPCM/Développeur/Plateformes/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk' – justin

+0

Désolé, je ne comprends pas ce que je devrais ajouter à mon application? – SajjadZare

Questions connexes