Альтернатива edge-tts, которая работает офлайн
edge-tts — популярный пакет для Python, который отправляет текст в онлайн-сервис чтения вслух, на котором работает Microsoft Edge, и сохраняет полученную речь. Он бесплатный и голоса хорошие, но ему нужен интернет, это не официальный API, и он может перестать работать при любом изменении сервиса.
SuperClonica идёт другим путём: бесплатный движок, который озвучивает текст на вашем компьютере, офлайн, стандартными голосами, голосами персонажей из каталога и голосами, обученными по вашим записям. На этой странице — честное сравнение.
Два разных подхода
Одно заимствует онлайн-сервис; другое — движок, который вы ставите и оставляете у себя.
- edge-tts: текст уходит в онлайн-сервис; много голосов и языков; неофициально, поэтому может сломаться или быть ограничен в любой момент.
- SuperClonica: модель работает локально после однократной загрузки около 385 МБ; ничего никуда не отправляется.
- Голоса SuperClonica говорят на 31 языке; китайский пока не поддерживается, а в edge-tts китайские голоса есть.
- SuperClonica добавляет голоса персонажей и голоса, обученные по вашим записям.
Когда хватает edge-tts
Для быстрого личного скрипта при наличии интернета, или если нужен китайский либо язык, на котором Supertonic 3 не говорит, edge-tts — разумный выбор, и SuperClonica не заменяет его набор языков.
Когда лучше SuperClonica
Тот же текст, голос и seed всегда дают тот же звук, поэтому сборки и кеши предсказуемы.
- Скрипты должны работать офлайн или в закрытой сети.
- Тексты приватные и не должны покидать машину.
- Вы делаете продукт, и нужна зависимость, которая не исчезнет при изменении сервиса.
- Нужны голоса персонажей, единый фирменный голос или ваш собственный обученный голос.
Переход за несколько строк
Поставьте движок командой python -m pip install superclonica-cpu. В командной строке озвучьте текстовый файл сразу в MP3: superclonica --text-file script.txt --voice F1 --lang ru --output out.mp3. В Python, после from superclonica import Superclonica и tts = Superclonica(), замените вызов edge-tts на audio, rate = tts.synthesize(text, voice="F1", lang="ru"); tts.save("out.wav", audio). Длинные тексты делятся на естественных паузах и склеиваются в один файл. Перед переходом попробуйте голос на его странице на фразе от 30 до 100 символов — бесплатно и без регистрации.
Сколько это стоит
Движок и десять стандартных голосов модели бесплатны, несколько голосов каталога тоже. Остальные покупаются один раз и остаются вашими. Нет оплаты за запрос и нет сервиса, от которого вы зависите: после установки всё работает без интернета.