我已经在我的应用程序中实现了文本到语音转换,并且可以很好地与当前使用的代码配合使用。基本上,算法会创建文本,然后,如果用户单击UIButton,则会说出该文本。

挑战:如果要轻按按钮(即当前正在说文本),我想启用相同的UIButton来暂停合成器,如果再次轻按该按钮,则要从停止的地方继续讲话。

我知道《 AVFoundation引用》中有一些功能,但是我无法正确实现它们。

有人知道如何在Swift中执行此操作吗?

import UIKit
import AVFoundation


    @IBOutlet var generatedText: UILabel!

@IBAction func buttonSpeakClicked(sender: UIButton){
    var mySpeechSynthesizer:AVSpeechSynthesizer = AVSpeechSynthesizer()
    var mySpeechUtterance:AVSpeechUtterance = AVSpeechUtterance(string:generatedText.text)
    mySpeechUtterance.rate = 0.075

mySpeechSynthesizer .speakUtterance(mySpeechUtterance)
}

最佳答案

AVSpeechSynthesizer Class Reference

您是否尝试过这些方法?- pauseSpeakingAtBoundary:- continueSpeaking
这些是一些属性(pausedspeaking),可以帮助您确定合成器的状态。

这样的代码应该可以工作:mySpeechSynthesizer.pauseSpeakingAtBoundary(AVSpeechBoundary.Immediate)

10-06 00:51