Синтез речи в Linux: естественная озвучка офлайн из терминала
В Linux синтез речи обычно означает espeak или Festival: быстро, бесплатно и роботизированно. Нейросетевые голоса звучат как люди, но почти все живут в облаке. Бесплатный движок SuperClonica приносит на ваш Linux нейросеть Supertonic 3: она работает офлайн на обычном процессоре и говорит на 31 языке.
В этом руководстве — как поставить движок в виртуальное окружение, озвучивать текст из терминала, читать выделенный текст вслух по горячей клавише и выбирать голоса.
Что нужно
В отличие от espeak и Festival, это нейросеть, поэтому речь звучит естественно, а после первого запуска интернет не нужен.
- Современный 64-битный дистрибутив Linux с Python 3.10 или новее.
- Около 400 МБ на диске для модели Supertonic 3, она скачивается один раз.
- Видеокарта не нужна: NVIDIA только ускоряет работу.
- Голос: десять встроенных голосов от M1 до M5 и от F1 до F5 или JSON-файл из каталога.
Установка в виртуальное окружение
Многие дистрибутивы больше не дают pip ставить пакеты в системный Python, поэтому используйте виртуальное окружение: python3 -m venv ~/.venvs/tts && ~/.venvs/tts/bin/python -m pip install superclonica-cpu. Команда тогда — ~/.venvs/tts/bin/superclonica; добавьте эту папку в PATH или заведите alias. С видеокартой NVIDIA ставьте вместо этого superclonica-gpu-cuda: pip сам принесёт CUDA и cuDNN.
Озвучка из терминала
Модель скачивается при первом запуске; после этого движок работает без сети.
- Одна фраза: superclonica --text "Привет из Linux." --voice F1 --lang ru --output hello.wav && aplay hello.wav.
- Целый файл: --text-file article.txt вместо --text; длинный текст делится по естественным паузам и собирается в один WAV-файл.
- Воспроизводите результат через aplay, paplay или pw-play, в зависимости от звуковой системы.
- На загруженной машине ограничьте потоки процессора: --threads 4.
Чтение выделенного по горячей клавише
Сохраните небольшой скрипт и назначьте ему горячую клавишу в настройках рабочего стола: xclip -o > /tmp/sel.txt (в Wayland: wl-paste -p > /tmp/sel.txt), затем superclonica --text-file /tmp/sel.txt --voice F1 --lang ru --output /tmp/sel.wav && aplay /tmp/sel.wav. Выделите текст в любом окне, нажмите сочетание — и движок прочитает его вслух. Чтобы читать другие языки, поменяйте --lang и голос.
Голоса и сервер
У каждого голоса каталога SuperClonica есть страница, где можно бесплатно озвучить онлайн фразу от 30 до 100 символов. Бесплатные голоса скачиваются без регистрации, а платные покупаются один раз и остаются у вас JSON-файлом, который передаётся через --voice. Для других программ в вашей сети образ superclonica/superclonica на Docker Hub запускает тот же движок как HTTP-сервер.