找回密码
 立即注册

微信扫码登录

搜索
查看: 14384|回复: 31

[插件集成] 免费开源离线本地中英文多语言语音合成Addon开发完毕测试...

[复制链接]

19

主题

272

回帖

1514

积分

论坛技术达人

积分
1514
金钱
1208
HASS币
130
发表于 2022-5-29 21:45:59 | 显示全部楼层 |阅读模式
本帖最后由 riceball 于 2022-6-9 17:59 编辑

为啥要弄离线语音合成?

简单来说,就是服务和产品分别,具体请见我前面写的 HA智能硬件采购避坑指要(一) Zigbee篇 的前述.

语音合成Addon的由来和简单介绍

内部测试,目前刚刚完成了常规语音合成和AI语音合成,基本可用.本来想偷个懒,直接在OpenTTS上改来着,可是不知道作者是废弃了OpenTTS还是什么原因,我的两个PR都没有回音.
所以干脆新开项目:  https://github.com/offline-ai/hassio-addons, 修改内容如下:

  • [X] Upgrade Coqui-TTS from 0.3.1 to latest version 0.7.0dev
    • [X] fix: Check if optional dependencies are installed before loading ZH/JA phonememizer
    • [X] Remove matplotlib (It is only useful during the train analysis phase).
    • [X] Optimal Coqui-TTS  Models Size
    • [ ] Optimal Coqui-TTS  Models on Embedded device
  • [X] Espeak Chinese locale missing
  • [X] Show used languages only
  • [X] Can not use SSML on HA
  • [X] Add preferred voice for language option

目前 tts-zh addon 包含中英文语言(enzh), 以及常规语音合成(ESpeak)和AI语音合成(Coqui)引擎

食用方法

点击添加仓库地址 Open your Home Assistant instance and show the dashboard of a Supervisor add-on.

或者手动添加仓库地址: https://github.com/offline-ai/hassio-addons

Offline TTS Addon 配置

可以在附加配置中设定各个语言的首选声音,对与盒子之类CPU比较弱的不妨设置首选声音为:

- lang: zh
  voice: espeak:zh-cmn
- lang: en
  voice: espeak:en-us

支持中英文多语言混和输入,直接在文本中输入:


<speak>
  <s lang="zh">欢迎使用离线语音合成 </s>
  <s lang="en-us">Welcome to Offline Speech Synthesis.</s>
</speak>


作了简单的Cache, 相同的话,第二次输出就快.

安装后, 修改   configuration.yaml file:

tts:
  - platform: marytts
    voice: tts:zh_baker # 默认语音, 如果是盒子,或者CPU性能较弱,请改为 espeak:zh-cmn

中英引擎对比以及语音列表如下

  • Coqui-TTS: Patched and embedded version of Coqui-TTS latest dev(0.7.0) version
    • TTS 系统名称:tts
    • 语音质量:好
    • 性能:不好,需要强大的 CPU 和足够的内存
    • 资源开销:高
    • 内置语音模型:
    • zh_baker: Chinese Voice from baker [F]
    • en_vctk: English Multi Speakers Voice [MF]
  • ESpeaker
  • TTS 系统名称:espeak
    • 语音质量:差,像机器人。
    • 性能:非常好
    • 资源开销:低
    • 内置语音模型:
    • en-029: English_(Caribbean) [M]
    • en-gb: English_(Great_Britain) [M]
    • en-gb-scotland: English_(Scotland) [M]
    • en-gb-x-gbclan: English_(Lancaster) [M]
    • en-gb-x-gbcwmd: English_(West_Midlands) [M]
    • en-gb-x-rp: English_(Received_Pronunciation) [M]
    • en-us: English_(America) [M]
    • zh-cmn: Chinese_(Mandarin) [M]
    • zh-yue: Chinese_(Cantonese) [M]

问题可能很多,请在本贴反馈.

Change logs

v1.2.1 (2022-06-07)

  • use log_level option instead of debug now
  • add preferred_voices option

v1.1.0 (2022-05-31)

Fix

  • the online validator of swagger error: Can't read from file...
  • Can not return voices on MaryTTS-compatible "/voices" endpoint

