连接 2 个不同的标签以进行文本到语音转换 (swift3)



使用语音转文本功能,我可以轻松获得一个要朗读的标签。但我希望将话语 2 连接到话语。我希望先说出话语,然后在完成后立即说出话语 2。

     let utterance = AVSpeechUtterance(string: dptext.text!)
     let utterance2 = AVSpeechUtterance(string: dptext2.text!)
     let synthesizer = AVSpeechSynthesizer()
     synthesizer.speak(utterance)

我认为处理这种情况的最简单方法是将两个字符串与space组合在一起。

let combineString = dptext.text! + " " + dptext2.text!
let utterance = AVSpeechUtterance(string: combineString)
let synthesizer = AVSpeechSynthesizer()
synthesizer.speak(utterance)

我希望先说出话语,然后在完成后立即说出话语 2。

无需为要

说出的两个语句进行联接:要记住的最重要的事情是保留AVSpeechSynthesizer实例,直到完成完整的语音

let synthesizer = AVSpeechSynthesizer()
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    
    let utterance = AVSpeechUtterance(string: dptext.text!)
    let utterance2 = AVSpeechUtterance(string: dptext2.text!)
    
    synthesizer.speak(utterance)
    synthesizer.speak(utterance2)
}

遵循此基本原理,您可以:

  • 在说话时为话语添加前/后延迟。
  • 让尽可能多的话语说出你想要的话语。

每个话语都将放入语音合成器队列中,并按接收顺序朗读。

最新更新