iOSデバイスには、アクセシビリティのVoiceOver機能用の音声シンセサイザーが組み込まれています。これらのシンセサイザーをプログラムで使用してテキストベースのサウンドを生成する方法はありますか?
私の問題は、子供が色を学ぶためのシンプルなアプリに取り組んでおり、サポートしたい各言語で色の名前を記録してオーディオファイルとして保存するのではなく、実行時にサウンドを生成することですテキスト読み上げ機能。
ありがとう
[編集:この質問はiOS7より前に行われたので、ソフトウェアの考古学者でない限り、投票された回答を本当に考慮し、古い回答を無視する必要があります]
IOS 7以降、Appleは this APIを提供します。
this answerを参照してください。
Objective-C
#import <AVFoundation/AVFoundation.h>
…
AVSpeechUtterance *utterance = [AVSpeechUtterance
speechUtteranceWithString:@"Hello World!"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];
Swift
import AVFoundation
…
let utterance = AVSpeechUtterance(string: "Hello World!")
let synth = AVSpeechSynthesizer()
synth.speakUtterance(utterance)
#import <AVFoundation/AVFoundation.h>
AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc] init];
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Text to say"];
[av speakUtterance:utterance];
このコードは、シミュレーターとiPhone 6の両方でSwiftおよびiOS 8で動作しました。標準のAVFoundationライブラリーを追加する必要がありました。
import AVFoundation
// ...
func onSayMeSomething() {
let utterance = AVSpeechUtterance(string: "Wow! I can speak!")
utterance.pitchMultiplier = 1.3
utterance.rate = AVSpeechUtteranceMinimumSpeechRate * 1.5
let synth = AVSpeechSynthesizer()
synth.speakUtterance(utterance)
}
これは役に立つでしょう iPhoneアプリケーションをアクセス可能にする
「iPhone Accessibility API and Tools」で述べたように、標準のUIKitコントロールとビューには自動的にアクセスできます。標準のUIKitコントロールのみを使用する場合、おそらくアプリケーションにアクセスできるようにするために追加の作業を行う必要はありません。この場合、次のステップは、これらのコントロールが提供するデフォルトの属性情報がアプリケーションで意味をなすようにすることです。これを行う方法については、「正確で役立つ属性情報を提供する」を参照してください。