AVSpeechSynthesis を学習しようとしています。コードは iOS シミュレーター (iPad と iOS の両方) で正常に動作しますが、テキスト読み上げ機能は私の iPad ではまったく動作しません。これが私のコードです。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//Load Model
self.string = @"Hello World";
self.utterance = [[AVSpeechUtterance alloc] initWithString:self.string];
self.utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
self.utterance.rate = (float) 0.25;
//Load UI
self.textLabel.text = self.string;
}
- (IBAction)startSpeaking:(id)sender {
self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
if ([self.speechSynthesizer isSpeaking]) {
[self.speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord];
} else {
[self.speechSynthesizer speakUtterance:self.utterance];
}
}
更新: AVSpeechSyntheSizer は動作してい ますが、音が出ないため、UI に AVSpeechUtterance と同じテキストを持つ UILabel があります。AVSpeechSynthesizerDelegate を実装して、startSpeaking: を押すと、テキスト ラベルが現在の単語を赤に変えるようにしました。AVSpeechSynthesizer がデリゲート呼び出しを行っているため、動作しているに違いないことはわかっていますが、なぜそれが聞こえないのかわかりません。音量は上がっており、他のアプリはオーディオを再生していません。