wzpan / wukong-robot

🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱项目。

Home Page:https://wukong.hahack.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

树莓派使用porcupine进行离线唤醒,文件模型报错

m2474261466 opened this issue · comments

确认已寻找过答案

我已确认在 Github issue 页、常见问题页、文档 中都查找过,没有找到类似问题和资料。我也没有 google / bing/ 百度 / duckduckgo 到相关解答。

安装方式

手动安装

操作系统

Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

离线唤醒相关

—— 我已确保录音、播放都正常工作才尝试 wukong-robot 。

问题描述
我使用了自定义的唤醒模型并且使用了porcupine进行唤醒,但是唤醒失败了,显示porcupine模型是英文的,语音唤醒训练的模型是中文的,
image

已经解决,因为我的唤醒词是中文,默认的模型是en,所以不兼容,需要从官网上下载zh版本model,并在detect.py中创建实例时增加模型的路径即可

commented

我也遇到同样的问题,在 porcupine = pvporcupine.create() 中指定中文对应的 model,可是在运行时出现下面的错误,是 pvrecorder 不支持我的麦克风吗?同样的设备,snowboy 是能正常工作的。

Traceback (most recent call last):
File "/home/jason/audio/wukong-robot/wukong.py", line 188, in
wukong.run()
File "/home/jason/audio/wukong-robot/wukong.py", line 95, in run
detector.initDetector(self)
File "/home/jason/audio/wukong-robot/robot/detector.py", line 46, in initDetector
pcm = recorder.read()
File "/home/jason/.local/lib/python3.9/site-packages/pvrecorder/_pvrecorder.py", line 178, in read
raise self._PVRECORDER_STATUS_TO_EXCEPTION[status]("Failed to read from device.")
OSError: Failed to read from device.

请问在哪里下载的zh版本模型?

我个人觉得可能是porcupine的问题,没有识别到麦克风的配置 ,这个问题我通过自己训练snowboy的模型替换了pvporcupine的唤醒就欧可,但是存在误唤醒的概率,可以适当的调整阈值解决。目前还有个问题我没有解决,唤醒后有时候会自动再识别一次,这个问题我目前还没有得到解决

作者文档里是有的。https://console.picovoice.ai/signup

感谢

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

好的,尝试一下

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

snowboy好像是没办法支持Python3.10的版本了,我的Python3.10.12用snowboy报错了,好像是不能兼容了

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

snowboy好像是没办法支持Python3.10的版本了,我的Python3.10.12用snowboy报错了,好像是不能兼容了

这个项目我们目前废弃了,采用了树莓派成型的唤醒外挂,用snowboy误报率其实蛮高的,这个有时间可以再试试,不行也选择其他方案试试

已经解决,因为我的唤醒词是中文,默认的模型是en,所以不兼容,需要从官网上下载zh版本model,并在detect.py中创建实例时增加模型的路径即可

你自定义唤醒词的时候,如果用中文,那你语言选的是什么?我看picovoice控制台,自定义唤醒词的时候,语言的下拉选项,并没有Chinese

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

snowboy好像是没办法支持Python3.10的版本了,我的Python3.10.12用snowboy报错了,好像是不能兼容了

这个项目我们目前废弃了,采用了树莓派成型的唤醒外挂,用snowboy误报率其实蛮高的,这个有时间可以再试试,不行也选择其他方案试试

我从bilibili上也看到了一个视频,也是成型的语音唤醒模块,Hi-Link的,就是不知道是否适用树莓派。不知道你用的是什么模块,可以推荐一下吗?

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

snowboy好像是没办法支持Python3.10的版本了,我的Python3.10.12用snowboy报错了,好像是不能兼容了

这个项目我们目前废弃了,采用了树莓派成型的唤醒外挂,用snowboy误报率其实蛮高的,这个有时间可以再试试,不行也选择其他方案试试

我从bilibili上也看到了一个视频,也是成型的语音唤醒模块,Hi-Link的,就是不知道是否适用树莓派。不知道你用的是什么模块,可以推荐一下吗?

亚博MVE01 ,但是这个是通过电平高低的形式识别的,目前还可以,但是代码需要结合你自己的业务改动下,他们官网会有对应的test code,你可以买了download下来跑一跑,我记得好像是pthon写的,不过改起来也不难

客气,但是pvporcupine唤醒可能不是很好用,建议简单用snowboy唤醒,或者寻找其他替代方式进行唤醒

snowboy好像是没办法支持Python3.10的版本了,我的Python3.10.12用snowboy报错了,好像是不能兼容了

这个项目我们目前废弃了,采用了树莓派成型的唤醒外挂,用snowboy误报率其实蛮高的,这个有时间可以再试试,不行也选择其他方案试试

我从bilibili上也看到了一个视频,也是成型的语音唤醒模块,Hi-Link的,就是不知道是否适用树莓派。不知道你用的是什么模块,可以推荐一下吗?

亚博MVE01 ,但是这个是通过电平高低的形式识别的,目前还可以,但是代码需要结合你自己的业务改动下,他们官网会有对应的test code,你可以买了download下来跑一跑,我记得好像是pthon写的,不过改起来也不难

好的,谢谢

已经解决,因为我的唤醒词是中文,默认的模型是en,所以不兼容,需要从官网上下载zh版本model,并在detect.py中创建实例时增加模型的路径即可

你自定义唤醒词的时候,如果用中文,那你语言选的是什么?我看picovoice控制台,自定义唤醒词的时候,语言的下拉选项,并没有Chinese

我们没有用picovoice,第一是模型导入后无法使用的概率较大,第二是这家公司我们无法使用对公购买定制模型,毕竟是商业用途,唤醒准确率还是很关键的。当时我们测试的时候是用的snowboy,这个训练模型成本小,可选中文,其次降低唤醒阈值可以改善误唤醒概率但是还是存在高误报率,官方默认的keyword"snowboy"倒是挺好用的,但是我们目前没法能训练出匹配多个方言的准确版本。你要是自己玩玩的话,就选择snowboy,如果你是商业用途,建议换一种唤醒方式,比如百度的解决方案尝试下,但是百度的收费好像有点贵