指南

树莓派文字转语音:用自然的声音

会说话的树莓派能把业余作品变成全家都在用的东西:迎接客人的门铃、每天早上的天气播报、提醒浇水的植物传感器、给孩子的问答盒。树莓派上常用的 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 工作室训练的你自己的声音。目录中的角色声音由粉丝制作,适合个人作品。