Telegram 机器人的 AI 语音消息
用语音消息回复的机器人显得更有生气:朗读的早间摘要、用角色声音的回复、给语言学习者的发音示例。云端语音 API 按消息收费,还能看到每一段文字。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
免费的 SuperClonica 引擎可以在你自己的服务器上,用自然声音或角色声音朗读机器人的文字。本指南介绍如何把回复变成 Telegram 语音消息、如何保持机器人响应迅速,以及如何合理使用声音。
语音机器人能做什么
简短的回复效果最好:几句话的语音消息比冗长的独白更容易听。
- 用语音消息代替大段文字回答问题。
- 朗读新闻、帖子或每日摘要。
- 在游戏或粉丝社区机器人中以角色身份说话。
- 为语言学习者提供 31 种语言的例句。
免费试听声音
在任意声音页面输入一条 30 到 100 个字符的典型机器人回复,选择语言并点击生成按钮。几秒后就能听到你的机器人的效果,无需注册。
把文字变成语音消息
WAV 只是中间文件;Opus 文件很小,在所有 Telegram 应用的聊天中都能直接播放。
- 安装一次引擎:python -m pip install superclonica-cpu。
- 只创建一次(tts = Superclonica()),然后为每条回复生成语音:audio, rate = tts.synthesize("Good morning! Here is your summary for today.", voice="F1", lang="en"); tts.save("reply.wav", audio)。
- Telegram 会把 Opus 编码的 OGG 文件显示为语音消息,所以用 ffmpeg 转换:ffmpeg -i reply.wav -c:a libopus -b:a 48k reply.ogg。
- 用你的机器人库中发送语音消息的方法发送文件,它会调用 Telegram Bot API 的 sendVoice。
保持机器人响应迅速
加载引擎需要几秒,之后每条回复不到一秒:在我们的测试中,短句在四个 CPU 线程上耗时 0.43 秒。使用 aiogram 或 python-telegram-bot 等异步库时,请在单独的线程中运行合成,让机器人能继续回复其他聊天。同样的文字、声音和 seed 总是得到同样的音频,所以请缓存重复的回复。如果你的机器人不是用 Python 写的,可以用 Docker 镜像 superclonica/superclonica:cpu 把引擎作为本地 HTTP 服务运行,并调用 POST /synthesize。
合理使用声音
模型自带的十个标准声音 M1–M5、F1–F5 免费,适合任何机器人。目录中的角色声音由粉丝制作,请用于粉丝社区里的娱乐机器人,不要冒充他人或伪装成官方。请告诉用户声音是生成的;品牌或用户众多的公开机器人,请用征得同意的说话人录音训练原创声音,或在交易所下单。