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

 找回密码
 立即注册
查看: 4285|回复: 15

[经验分享] [本地化] Google tts修复教程

[复制链接]

2

主题

14

帖子

135

积分

论坛DIY达人

积分
135
金钱
121
HASS币
20
发表于 2022-7-19 03:43:57 | 显示全部楼层 |阅读模式
本帖最后由 wyapx 于 2022-7-19 03:43 编辑

众所周知,hass内置了一个Google TTS,可是由于某些特殊原因(eg:网络),导致使用时只会无限加载
最近闲着没事修了一下,顺便分享一下经验。
在开搞之前,你要学会:
    基础的Linux操作(例如:文件编辑)
    会一点Python基础(简单看一看错误)

不废话了,直接开始吧

1. 先使用ssh登入正在运行hass的机器
2. 执行docker exec -it homeassistant bash没有问题的话,下面应该会出现一个不一样(简陋)的shell
注:不同的机器可能有所区别,若在执行时遇到问题,请在下面回复

3. 找到Home Assistance的源码位置,使用cd进入
一般在/usr/src/homeassistant/homeassistant/


4. 修改该目录下的components/google_translate/tts.py

要修改的地方有:
97行的DEFAULT_LANG,将en改为zh-cn
130行的gTTS,添加一个ltd="cn"参数
修改位置如下:
20220719_034101.jpg
5. 保存后重启hass
6. enjoy it
Screenshot_20220719-034259_Home Assistant.jpg

个人感觉,Google的tts做的还是挺不错的

评分

参与人数 2金钱 +30 HASS币 +10 收起 理由
dscao + 10 感谢楼主分享!顺手转换了一个自定义集成。.
+ 20 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

28

主题

559

帖子

4396

积分

论坛元老

Rank: 8Rank: 8

积分
4396
金钱
3837
HASS币
0
发表于 2022-7-19 05:09:02 来自手机 | 显示全部楼层
要科学上网吧
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-7-19 08:01:55 | 显示全部楼层
本帖最后由 ciasdmxhxjjpd@c 于 2022-7-19 08:04 编辑

直接在 configure 里配置更简单

另,docker 环境下,路由器要全局代理,路由本身输出也要代理。
# us for output
iptables -t nat -I GFW -d yourvpsip  -j RETURN
iptables -t nat -I OUTPUT -p tcp -m multiport --dports 80,443 -j GFW
# Text to speech
tts:
  - platform: google_translate
    language: "zh-CN"
    cache: true
    cache_dir: /config/tts
    time_memory: 300
    base_url: https://yourdomain:8123
    service_name: google_say

回复

使用道具 举报

42

主题

523

帖子

2951

积分

金牌会员

Rank: 6Rank: 6

积分
2951
金钱
2428
HASS币
10
发表于 2022-7-19 08:30:48 | 显示全部楼层
ciasdmxhxjjpd@c 发表于 2022-7-19 08:01
直接在 configure 里配置更简单

另,docker 环境下,路由器要全局代理,路由本身输出也 ...

路由器全局代理就没有可行性了,会被打死的。。。
回复

使用道具 举报

80

主题

388

帖子

1680

积分

金牌会员

Rank: 6Rank: 6

积分
1680
金钱
1292
HASS币
0
发表于 2022-7-19 08:50:39 | 显示全部楼层
yinghu183 发表于 2022-7-19 08:30
路由器全局代理就没有可行性了,会被打死的。。。

为社么不行啊?我现在就是全局代理,做了分流,参考 ss github ,tcp 透明代理

从路由器本身发出的数据包要经过 output 链,加上 上面的策略就能实现路由器本身代理。
回复

使用道具 举报

14

主题

123

帖子

2036

积分

金牌会员

Rank: 6Rank: 6

积分
2036
金钱
1908
HASS币
40
发表于 2022-7-19 09:38:10 | 显示全部楼层
没明白你这个标题的本地化是什么意思
回复

使用道具 举报

2

主题

14

帖子

135

积分

论坛DIY达人

积分
135
金钱
121
HASS币
20
 楼主| 发表于 2022-7-19 10:31:06 | 显示全部楼层

可能是我写的不够清楚,这个方案是不需要科学上网的
本质上是换了Google Translate的国内源

回复

使用道具 举报

28

主题

559

帖子

4396

积分

论坛元老

Rank: 8Rank: 8

积分
4396
金钱
3837
HASS币
0
发表于 2022-7-19 20:10:56 来自手机 | 显示全部楼层
wyapx 发表于 2022-7-19 10:31
可能是我写的不够清楚,这个方案是不需要科学上网的
本质上是换了Google Translate的国内源


那不错。。。。。
回复

使用道具 举报

24

主题

884

帖子

5055

积分

论坛元老

Rank: 8Rank: 8

积分
5055
金钱
4166
HASS币
20
发表于 2022-7-20 22:38:08 来自手机 | 显示全部楼层
写成自定义插件,是不是更方便呢?
回复

使用道具 举报

33

主题

2196

帖子

5838

积分

论坛元老

Rank: 8Rank: 8

积分
5838
金钱
3642
HASS币
60
QQ
发表于 2022-7-21 04:04:35 | 显示全部楼层
我的是pve下装的,搜索不到该文件
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-29 02:53 , Processed in 0.167768 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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