gpt4 book ai didi

iOS - AVSpeechSynthesizer 暂停和继续说话问题

转载 作者:可可西里 更新时间:2023-11-01 01:50:38 25 4
gpt4 key购买 nike

macOS: Mojave 10.14.4 beta

iOS: 12.2 beta

Xcode: 10.2 beta

我正在使用 AVSpeechSynthesizer 但下面的代码没有从暂停的地方恢复。

// The pause functionality works fine
if (synth.isSpeaking) {
synth.pauseSpeaking(at: AVSpeechBoundary.word)
}


// But continueSpeaking always starting from the beginning.
if (synth.isPaused) {
synth.continueSpeaking();
}

如何从我离开的地方继续?有什么我想念的吗?

最佳答案

我实现了以下代码来检查您的问题(在 Mojave 10.14.4iOS 12.2Xcode 10.2.1 下进行测试> 和 swift 5.0):

class SpeechSynthesis: UIViewController {

var synthesizer = AVSpeechSynthesizer()
var playQueue = [AVSpeechUtterance]()

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

for i in 1...10 {
let stringNb = "number " + String(i) + " of the speech synthesizer."
let utterance = AVSpeechUtterance(string: stringNb)
playQueue.append(utterance)
}

for utterance in playQueue {
synthesizer.speak(utterance)
}
}

@IBAction func pauseButton(_ sender: UIButton) {

if (synthesizer.isSpeaking == true) {
if (synthesizer.pauseSpeaking(at: .immediate) == true) {
print("PAUSE")
} else {
print("P.R.O.B.L.E.M. when pausing.")
}
}
}

@IBAction func resumeButton(_ sender: UIButton) {

if (synthesizer.isPaused == true) {
if (synthesizer.continueSpeaking() == true) {
print("CONTINUE")
} else {
print("P.R.O.B.L.E.M. when resuming.")
}
}
}
}

我注意到边界 .word 的另一个问题在触发时并不总是暂停,但是当此约束更改为 .immediate 时,一切都从暂停的地方恢复。

然而,当它很少在边界 .word 处暂停时,它 always resumes也从它暂停的地方开始。

我不知道你的问题出在哪里,但是通过上面提到的配置和这个代码片段,语音合成器从它暂停的地方恢复

关于iOS - AVSpeechSynthesizer 暂停和继续说话问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54514798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com