本帖最后由 Jarvis 于 2023-10-14 18:17 编辑
问题
自从通过树莓派连接蓝牙音箱实现TTS语音播报后,基本上一些通知类的消息都会通过TTS来进行播报。
比如以下场景:
- 每天早晨定时播放30分钟的音乐,既起到了闹钟的作用,又能舒缓一下早晨的心情
- 每天早晨定时提醒今天的天气情况,晚上定时提醒明天或者后天的天气情况
- 实现快递动态跟踪,检测到有新的快递进度后直接通过TTS继续播报通知
不过,在使用过一段时间之后,也发现了一些不太人性化的地方。
例如:
每次TTS语音播报时,都会给人 `突然吓一跳` 的感觉,特别是蓝牙音箱的音量设置为 `100%` 时。对于一些定时类的服务,你大概知道什么时间会触发,至少心里提前有个预期的准备,时间长了之后大概也就适应了。
但是对于一些突然的语音播报,比如有最新的快递动态时,就会把人吓一跳。
我i解决方法是,当在执行TTS语音播报时,在NodeRed中执行播报之前先添加一个操作:先将播放器的音量调低到 `30%` 左右,然后再加一个延迟 `3s` 的操作,设定播报 `3s` 后将播放器音量调整到 `50%` 。这样,在执行语音播报时就不会感觉很突然了。
不过这样带来的问题就是,前面的一段内容可能就听不清或者直接给错过了。
后来,我又想到了另一种方法。就是在我要播报的TTS语音之前,先播报一段铃声文件。这样,以一段优雅的铃声作为前奏,就不会让人感到不适了。
但我经过测试后发现,这种想法要实现起来还需要费一番功夫呢!其中的一个难点就是,需要等前奏铃声播放完成之后才能开始执行TTS的播报操作,这其中就需要去不断的判断播放器的最新状态或者根据铃声的时长去推断播放器什么时间会停止,执行起来多少都会有一些误差。
解决
前两天在逛 `X` 时,发现有国外的大佬提到了一个TTS方面的集成插件 `Chime TTS` ,可以在要播放的TTS内容的前面或者后面增加一段提示音。
看了项目的介绍,感觉这不就是我一直想要找的东西嘛,完美解决了我上面遇到的问题!!!
安装配置
该插件可以直接在 `HACS` 商店搜索 `Chime TTS` 进行安装。之后在 `设备与服务` 中添加集成即可。
过多的安装细节这里不再赘述,说一下我在安装过程中遇到的一些问题。
由于我是通过 `Docker` 方式安装的HomeAssistant系统,而 `Chime TTS` 需要的依赖包 `pydub` 可能会由于网络原因安装不上,也就导致在添加集成时会出现 `500` 的错误提示。
解决方法是,进入容器内部手动安装该依赖包。
docker exec -it homeassistant bash
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydub
另外一点,需要在配置文件 `configuration.yaml` 中设置 `local` 目录的映射,否则生成的tts音频文件会找不到。
homeassistant:
media_dirs:
local: /media
项目中默认自带了多种提示音文件,当然也支持自定义。
使用方法和其他的TTS集成大同小异,更多的功能就需要你自己去发掘了。
项目github地址:
- [nimroddolev/chime_tts:自定义家庭助理集成,用于在文本转语音 (TTS) 消息之前和/或之后播放音频文件](https://github.com/nimroddolev/chime_tts)
################### 当然,还有比较重要的一点就是 ########################
|