(ない他のアプリからの)あなたアプリによって生成された音声を記録することが可能です。 AVSpeech
は、生成されたオーディオを保存するためのAPIを提供していませんが、Appleはジョブを実行できる他のAPIを持っています。解決策はおそらくあなたが望むほどきれいではありませんが、うまくいくはずです。
Appleは、高度なオーディオ処理と録音を管理するために、Audio Unit Frameworkというフレームワークを提供しています。これは、オーディオを同時に再生して録音できるiOS SDKの唯一のフレームワークです(私の知る限り)。 Audio Unit Hosting Guideは有望に見え、Audio Mixer Sample Appもそうです。
注:AVSpeechSynthesizerでAudio Unit Frameworkを使用しようとしたことはありません(動作している場合と動作していない場合があります)。しかし、AVSpeechSynthesizerがCoreAudioでうまくいっていることを考えると、AudioUnitsで動作する可能性は高いです。
上記の解決策が機能しない場合は、簡単な回避策が必要です。 AVSpeechSynthesizer
は正常に機能するためにネットワーク接続を必要としませんので、多くの場合、オーディオを保存するにはにはが必要ではありません。代わりに、あなたは後でNSFileManagerを使用するためのテキストを保存できます。
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];
テキストを合成する準備ができたら、ちょうどファイルからそれを読んで、バックAVSpeechSynthesizer
に差し込みます。私は、このソリューションはすべての場合に機能しません(たとえば、オーディオファイルを誰かに送信する必要がある場合など)。
これらは、問題の解決方法のほんの一例であり、どちらも回避策であり、具体的なシナリオによっては動作しない場合もあります。 YMMV。がんばろう!
このAPIは新しく、後で追加できる機能が不足している可能性があります。再生中のオーディオを録音する方法を調べることはできますか? – erdekhayser
ええ私は既にAVAudioRecoderをセットアップしましたが、クリーナーソリューションがあるかどうかを確認したいだけでした。 – Sean
この問題に適した解決策を見つけましたか?私は似たようなものを作りたいと思っています。 –