指南

Streamer.bot 文字转语音:使用自定义 AI 声音

请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。观众兑换奖励时,Streamer.bot 几乎什么都能做,文字转语音是最受欢迎的玩法之一。它自带的 TTS 通过 Speaker.bot 使用系统或云服务的声音。如果想让奖励用播音员、反派或卡通角色的声音说话,可以接入你自己的声音。

本指南用一个经过测试的小型 Python 脚本,把 Streamer.bot 连接到免费的 SuperClonica 引擎:观众输入消息,引擎在你的电脑上离线朗读,Streamer.bot 在直播中播放音频文件。

需要准备什么

Windows 上的 Streamer.bot、Python 3,以及用 python -m pip install superclonica-cpu 安装的免费引擎。然后是声音:引擎自带的十个标准声音 M1 至 M5 和 F1 至 F5 可用于盈利直播;目录中的任何声音都可以一次性购买并下载为一个小 JSON 文件。为脚本、声音和音频创建一个文件夹,例如 C:\stream。

脚本

把下面的内容保存为 C:\stream\sb_tts.py。它从环境变量读取文本,截断到 300 个字符,跳过空消息,并写出音频文件:

import os, shutil, subprocess, sys

text = os.environ.get('SC_TEXT', '').strip()[:300]
if not text:
    sys.exit(0)
cli = shutil.which('superclonica') or os.path.join(os.path.dirname(sys.executable), 'Scripts', 'superclonica')
subprocess.run([cli, '--text', text, '--voice', os.environ.get('SC_VOICE', 'F1'),
                '--lang', os.environ.get('SC_LANG', 'en'), '--output', os.environ.get('SC_OUT', 'tts.wav')], check=True)

文本通过环境变量而不是命令行传入,所以带引号或其他符号的观众消息不会破坏命令。

Streamer.bot 中的动作

创建一个要求观众输入文字的频道积分奖励。在 Streamer.bot 中为该奖励添加一个触发器为 Twitch、Channel Reward、Reward Redemption 的动作。添加子动作 Core、System、Run a Program:Command 填 python,Arguments 填 C:\stream\sb_tts.py,Working Directory 填 C:\stream,Wait for Exit 填 30,Environment Variables 中填 SC_TEXT = %rawInput%, SC_VOICE = C:\stream\voice.json, SC_LANG = en, SC_OUT = C:\stream\tts.wav。再添加 Core、Sounds、Play Sound,文件选 C:\stream\tts.wav,并保持“Finish playing before continuing”开启,让下一个奖励排队等待。

速度如何

在我们的测试电脑上,一句 5 秒的台词从启动到生成文件约需 11 秒,大部分时间用于加载模型,脚本每次运行都会加载。用于奖励和提醒已经足够。如果希望一两秒内响应,可以让引擎常驻在一个小型本地服务器中,或调用 SuperClonica 语音 API,免费密钥每天可用 3 分钟音频。

有趣又安全

在 Twitch 中为奖励设置价格和冷却时间,避免聊天刷屏,并保留 300 个字符的截断。观众可以写任何内容,所以要像管理聊天一样管理奖励。标准声音可用于盈利直播;粉丝制作的角色声音仅用于恶搞和粉丝内容,任何声音都不能让人误以为是真人说的话。