我有NSArray,里面有单词。我想按顺序读取 tts 并在 UILabel 中打印应用程序所说的文本。但是标签上的文字显示的是最后一个。
我尝试了时间暂停等
for (Word * w in ttswords) {
[self speechword:w];
}
-(void)speechword:(Word*)w{
utterance = [[AVSpeechUtterance alloc] initWithString:[w.title stringByReplacingOccurrencesOfString:@"~" withString:@""]];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
[synthesizer speakUtterance:utterance];
_lb_title.text = w.title;
}
我想一个接一个地执行。
突出显示浊音词的最佳方法是使用 AVSpeechSynthesizerDelegate
协议的speechSynthesizer:willSpeakRangeOfSpeechString:utterance:
方法。
如果不使用此委托方法,将无法实现目标。
看看这个完整而有用的示例(ObjC 和 Swift(,它以粗体显示每个发声单词以及语音合成。