Голоса Supertonic 3: где взять свои голоса и как ими пользоваться
Supertonic 3 — небольшая открытая модель синтеза речи, которая работает на обычном компьютере. В ней есть десять встроенных голосов, а любой другой голос — это один небольшой файл, который вы добавляете сами. С таким файлом речь на любом из 31 языка модели генерируется офлайн, на вашем процессоре или видеокарте.
В этом гайде — что такое голос Supertonic 3, откуда теперь брать свои голоса, когда исходный проект Supertonic ушёл в архив, и как пользоваться голосом в официальном коде, в движке SuperClonica и в Docker. SuperClonica продаёт и обучает такие голоса, поэтому мы прямо говорим, где речь о нашем.
Что такое голос Supertonic 3
Голос Supertonic 3 — это стиль голоса: JSON-файл около 0,3 МБ с двумя небольшими наборами чисел. Один задаёт тембр и манеру речи, другой — темп и паузы. Сама модель, около 385 МБ файлов ONNX, общая для всех голосов и скачивается один раз.
Раз голос отделён от модели, сменить его ничего не стоит: одна установка говорит любым файлом голоса, который вы ей передадите. Голос работает на всех языках модели — от английского, испанского и немецкого до русского, японского, корейского, арабского и хинди. Естественнее всего он звучит на языке записи, по которой его сделали. Китайского среди 31 языка нет.
Где взять голоса для Supertonic 3
Десять встроенных голосов, от M1 до M5 и от F1 до F5, идут вместе с моделью. Всё остальное можно взять из нескольких источников.
- Бесплатные голоса на GitHub: в репозитории superclonica/supertonic-voices лежат бесплатные файлы голосов с примерами озвучки на девяти языках.
- Каталог SuperClonica: 170+ голосов, среди них игровые и мультяшные персонажи, дикторы, мужские, женские и детские голоса. На странице каждого голоса есть демо, а свою короткую фразу можно бесплатно озвучить онлайн; бесплатные голоса скачиваются без аккаунта, платные покупаются один раз.
- Голос на заказ: на странице заказов вы описываете голос и прикладываете запись, и автор обучает его для вас.
- Свой голос: SuperClonica бесплатно обучает голос по короткой чистой записи на вашей видеокарте NVIDIA с помощью нашей программы-воркера.
- Voice Builder, бывший сервис Supertone для своих голосов, не входит в архивный проект, так что новые голоса там больше не сделать.
Голос в официальном коде Supertonic
Архивный репозиторий Supertonic по-прежнему работает. Склонируйте его, создайте виртуальное окружение Python 3.11, установите huggingface_hub и скачайте модель в папку assets командой hf download supertone-oss-archive/supertonic-3 --local-dir assets (в быстром старте проекта указана точная ревизия). Затем установите пакеты из py/requirements.txt.
Чтобы говорить своим голосом, запустите пример из папки py и передайте файл голоса: python example_onnx.py --voice-style ./voice.json --text "Ваш текст" --lang ru --n-test 1. WAV-файл появится в папке results. Для другого языка поменяйте --lang, например на en или de.
Голос в движке SuperClonica
SuperClonica — наш движок на базе Supertonic 3. Он читает те же файлы голосов без конвертации, по нашим замерам в среднем на 61% быстрее на процессоре и на 73% на видеокарте, убирает шипение модели между словами и читает числа словами.
Поставьте один пакет: python -m pip install superclonica-cpu или superclonica-gpu-cuda для видеокарты NVIDIA. В Python создайте движок один раз и вызовите tts.synthesize("Привет!", voice="voice.json", lang="ru", seed=7), затем tts.save("hello.wav", audio). Из командной строки: superclonica --text "Привет!" --voice voice.json --lang ru --output hello.wav. Базовая модель скачается при первом запуске.
Голос в Docker
Образ superclonica/superclonica на Docker Hub запускает движок как HTTP-сервер: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu, а на видеокарте NVIDIA — тег cuda с --gpus all.
Запрос POST /synthesize передаёт текст, язык и голос: содержимое JSON-файла голоса кладётся прямо в запрос. Голос весит около 0,3 МБ, поэтому запрос удобно собрать в файл и отправить командой curl -d @request.json. В ответ приходит WAV 16 бит.
Как получить хороший результат
Несколько привычек помогают голосу звучать лучше.
- Указывайте язык текста, а не голоса: русский голос читает английский текст с lang=en.
- Зафиксируйте seed, если дубль понравился: тот же текст, голос и seed дадут ту же запись.
- В официальном коде пишите числа, даты и сокращения так, как они должны звучать; движок SuperClonica сам читает числа словами.
- Делите длинные тексты на абзацы. Движок SuperClonica делает это сам и озвучивает длинный текст короткими частями, поэтому слова реже повторяются и обрываются.
- Слушайте демо перед покупкой: голос сохраняет характер своей записи, включая акцент.
Голоса реальных людей и правила модели
Часть голосов каталога сделана по мотивам известных людей. Это не их настоящие голоса, и сами люди в них не участвовали, поэтому не выдавайте такую озвучку за их настоящие слова.
Supertonic 3 выпущена под лицензией BigScience Open RAIL-M, и её ограничения действуют для любого голоса: не выдавайте себя за другого человека без его согласия, не обманывайте и не травите с помощью озвучки и сообщайте, что запись сгенерирована, когда это важно.