Feat

  • add zh translation
  • add tts-zh_lite, tts-en_lite

评分

参与人数 6金钱 +74 HASS币 +20 收起 理由
whxciotw + 20 高手,这是高手!
cybing + 1
hyperlau + 5 以为是青铜,原来是王者!
+ 20 + 20 高手,这是高手!
sirakawa + 12 厉害了word楼主!
dscao + 16 感谢楼主分享!

查看全部评分

回复

使用道具 举报

19

主题

272

回帖

1514

积分

论坛技术达人

积分
1514
金钱
1208
HASS币
130
 楼主| 发表于 2025-4-12 14:25:21 | 显示全部楼层
norikohxb 发表于 2024-12-25 16:44
离线tts的生成速度会不会比edge 等在线响应速度快?

看你机器的性能而定
回复

使用道具 举报

88

主题

304

回帖

1718

积分

金牌会员

积分
1718
金钱
1326
HASS币
0
发表于 2024-12-25 16:44:41 | 显示全部楼层
离线tts的生成速度会不会比edge 等在线响应速度快?
回复

使用道具 举报

1

主题

140

回帖

463

积分

中级会员

积分
463
金钱
322
HASS币
0
发表于 2024-4-30 17:22:22 | 显示全部楼层

我也是刷帖子的时候看见的,大概记得有这个做法,我没用这个,我用的ASRPRO离线语音
回复

使用道具 举报

4

主题

79

回帖

695

积分

高级会员

积分
695
金钱
612
HASS币
0
发表于 2024-4-29 10:57:51 | 显示全部楼层
1uv_can 发表于 2024-4-28 23:33
使用esp32 的 voice assistat 将语音流传入 HA,就行

能详细点吗?
回复

使用道具 举报

4

主题

79

回帖

695

积分

高级会员

积分
695
金钱
612
HASS币
0
发表于 2024-4-29 10:56:46 | 显示全部楼层
展开讲讲,速度怎么样?我试过rhasspy系列docker,说几个汉字得等上几分钟。
回复

使用道具 举报

1

主题

140

回帖

463

积分

中级会员

积分
463
金钱
322
HASS币
0
发表于 2024-4-28 23:33:00 | 显示全部楼层
leozen 发表于 2024-4-10 18:53
要是有esp32的离线语音就好了,现在用asr pro效果还行,但是asr pro和esp32两块芯片不好接线,而且asrpro只 ...

使用esp32 的 voice assistat 将语音流传入 HA,就行
回复

使用道具 举报

4

主题

79

回帖

695

积分

高级会员

积分
695
金钱
612
HASS币
0
发表于 2024-4-10 18:53:13 | 显示全部楼层
本帖最后由 leozen 于 2024-4-10 18:55 编辑

要是有esp32的离线语音就好了,现在用asr pro效果还行,但是asr pro和esp32两块芯片不好接线,而且asrpro只能识别已经输入的那些语音命令。
回复

使用道具 举报

55

主题

242

回帖

2063

积分

金牌会员

积分
2063
金钱
1766
HASS币
0
发表于 2023-11-16 19:21:28 | 显示全部楼层
你好 按照
  - platform: marytts
    voice: "tts:zh_baker" # 默认语音, 如果是盒子,或者CPU性能较弱,请改为 espeak:zh-cmn
    host: 192.168.1.254
    port: 59125
设置 ,在HA里面调用tts服务时,中文语音正常,英文不行,请问 该如何设置,才能中文和英文 混合 TTS正常。 谢谢!
回复

使用道具 举报

55

主题

242

回帖

2063

积分

金牌会员

积分
2063
金钱
1766
HASS币
0
发表于 2023-11-16 09:45:40 | 显示全部楼层
aini白痴 发表于 2023-7-2 01:51
大佬,这个addon我一直下载不下来,提示
2023年7月2日
上午1:17

docker pull  riceball/tts:zh-latest   可以获得镜像docker run  --name tts -it -p 59125:59125 riceball/tts:zh-latest   这样可以运行
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-8-18 02:50 , Processed in 0.233926 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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