gpt4 book ai didi

swift - 如何知道 AVSpeechSynthesizer 何时说完所有排队的话语。 swift 4.2

转载 作者:搜寻专家 更新时间:2023-11-01 05:32:38 24 4
gpt4 key购买 nike

我正在尝试使用 isSpeaking 属性来完成此操作。但是,它会在说出第一句话后返回 false,因此会过早触发所需的代码。

根据 Apple Dev Documentation 正在说话:

Returns true if the synthesizer is speaking or has utterances enqueued to speak, even if it is currently paused. Returns false if the synthesizer has finished speaking all utterances in its queue or if it has not yet been given an utterance to speak.

所以,我真的不明白为什么在排队的人多的时候说了一句就返回 false。

我也尝试过使用 didFinish utterance 方法,但它也会在第一次发言后触发代码。

有没有办法知道 AVSpeechSynthesizer 何时说完所有排队的话语,如下面的代码示例所示?我是编程新手,所以任何帮助实现这一点都会很棒。谢谢!

var i = 0
while i < array.count {

let utterance = "Let's talk about \(array[i])."
i += 1

speechSynthesizer.speak(utterance) }

最佳答案

实际上,目前(iOS 12、Swift 5.0)没有关于 AVSpeechSynthesizer 队列的可用信息,这让我们对其内容“视而不见”。

由于 AVSpeechSynthesizerDelegate protocol methods,当您向说话者提供话语时,了解队列中内容的唯一方法是跟踪每个话语的开始和结束。 .

关于swift - 如何知道 AVSpeechSynthesizer 何时说完所有排队的话语。 swift 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126981/

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