O sizin uygulamanın oluşturduğu ses kaydetmek mümkündür (değil diğer uygulamalardan). AVSpeech
, oluşturulan sesi kaydetmek için bir API sağlamaz, ancak Apple, işi yapabilen diğer API'lere sahiptir. Çözüm muhtemelen istediğiniz kadar temiz değil, ama işe yaramalı.
Apple, gelişmiş ses işleme ve kaydetmeyi yönetmek için Audio Unit Framework adlı bir çerçeve sağlar. Bu, iOS SDK'da (bilgimle) aynı anda ses çalabilen ve kaydedebilen tek Çerçeve. Audio Unit Hosting Guide, umut verici görünüyor ve Audio Mixer Sample App. Not: AVSpeechSynthesizer ile Ses Birimi Çerçevesini kullanmayı denemedim (çalışabilir veya çalışmayabilir.). Ancak, AVSpeechSynthesizer'ın CoreAudio ile iyi çalıştığı düşünülürse, o zaman AudioUnits ile çalışacağı daha fazladır.
Yukarıdaki çözüm işe yaramazsa, basit bir çözüm hileyi yapabilir. AVSpeechSynthesizer
, düzgün çalışması için herhangi bir ağ bağlantısına gerek duymaz, bu nedenle çoğu durumda , sesi kaydetmek için'a gerek duymaz. Bunun yerine daha sonra NSFileManager kullanmak için metni kurtarabilecek:
NSString *textToSynthesize = @"Just what do you think you are doing, Dave?";
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths firstObject];
[textToSynthesize writeToFile:[documentsDirectory stringByAppendingPathComponent:@"synthText.txt"] atomically:YES encoding:NSUTF8StringEncoding error:&error];
Metin sentezlemek için hazır olduğunda, sadece dosyadan okumak ve geri AVSpeechSynthesizer
takın. Bu çözümün her durumda çalışmayacağını veya uygulanmayacağını biliyorum (örneğin, ses dosyasını birisine göndermeniz gerekiyorsa).
olanlar
sadece geçici çözümler ve ya özel senaryoya göre çalışmıyor olabilir her ikisi de sorunun birkaç olası çözümler vardır. YMMV. İyi şanslar!
Bu API yenidir ve bu nedenle daha sonra eklenebilecek bazı özellikler eksik olabilir. Belki de çalmakta olan sesleri kaydetmenin bir yolunu mu arıyorsunuz? – erdekhayser
Evet, bir AVAudioRecoder hazırladım ama sadece temiz bir çözüm olup olmadığını görmek istedim – Sean
Bu sorun için uygun bir çözüm buldunuz mu? Benzer bir şey inşa etmek istiyorum. –