运行 NSArray 中的 TTS 按顺序

Run TTS in NSArray sequentially

我有 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: 方法。

如果你不使用这个委托方法,你将无法达到你的目标。

看看 this complete and useful example (ObjC 和 Swift),它通过语音合成以粗体显示每个发音的单词。