所以我只是想在Swift中使用AVSpeechSynthesizer。我无法弄清楚如何为AVSpeechUtterance设置短语。
@IBAction func buttonSpeakClicked(sender:UIButton)
{
var mySpeechSynthesizer:AVSpeechSynthesizer = AVSpeechSynthesizer()
var myString:String = "This is the phrase to say"
var mySpeechUtterance:AVSpeechUtterance = AVSpeechUtterance(string:myString)
println("\(mySpeechUtterance.speechString)")
println("My string - \(myString)")
mySpeechSynthesizer .speakUtterance(mySpeechUtterance)
}
First println - Nil
第二次打印 - 这是要说的短语
文档说init(字符串字符串:字符串!),但我无法弄清楚把它放到哪里
答案 0 :(得分:5)
代码很好,语音字符串设置正确。但问题是AVSpeechUtterance在iOS 8 Beta上没有按预期工作。我建议提交错误报告here。
代码在iOS 7.1设备和模拟器上运行良好。
答案 1 :(得分:2)
我的解决方法是让AVSpeechSynthesizer在初始化后立即说出一个单字符的话语。这将是沉默的,之后您的AVSpeechSynthesizer将正常工作。
在Objective-C中:
AVSpeechUtterance *bugWorkaroundUtterance = [AVSpeechUtterance speechUtteranceWithString:@" "];
bugWorkaroundUtterance.rate = AVSpeechUtteranceMaximumSpeechRate;
[self.speechSynthesizer speakUtterance:bugWorkaroundUtterance];