【问题标题】:Run TTS in NSArray sequentially在 NSArray 中按顺序运行 TTS
【发布时间】:2019-06-17 15:09:57
【问题描述】:

我有 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;

}

我要一个一个执行。

【问题讨论】:

    标签: objective-c text-to-speech avspeechsynthesizer


    【解决方案1】:

    突出发声词的最佳方法是使用AVSpeechSynthesizerDelegate 协议的speechSynthesizer:willSpeakRangeOfSpeechString:utterance: 方法。

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      相关资源
      最近更新 更多