РУКОВОДСТВО

Озвучка текста на Raspberry Pi естественными голосами

Говорящий Raspberry Pi превращает самоделку в вещь, которой пользуется вся семья: звонок, который здоровается с гостями, прогноз погоды каждое утро, датчик, который просит полить цветы, викторина для детей. Привычные голоса для Pi — espeak-ng и pico2wave — ставятся легко, но звучат роботизированно.

Бесплатный движок SuperClonica даёт Pi естественные нейросетевые голоса на 31 языке. В этом руководстве — три способа его использовать, от заранее озвученных файлов до движка на самом Pi, и честно о том, какой способ какому проекту подходит.

Три способа заставить Pi говорить

Если проект произносит лишь несколько неизменных фраз, готовых файлов достаточно.

  • Готовые файлы: озвучьте фразы на компьютере, скопируйте на Pi и проигрывайте через aplay. Самый быстрый и надёжный способ.
  • Сервер в сети: на ПК или домашнем сервере работает Docker-образ, Pi отправляет текст и проигрывает ответ. Новый текст — в любой момент.
  • Движок на Pi: Python-пакет ставится на Pi 4 или Pi 5 с 64-битной системой. Медленнее, зато полностью офлайн на одной плате.
  • Голоса говорят на 31 языке; китайский пока не поддерживается.

Послушайте голоса бесплатно

На странице любого голоса впишите фразу, которую будет говорить Pi, от 30 до 100 символов, выберите язык и нажмите «Озвучить». Через несколько секунд вы услышите, как будет звучать проект, и сможете скачать файл, без регистрации.

Запрос к серверу в домашней сети

Держите сервер в домашней сети или за VPN и никогда не открывайте его в интернет без ключа.

  • На ПК или домашнем сервере с Docker запустите сервер: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu. Образ собран для процессоров x86-64, поэтому на самом Pi он не запустится.
  • На Pi отправьте запрос и проиграйте ответ: curl -s -X POST http://192.168.1.20:8000/synthesize -H "Content-Type: application/json" -d '{"text": "Цветам нужна вода.", "voice": "F1", "lang": "ru"}' -o /tmp/say.wav && aplay /tmp/say.wav
  • Задайте SUPERCLONICA_API_KEY на сервере и добавьте в запрос -H "Authorization: Bearer ВАШ-КЛЮЧ".
  • Короткая фраза занимает заметно меньше секунды на обычном настольном процессоре плюс время на передачу по сети.

Движок прямо на Pi

На 64-битной Raspberry Pi OS сначала создайте виртуальное окружение, потому что системный Python не даёт ставить пакеты через pip: python3 -m venv ~/tts, затем ~/tts/bin/pip install superclonica-cpu. Потом озвучьте и проиграйте фразу: ~/tts/bin/superclonica --text "Доброе утро! Пора завтракать." --voice F1 --lang ru --output hello.wav && aplay hello.wav. При первом запуске скачивается модель, около 385 МБ. У всех библиотек движка есть сборки для 64-битного ARM-процессора Pi, но скорость на Pi мы не замеряли: рассчитывайте, что он в разы медленнее настольного компьютера, а повторяющиеся фразы озвучьте один раз и храните файлами.

Говорящие проекты

Задание cron может каждое утро озвучивать погоду или планы на день, датчик движения — здороваться с входящими, а кнопка — рассказывать детям случайную шутку. Для проекта, который вы продаёте или показываете публично, используйте голос, на который у вас есть права: десять стандартных голосов модели, от M1 до M5 и от F1 до F5, или собственный голос, обученный в студии SuperClonica по записи диктора, давшего согласие. Голоса персонажей из каталога сделаны фанатами и подходят для личных поделок.