树莓派文字转语音:用自然的声音
会说话的树莓派能把业余作品变成全家都在用的东西:迎接客人的门铃、每天早上的天气播报、提醒浇水的植物传感器、给孩子的问答盒。树莓派上常用的 espeak-ng 和 pico2wave 安装方便,但声音很机械。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
免费的 SuperClonica 引擎能让树莓派拥有自然的神经网络声音。本指南介绍三种用法,从预先生成的文件到在树莓派上直接运行引擎,并坦诚说明哪种适合哪类项目。
让树莓派说话的三种方法
如果项目只说几句固定的话,预先生成的文件就足够了。
- 预先生成的文件:在电脑上把短句生成语音,复制到树莓派,用 aplay 播放。最快也最可靠。
- 网络中的服务器:电脑或家庭服务器运行 Docker 镜像,树莓派发送文字并播放返回的音频。随时可以说新内容。
- 树莓派上的引擎:装有 64 位系统的 Pi 4 或 Pi 5 可以安装 Python 包。速度较慢,但一块板子就能完全离线。
- 这些声音支持 31 种语言,暂不支持中文。
免费试听声音
在任意声音页面输入树莓派要说的短句,30 到 100 个字符,选择语言并点击生成按钮。几秒后就能听到项目的效果并下载文件,无需注册。
请求网络中的服务器
请把服务器放在家庭网络或 VPN 内,切勿在没有密钥的情况下暴露到互联网。
- 在装有 Docker 的电脑或家庭服务器上启动服务器:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。该镜像为 x86-64 处理器构建,因此不能在树莓派上运行。
- 在树莓派上发送请求并播放:curl -s -X POST http://192.168.1.20:8000/synthesize -H "Content-Type: application/json" -d '{"text": "The plants need water.", "voice": "F1", "lang": "en"}' -o /tmp/say.wav && aplay /tmp/say.wav
- 在服务器上设置 SUPERCLONICA_API_KEY,并在请求中加上 -H "Authorization: Bearer 你的密钥"。
- 在普通台式机处理器上,短句远不到一秒,另加网络传输时间。
在树莓派上直接运行引擎
在 64 位 Raspberry Pi OS 上,系统自带的 Python 不允许直接用 pip 安装,所以先创建虚拟环境:python3 -m venv ~/tts,然后 ~/tts/bin/pip install superclonica-cpu。接着生成并播放一句话:~/tts/bin/superclonica --text "Good morning! It is time for breakfast." --voice F1 --lang en --output hello.wav && aplay hello.wav。首次运行会下载约 385 MB 的模型。引擎需要的所有库都有适用于树莓派 64 位 ARM 处理器的版本,但我们尚未在树莓派上测速:预计会比台式机慢好几倍,重复的短句请只生成一次并保存为文件。
会说话的项目
cron 任务可以每天早上播报天气或日程,人体感应器可以向进门的人问好,按钮可以给孩子讲一个随机笑话。用于出售或公开展示的项目,请使用你拥有权利的声音:模型的十个标准声音 M1 至 M5 和 F1 至 F5,或用同意授权的说话人录音在 SuperClonica 工作室训练的你自己的声音。目录中的角色声音由粉丝制作,适合个人作品。