मैं iPhone पर एएमआर ऑडियो प्रारूप कैसे रिकॉर्ड कर सकता हूं?




ios core-audio (3)

मुझे लगता है कि एएमआर कोडेक प्रारूप मेरे आईफोन वॉयस रिकॉर्डर ऐप का समर्थन नहीं करता है।

हो सकता है कि कोई भी ओपन सोर्स को एकीकृत करने, एआरआर एनकोडर के सेब के iPhone एप्लिकेशन फ्रेमवर्क में कार्यान्वित करने और वॉयस रिकॉर्डर को एएमआर एन्कोडेड प्रारूप में ऑडियो बनाने की कोशिश कर सकता है। (मुझे नहीं पता है कि एप्पल द्वारा उनके एनडीए / लाइसेंस द्वारा अनुमति दी गई है)।

-AD

एक आवाज रिकॉर्डर को असम्पीडित रैखिक पीसीएम ऑडियो की आवश्यकता नहीं है संपीडित AMR ठीक करना होगा ऑडियो रिकॉर्डिंग के लिए बनाया गया आईपैक्चर फ्रेम काफी सरल है, लेकिन ऑडियो प्रारूप (जो एप्पल से आता है) को स्थापित करने के लिए केवल एक ही उदाहरण मैंने पाया है LinearPCM मैंने मूल्यों के अन्य संयोजनों की कोशिश की है, लेकिन काम करने के लिए कुछ भी नहीं मिल सकता है।

क्या किसी के पास कोई कोड है जो वास्तव में AMR रिकॉर्ड करता है?

संपादित करें: एएमआर प्रारूप डेटा प्रकार को सेट करने के लिए एक विकल्प है, लेकिन अन्य विकल्प (पैकेट आकार, फ़्रेम आकार आदि।) मेरे द्वारा तय किए गए किसी भी चीज़ से मेल नहीं खाते हैं।

संपादित करें: पीसीएम संस्करण के लिए मेरे पास क्या है:

/*
 If we want to use AMR instead of PCM:
 AMR Format:
 Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz
 eight source codecs :  12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s
 generated frame length: 244, 204,  159,  148,  134,  118,  103,   95 bits per frame
 */
format->mFormatID = kAudioFormatLinearPCM;
format->mSampleRate = 8000.0;    //8 kHz
format->mFramesPerPacket = 1;    //1 frame per packet
format->mChannelsPerFrame = 1;    //Mono
format->mBytesPerFrame = 2;        //8/bits per frame (round up)
format->mBytesPerPacket = 2;    //Same as bytes per frame
format->mBitsPerChannel = 16;    //16-bit audio
format->mReserved = 0;            //always 0
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
                       kLinearPCMFormatFlagIsSignedInteger |
                       kLinearPCMFormatFlagIsPacked;

आधिकारिक दस्तावेजों के लिए ओलिगुएट लिंक को अपडेट करने के लिए (वे यह सब चीज़ें क्यों छिपाते हैं?)

http://developer.apple.com/library/ios/#qa/qa2008/qa1615.html


एएमआर कोडेक आईफोन पर एन्कोडिंग / रिकॉर्डिंग के लिए समर्थित नहीं है, यद्यपि यह प्लेबैक के लिए समर्थित है: यही कारण है कि kAudioFormatAMR निरंतर अस्तित्व में है।

आधिकारिक एपीआई का कहना है कि समर्थित एन्कोडिंग प्रारूप हैं:

  • एएलएसी (ऐप्पल लॉसलेस) ~> क्यूडीओफोमेटएपपल लॉसलेस
  • आईएलबीसी (भाषण के लिए इंटरनेट कम बिटेट कोडेक) ~> क्यूडीओफोर्मटीएलबीसी
  • आईएमए / एडीपीसीएम ( आईएमए 4) ~> क्यूडीओफोर्मअपल आईएमए 4
  • रैखिक पीसीएम ~> क्यूडीओफ़ॉर्मैटलाइनर पीसीएम
  • μ- कानून ~> kAudioFormatULaw
  • एक कानून ~> क्यूडीओफ़ॉर्मेटलाओ

आप इन स्वरूपों में से किसी एक को आज़मा सकते हैं या सोरेनमेयन के सुझाव के रूप में ओपन सोर्स एएमआर एन्कोडर का उपयोग कर सकते हैं।

संपादित करें : अपडेट किया गया आधिकारिक एपीआई लिंक