gpt4 book ai didi

swift - OSX Sierra Nsspeechrecognizer 问题

转载 作者:行者123 更新时间:2023-11-28 16:09:11 24 4
gpt4 key购买 nike

为了避免让您厌烦一堆代码,我将在下面对其进行总结。

在应用委托(delegate)中,我创建了一个 nsspeechrecognizer 设置它的委托(delegate),添加命令,然后开始监听。

语音识别器会在第一时间识别命令并继续,只要我不阻止它听。

一旦我通过调用 stoplistening 停止语音识别器,就会进行后续调用以开始收听,但不会再次识别之前识别过的命令。

我已确认命令数组保持不变。这是一种“每个命令只工作一次”类型的东西。

再次识别命令的唯一方法是终止 speech recognizercore.broker 进程。重新启动我的应用程序不会执行此操作。

这不是 el cap 的问题。有没有人在 Sierra 遇到过这样的怪事。

Let speechRecognizer = NSSpeechRecognizer()
speechRecognizer.delegate = self
speechRecognizer.listenInBackgroundOnly = false
speechRecognizer.commands = cmdArray
speechRecognizer.startListening()

在direcognize命令委托(delegate)中

If cmd== specificCommand {
Print("heard")
// commenting out the following line allows recognizer to continue functioning correctly
speechRecognizer.stopListening()
}

另一个方法调用再次开始监听。并且命令在调用 startlistening 之后被识别..... 除了已经被识别的命令。

这是在 Sierra 机器上的 Xcode 8 上使用 swift 2.3 编译的

最佳答案

虽然我没有解决这个问题。我能够通过将所有命令从“为 (firstAndLastName) 做某事”缩短为“为 (昵称) 做某事”

来解决这个问题

这样解决问题是不合逻辑的。我在 Xcode 中输入和输出的“经纪人”现在向我暗示 nsspeechrecognizer 可能正在“分级”识别。

关于swift - OSX Sierra Nsspeechrecognizer 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802182/

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