gpt4 book ai didi

python - 与 python SpeechRecognition 库一起设置 Snowboy 热词检测的问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:10 24 4
gpt4 key购买 nike

我想在 python 项目中同时使用 Snowboy 热词检测库和 SpeechRecognition 库。但是,我在尝试让两者和谐相处时遇到了很多不同的错误。

最初,我将其设置为 Snowboy 的回调函数将在检测到热词后启动 SpeechRecognition 的监听函数以接收音频。但是,当创建各自的实例时,这两个库似乎都锁定了对麦克风的访问。因此,此代码会从 PyAudio 中抛出错误,提示 SpeechRecognition 试图访问已被(Snowboy)使用的麦克风。

我尝试了几种方法来解决这个问题,包括使用多线程/多处理并在每个麦克风实例使用完毕后立即删除它们,然后在再次需要它们时重新创建它们(非常丑陋)。不过,我没有通过这些解决方法中的任何一个获得任何运气。

我最近的尝试是使用 SpeechRecognition 的内置 Snowboy 热词实现。我早就知道这个功能,但直到现在才避免使用它,因为我更喜欢能够控制热词检测和 STT 翻译之间发生的事情。这样做让我解决了在两个库之间共享麦克风的问题,但现在我从 Snowboy 的网站训练的热词模型似乎根本无法正常工作。我试着用不同的麦克风创建不同的模型并调整灵敏度设置,但都无济于事。

在这一点上,我考虑重新考虑删除/重新创建麦克风实例的想法,以返回使用 Snowboy 的库进行热词检测,而不是 SpeechRecognition 中的内置实现,因为我觉得这两种方法的不同足以导致我当前的问题与模型。在切换 SpeechRecognition 的实现之前,热词检测的效果要好得多。

有几点需要注意:

  • 在带有 Raspbian 的 Raspberry Pi 3 B+ 上运行
  • 可以找到我当前的代码here
  • Snowboy 库被直接复制到存储库中。可以找到它的实现 here
  • 可以找到 Snowboy 热词的 SpeechRecognition 实现 here

如果有人想查看日志、错误输出等,请告诉我。

感谢所有帮助。

最佳答案

对于可能遇到相同或相似问题的任何人,我找到了解决方案。我尝试的所有方法最终都没有奏效,但我发现我正在寻找的功能已经内置到 Snowboy 库中。但是,可直接下载的预构建二进制文件已经过时,并且还没有此功能。因此,要获得我描述的功能,您必须按照 Snowboy 的 GitHub 存储库上的自述文件中的说明完成编译您自己的自定义二进制文件的过程。

进行此更改立即解决了我遇到的问题,使我能够继续我的项目。

希望这可以帮助其他可能卡在这个问题上的人。

关于python - 与 python SpeechRecognition 库一起设置 Snowboy 热词检测的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073521/

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