用自然的本地声音为 Home Assistant 朗读文字
智能家居的播报是否悦耳,取决于声音:洗衣机洗好了、有人在门口、该出门上学了。在你自己的网络中运行的自然声音,既能保护隐私,也能在断网时继续工作。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
SuperClonica 不是 Home Assistant 的内置集成,但它的本地服务器只需几行配置,就能通过 shell_command 和媒体播放器接入。本指南介绍设置方法,以及如何写出听起来自然的播报。
可以播报什么
一切都在你的网络中运行;只有首次下载模型时需要联网。
- 在智能音箱上播报家电和门铃消息。
- 包含天气和第一项日程的晨间简报。
- 在固定时间提醒家人。
- 用沉稳清晰的声音播报警报和安全消息。
免费挑选声音
在任意声音页面输入一条典型的播报,30 到 100 个字符,选择语言并点击生成按钮。几秒后就能听到家里的效果,无需注册。
连接 Home Assistant
固定的消息只需生成一次并重复使用文件;只有文本改变时才生成新文件。
- 在网络中的一台机器上运行服务器:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。
- 在 configuration.yaml 中添加一个 shell_command,用 curl 发送 JSON(text、voice、lang),并把 WAV 保存到配置目录的 www 文件夹,例如 /config/www/tts/announce.wav。
- www 中的文件通过 /local/ 提供,所以播报文件位于 http://你的HOME-ASSISTANT:8123/local/tts/announce.wav。
- 在自动化中先运行 shell_command,再用这个地址和 media_content_type music 调用 media_player.play_media。
听起来自然的播报
播报要简短,一两句即可。时间和数字请按应读的方式用文字写出,因为数字会被当作普通数值来读。lang 设为文本的语言,并为不同房间或消息类型分配不同的声音,家人一听就知道发生了什么。在普通处理器上,短句远不到一秒就能生成。
隐私
服务器和音频都留在你的网络里。www 文件夹中的内容无需登录即可打开,所以如果你的 Home Assistant 能从互联网访问,就不要把私人信息生成到那里;如果其他机器也能访问语音服务器,请设置 SUPERCLONICA_API_KEY。