本帖最后由 involute 于 2022-7-1 17:53 编辑
先说在头里
为啥我要把系统自带的Microsoft TTS引擎又实现了一遍呢?
先听这两段语音的区别,HA自带的:
microsoft.mp3
(76.32 KB, 下载次数: 1113)
我改进后的效果(此段为新闻播音风格):
azure_cognitive_speech.mp3
(60.98 KB, 下载次数: 781)
听出区别了吗?改进后,可以设置语音的风格,或悲伤,或喜悦,能够根据使用场景,使用不同风格的语音,可以设置语速,甚至可以扮演角色,让一个机器的声音更像真人,这是一个值得做的事吧?
还是Xiaoxiao,再来两段:
开心时:
cheerful.mp3
(8.98 KB, 下载次数: 538)
生气时:
angry.mp3
(15.91 KB, 下载次数: 457)
---------------以下正文----------------
使用之前
- 使用该组件,首先需要一个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, 下载次数: 72)
进阶配置
要更好地使用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
就是开头听到的新闻播报
最后,附上地址,记得点星
https://github.com/georgezhao2010/azure_cognitive_speech
也可以本地下载压缩包:
|