『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 3632|回复: 8

[技术讨论] rhasspy 本地语音控制(不用小爱小度一样控制)

[复制链接]

5

主题

32

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
202
HASS币
0
发表于 2023-3-14 21:46:18 | 显示全部楼层 |阅读模式
本帖最后由 yaoy 于 2023-3-14 22:15 编辑
rhasspy 本地语音控制,不连网,无延迟

一、整体环境设备介绍
1. Ubuntu 物理机
2. usb 外置麦克风音响
3. HA系统(vm)
4. rhasspy系统(docker)
1678800686887.jpg (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设置(选择下面的设置项并保存)
4_1.png
点保存后,将页面滑动到最上方,会让你下载本地文件,直接下载。查看日志,可能会有域名解析失败的错误。
如果报错,将域名复制到这个地址(https://site.ip138.com/ip.cn/),获取ip地址,然后在/etc/hosts文件中添加下面这句话

>> vim /etc/hosts
>> 85.199.110.133  raw.githubusercontent.com
4_2.png

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

五、rhasspy 系统基本测试及使用
1.  Recognize :打开sentences 页面,加上下面内容(此页面每次修改都要记得Train一下)
[XingXinglamp]
(打开 | 关闭){state}星星[灯]

[Lamp3]
长相

sentences_1.png
sentences_2.png

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

recognize

recognize

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

speak

speak


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

audio_play

audio_play


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

text_to_speech

text_to_speech

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

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

audio_record

audio_record

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


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

wake_up01

wake_up01

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

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

wake_word

wake_word


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_1

node_1

node_2

node_2

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

配置node

配置node


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

out_put

out_put


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

评分

参与人数 2金钱 +30 收起 理由
情非殇 + 10 厉害了word楼主!
dscao + 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

3

主题

119

帖子

1175

积分

金牌会员

Rank: 6Rank: 6

积分
1175
金钱
1056
HASS币
0
发表于 2023-3-15 00:34:36 | 显示全部楼层
这个可以
回复

使用道具 举报

0

主题

10

帖子

536

积分

高级会员

Rank: 4

积分
536
金钱
526
HASS币
0
发表于 2023-3-15 09:04:48 | 显示全部楼层
楼主厉害,膜拜ing
回复

使用道具 举报

23

主题

656

帖子

4605

积分

元老级技术达人

积分
4605
金钱
3934
HASS币
30

教程狂人

QQ
发表于 2023-3-15 12:29:52 | 显示全部楼层
HAOS可以通过商店安装,有时间找个USB麦克风音响试试
回复

使用道具 举报

5

主题

32

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
202
HASS币
0
 楼主| 发表于 2023-3-15 12:55:51 | 显示全部楼层
alei643 发表于 2023-3-15 12:29
HAOS可以通过商店安装,有时间找个USB麦克风音响试试

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

使用道具 举报

4

主题

36

帖子

697

积分

高级会员

Rank: 4

积分
697
金钱
661
HASS币
0
发表于 2023-5-4 22:51:35 | 显示全部楼层
楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手,我现在hyperv安装ha系统,hyperv里面的debian通过docker装的rhasspy,完全不会搞麦克和扬声器直通。看了下mqtt的方案,觉得后面可以布局多个房间也很实用。
回复

使用道具 举报

4

主题

36

帖子

697

积分

高级会员

Rank: 4

积分
697
金钱
661
HASS币
0
发表于 2023-5-5 20:37:35 | 显示全部楼层
chaosl 发表于 2023-5-4 22:51
楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手, ...

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

使用道具 举报

5

主题

32

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
202
HASS币
0
 楼主| 发表于 2023-6-8 11:07:33 | 显示全部楼层
chaosl 发表于 2023-5-4 22:51
楼主有没有研究mqtt音频输入输出硬件,ha23.05加载项内部包含rhasspy整套解决方案,可以直接接入语音助手, ...

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

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

使用道具 举报

4

主题

78

帖子

579

积分

高级会员

Rank: 4

积分
579
金钱
501
HASS币
0
发表于 2023-12-28 13:30:13 | 显示全部楼层
这是好东西。楼主还有epshome 的rhasspy satellite教程吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 18:40 , Processed in 1.387660 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表