Озвучка в Streamer.bot своими ИИ-голосами
Streamer.bot умеет почти всё, когда зритель тратит баллы канала, и озвучка текста — один из любимых трюков. Его собственная озвучка идёт через Speaker.bot и голоса, установленные в системе или в облачных сервисах. Если хочется, чтобы награда звучала голосом диктора, злодея или мультяшного персонажа, можно подключить свой голос.
В этом руководстве Streamer.bot подключается к бесплатному движку SuperClonica через небольшой проверенный скрипт на Python: зритель пишет сообщение, движок озвучивает его офлайн на вашем ПК, а Streamer.bot проигрывает файл на стриме.
Что понадобится
Streamer.bot на Windows, 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», чтобы следующая награда ждала своей очереди.
Насколько это быстро
На нашем тестовом ПК пятисекундная фраза заняла около одиннадцати секунд от запуска до готового файла, в основном на загрузку модели, которую скрипт делает при каждом запуске. Для наград и алертов это нормально: зрители и так ждут пару мгновений. Если нужен ответ за секунду-две, держите движок загруженным в маленьком локальном сервере или вызывайте API синтеза речи SuperClonica: бесплатный ключ даёт 3 минуты звука в сутки.
Весело и безопасно
Задайте награде цену и перезарядку в Twitch, чтобы чат не завалил стрим, и оставьте обрезку до 300 символов. Зрители могут написать что угодно, поэтому модерируйте награду, как чат. Стандартные голоса подходят для монетизируемых стримов; фанатские голоса персонажей — для пародий и фан-контента, и ни одним голосом нельзя выдавать текст за слова реального человека.