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

 找回密码
 立即注册
查看: 76850|回复: 166

[插件集成] HA自带的微软TTS引擎的全面改进威力加强版

  [复制链接]

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

发表于 2021-7-7 15:05:44 | 显示全部楼层 |阅读模式
本帖最后由 involute 于 2022-7-1 17:53 编辑

先说在头里

为啥我要把系统自带的Microsoft TTS引擎又实现了一遍呢?

先听这两段语音的区别,HA自带的:
microsoft.mp3 (76.32 KB, 下载次数: 1067)

我改进后的效果(此段为新闻播音风格):
azure_cognitive_speech.mp3 (60.98 KB, 下载次数: 754)

听出区别了吗?改进后,可以设置语音的风格,或悲伤,或喜悦,能够根据使用场景,使用不同风格的语音,可以设置语速,甚至可以扮演角色,让一个机器的声音更像真人,这是一个值得做的事吧?

还是Xiaoxiao,再来两段:
开心时:
cheerful.mp3 (8.98 KB, 下载次数: 525)

生气时:
angry.mp3 (15.91 KB, 下载次数: 444)


---------------以下正文----------------

使用之前
- 使用该组件,首先需要一个Microsoft Azure账号,如果你没有,请先注册一个。
- 录Azure后,转到Azure主页
- 点击资源组,新建一个资源组,如果你是Azure新用户,可以获得一年的免费使用期限。区域选择你所在区域即可,中国用户可以选择东亚或者东南亚,加快以后网络访问速度。
- 创建资源组后,回到Azure主页,选择创建资源,搜索“语音”,在搜索到的语音标签上选择创建。
- 订阅仍旧可以选择免费试用,定价层选择“免费 F0”,资源组选择刚才新建的资源组,区域与之前的区域保持一致。
- 创建语音资源后,等待创建完成,返回Azure主页,你创建的语音认知服务已经出现在主页上。
- 点击该项资源,左侧的列表中,点击“资源管理”下的“密钥和终结点”,密钥和区域,终结点就会出现在屏幕上,记下以上信息,密钥共有两个,任意使用其中一个即可。

还是不会的小盆友,可以参考这个视频前半部分,,区域不要听他的用美东,而是要用东亚或东南亚

安装
使用HACS安装自定义存储库,或者从Latest Release下载最新的发行版,并将其中的`custom_components/azure_cognitive_speech`目录下所有文件手动复制到你的Home Assistant下的`<Home Assistant config folder>/custom_components/azure_cognitive_speech`目录中,然后重启Home Assistant。

配置
基础配置
编辑你HomeAssistant中的configuration.yaml,增加以下配置行:
tts:
  - platform: azure_cognitive_speech
    api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXX"  # 这里是你申请的Azure Cognitive Speech语音服务的密钥
    region: "eastasia"  # 这里是你申请的Azure Cognitive Speech语音服务的区域        
    default_voice: "Xiaoxiao"  # 这里是默认使用的语音,Xiaoxiao是一个中文语音的模型名称


更多语音,请参照这里,其中的“DisplayName”,就是可用的语音名,中文相关语音,都在文件后部。其中“VoiceType”为“Neural”的语音,都是神经网络训练后的语音模型,具有极自然的合成质量。

这个文件只列出了中文的语音:
voice_list.json (8.93 KB, 下载次数: 68)

进阶配置
要更好地使用Home Assistant中的TTS服务,可以在配置项中增加以下内容:
tts:
  - platform: azure_cognitive_speech
    api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXX"  # 这里是你申请的Azure Cognitive Speech语音服务的密钥
    region: "eastasia"  # 这里是你申请的Azure Cognitive Speech语音服务的区域   
    default_voice: "Xiaoxiao"  # 这里是默认使用的语音,Xiaoxiao是一个中文语音的模型名称
    base_url: https://123.45678.com:8123  # 如果你的Home Assistant是基于HTTPS协议的,需要配置Home Assistant的网址
    cache: true  # 缓存文本转语音的结果,下次播放同样内容时,就不再需要访问网络,会使得TTS更快
    cache_dir: /tmp/tts  # 缓存文件所在目录,该目录位于你Home Assistant宿主机中
    time_memory: 300  # 内存中缓存时间


