РУКОВОДСТВО

Озвучка в 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 символов. Зрители могут написать что угодно, поэтому модерируйте награду, как чат. Стандартные голоса подходят для монетизируемых стримов; фанатские голоса персонажей — для пародий и фан-контента, и ни одним голосом нельзя выдавать текст за слова реального человека.