yaoy 发表于 2023-3-14 21:46:18

rhasspy 本地语音控制(不用小爱小度一样控制)

本帖最后由 yaoy 于 2023-3-14 22:15 编辑

rhasspy 本地语音控制,不连网,无延迟
一、整体环境设备介绍
1. Ubuntu 物理机
2. usb 外置麦克风音响
3. HA系统(vm)
4. rhasspy系统(docker)
(usb 麦克风+音响 一体设备)
二、外置麦克风音响设备-测试(不懂可以忽略)
# 建议使用 root 用户测试
# 列出声卡和数字音频设备
>> arecord -l
# 录音(可指定特定设备)
>> arecord test.wav
# 播放
>> aplay test.wav

三、rhasspy安装
# 官网地址:https://rhasspy.readthedocs.io/en/latest/installation/
$ docker run -d -p 12101:12101 \
      --name rhasspy \
      --restart unless-stopped \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile zh

# zh为支持中文的系统(运行以下命令会安装并运行,然后http://localhost:12101 打开webd页面)

四、rhasspy设置(选择下面的设置项并保存)

点保存后,将页面滑动到最上方,会让你下载本地文件,直接下载。查看日志,可能会有域名解析失败的错误。
如果报错,将域名复制到这个地址(https://site.ip138.com/ip.cn/),获取ip地址,然后在/etc/hosts文件中添加下面这句话

>> vim /etc/hosts
>> 85.199.110.133raw.githubusercontent.com


然后再去下载文件,之后重启服务

五、rhasspy 系统基本测试及使用
1.Recognize :打开sentences 页面,加上下面内容(此页面每次修改都要记得Train一下)

(打开 | 关闭){state}星星[灯]


长相




2. 点击右上角的 Train 然后重启 Restart
3. 返回到首页,在Recognize中分别输入:打开 星星 灯 ,长相

输出“长相”也会有类似的结果
4. Speak
在Speak 输入框中输入文字,点击 Speak,会听到声音(如果没有声音要重新选择 第5步的输出设备:audio Playing)


5. Audio Playing设置
点击 Audio Playing 选择设备,然后保存。重复4的操作,直到有声音为止


6. Text to Speech
选择zh,这里speak 也可以说话

----------完成以前操作,恭喜。说明整个系统是正常的-------------

6. Audio Recording 设置
   打开Audio Recording,会有很多选择
   官方文档说点test,选择working! 标记的设备,但我测试下来,有些bug!!!
   如何确定设备:    先拔掉音频设备,点击test 检测设备,记录此时的设备(这些设备是排除的设备),然后插上音频设备,再点击test 检测设备,此时多出来的设备就是可选的设备,然后一个一个的选择测试。


其它项默认即可,选择后保存。
(先选择一个保存,与后面流程一起测试)


7. 测试正常设备
7.1 在6中选择设备,并保存
7.2 返回首页,点击Wake Up,在听到‘叮’之后说话(‘打开星星灯’,‘长相’)

可以等待进度条自己消失,也可以点页面以结束。
然后点击 Play Recording,你会听到你刚才说的声音,如果播放正常,说明就是这个设备了。如果播放时语速,音色等不正常,那就返回到6中更换设备重新测试。
正常情况下会与3中的结果一样

8.Wake Up 的设置
这里有很多类型可选择,我采用 Rhasspy Raven,在这里录入自己想要的名字,录入三次即可,可录入多个,然后 Train, restart



9. 此时可以放下鼠标,对着麦克风 说出唤醒词(第8步设置的唤醒词),会听到‘叮’后,说出你的目标(第一步中的“长相”),会看到3中的效果

------至此,恭喜,rhasspy 部分已经完成,下面就是 homeassistant,node-red结合部分

六、 配置HA中的node-red
官方文档:https://rhasspy.readthedocs.io/en/latest/tutorials/#wake-word
将一下控制流复制到 node-red 中
[{"id":"70d90eed.9fc7e8","type":"tab","label":"Rhasspy Intent","disabled":false,"info":""},{"id":"d7f94fdd.9b5028","type":"debug","z":"70d90eed.9fc7e8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":230,"y":200,"wires":[]},{"id":"d60f2a3e.ec485","type":"websocket in","z":"70d90eed.9fc7e8","name":"","server":"","client":"be111083.116b5","x":200,"y":60,"wires":[["d7f94fdd.9b5028"]]},{"id":"be111083.116b5","type":"websocket-client","z":"","path":"ws://localhost:12101/api/events/intent","tls":"","wholemsg":"true"}]

配置node的数据源地址(rhasspy地址)


然后唤醒麦克风,说出命令,可以看到以下信息:


现在 外置麦克风+外置音响+rhasspy+HA+node-red 本地语音控制的整个流程就完成了,当然rhasspy玩法很多,这只是最基本用法,欢迎大家学习交流

hackyjso 发表于 2023-3-15 00:34:36

这个可以

chess01 发表于 2023-3-15 09:04:48

楼主厉害,膜拜ing

alei643 发表于 2023-3-15 12:29:52

HAOS可以通过商店安装,有时间找个USB麦克风音响试试

yaoy 发表于 2023-3-15 12:55:51

alei643 发表于 2023-3-15 12:29
HAOS可以通过商店安装,有时间找个USB麦克风音响试试

测试过程中 可以观察一下 内存的使用情况,如果有疯狂掉内存,说明Audio Recording 的设备没有选择正确,立即换选设备并重启服务,否则很快就会卡死,这个时候只能重启物理机了···

chaosl 发表于 2023-5-4 22:51:35

楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手,我现在hyperv安装ha系统,hyperv里面的debian通过docker装的rhasspy,完全不会搞麦克和扬声器直通。看了下mqtt的方案,觉得后面可以布局多个房间也很实用。

chaosl 发表于 2023-5-5 20:37:35

chaosl 发表于 2023-5-4 22:51
楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手, ...

小白又做了一天功课,了解到这个https://github.com/Romkabouter大佬做了很多远程连接方案,其中有个里面有原理图可以搞

yaoy 发表于 2023-6-8 11:07:33

chaosl 发表于 2023-5-4 22:51
楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手, ...

麦克风与扬声器主要是要选对设备(就算是同一体设备,在软件中选择的输入输出设备都是不一样的)。

你有试过 mqtt 多麦克和扬声器么,感觉这个确实很实用

leozen 发表于 2023-12-28 13:30:13

这是好东西。楼主还有epshome 的rhasspy satellite教程吗?
页: [1]
查看完整版本: rhasspy 本地语音控制(不用小爱小度一样控制)