使用
Microsoft Azure Cognitive Speech服务除了一般的TTS,还可以为语音加入风格(Style)和角色模仿(Role),比如对于“Xiaoxiao”这个语音来说, "sad"风格与"newscast"风格具有巨大的区别,同时还可以让Xiaoxiao模仿诸如老年人说话。
以上功能通过语音识别时的选项(Option)功能实现,可用的选项包括:

  • voice 选择的语音,可以选择默认语音之外的语音发音
  • speed 说话的速度,可选值-5到5,正常应设置到-2到2之间
  • style 风格
  • role 角色演绎

要换人怎么办?不用在yaml里重新配,然后重新启动HA,只需要在Option中指定用谁说话即可(不指定就是Xiaoxiao),这样可以让晓晓叫你起床,晓睿问你中午吃啥,晓萱向你道晚安,还可以让生气的云希吓走意外闯入者。
关于可用的voice及其可用哪些style或者role,仍旧是参照这里

在上方列表文件中,有“StyleList”的,就是可以使用的style(做情绪,情景理解),有“RolePlayList”的,就是可以使用的角色演绎。

实例
使用如下Options,播放文字“在北京时间今天凌晨3点举行的一场欧洲杯半决赛中,意大利队与西班牙队在120分钟内站成1:1平。在点球大战中,意大利队以4:2(总比分5:3)击败西班牙队,挺进决赛。”
voice: Xiaoxiao
speed: 1
style: newscast


就是开头听到的新闻播报
TTS.png

最后,附上地址,记得点星
https://github.com/georgezhao2010/azure_cognitive_speech

也可以本地下载压缩包:
游客,如果您要查看本帖隐藏内容请回复







评分

参与人数 5金钱 +51 HASS币 +20 收起 理由
flim + 5
eric + 16 论坛有你更精彩!
a100700 + 5 感谢楼主分享!
+ 20 + 20 纳尼,还有这种操作?
neoyang + 5

查看全部评分

回复

使用道具 举报

0

主题

17

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
金钱
263
HASS币
0
发表于 2021-7-7 16:08:18 | 显示全部楼层
现在对比下来好像微软的这套体验是最好的
回复

使用道具 举报

106

主题

549

帖子

2745

积分

金牌会员

Rank: 6Rank: 6

积分
2745
金钱
2196
HASS币
20
发表于 2021-7-7 21:47:13 | 显示全部楼层
有没有哪个语音识别的设备,可以直接把识别到的语音信息开放给HA的,可以自定义语音对话场景
回复

使用道具 举报

25

主题

547

帖子

4145

积分

论坛元老

Rank: 8Rank: 8

积分
4145
金钱
3598
HASS币
0
发表于 2021-7-7 22:06:58 | 显示全部楼层
可惜只能免费用1年
回复

使用道具 举报

10

主题

101

帖子

1517

积分

金牌会员

Rank: 6Rank: 6

积分
1517
金钱
1416
HASS币
0
发表于 2021-7-8 00:37:12 | 显示全部楼层
后面收费是多少钱一年
回复

使用道具 举报

11

主题

313

帖子

1324

积分

金牌会员

Rank: 6Rank: 6

积分
1324
金钱
1011
HASS币
10
发表于 2021-7-8 01:29:12 | 显示全部楼层
安卓上体验了很久的晓晓,怕一年以后被惯坏了不想用其他tts
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

 楼主| 发表于 2021-7-8 01:33:00 | 显示全部楼层
aexyun 发表于 2021-7-8 00:37
后面收费是多少钱一年

其实也很便宜,100万字符转语音也只要100块钱。

你只要设置缓存语音,后边只要不改语音,就几乎不再需要访问网络,也就不需要付钱了。
回复

使用道具 举报

4

主题

158

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
金钱
1042
HASS币
0
发表于 2021-7-8 07:46:11 | 显示全部楼层
我注册区域选择日本,但貌似必须要绑国际信用卡才行。。
回复

使用道具 举报

4

主题

158

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
金钱
1042
HASS币
0
发表于 2021-7-8 07:53:35 | 显示全部楼层
龙魂炎虎 发表于 2021-7-8 07:46
我注册区域选择日本,但貌似必须要绑国际信用卡才行。。

我重新弄了个号,选中国也是要绑卡。。
回复

使用道具 举报

6

主题

226

帖子

3359

积分

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3133
HASS币
0
发表于 2021-7-8 10:36:07 | 显示全部楼层
收藏了 谢谢楼主
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 18:59 , Processed in 0.076030 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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