РУКОВОДСТВО

Своё веб-приложение озвучки текста на Gradio

Небольшая страница, где вписываешь текст и слышишь его естественным голосом, — классический первый ИИ-проект, удобный внутренний инструмент и хорошее демо для продукта. Gradio превращает функцию на Python в такую страницу за несколько строк, а бесплатный движок SuperClonica даёт голос на обычном процессоре.

В этом руководстве — минимальное приложение, как добавить голоса и настройки и как бесплатно его разместить; наше собственное демо на Hugging Face Spaces устроено именно так.

Что получится

Всё работает внутри вашего процесса Python: тексты не отправляются ни в какой сервис синтеза речи.

  • Поле для текста, выбор голоса и плеер с кнопкой скачивания.
  • Десять стандартных голосов и любой голос каталога, который у вас есть.
  • Работает на ноутбуке, сервере или бесплатном облачном CPU.
  • Без видеокарты и платного API.

Сначала послушайте голоса

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

Минимальное приложение

Выход Audio в Gradio принимает пару из частоты дискретизации и массива звука, поэтому возвращайте (rate, audio) именно в таком порядке.

  • Установите оба пакета: python -m pip install superclonica-cpu gradio.
  • Напишите приложение: import gradio as gr; from superclonica import Superclonica; tts = Superclonica(); def speak(text, voice): audio, rate = tts.synthesize(text, voice=voice, lang="ru"); return (rate, audio) — затем gr.Interface(fn=speak, inputs=[gr.Textbox(label="Text"), gr.Dropdown(["F1", "F2", "M1", "M2"], label="Voice")], outputs=gr.Audio()).launch().
  • Запустите файл через Python и откройте локальный адрес, который выведет Gradio.
  • При первом запуске скачивается модель Supertonic 3, около 385 МБ; следующие запуски занимают секунды.

Голоса, скорость и много пользователей

Добавляйте голоса каталога, передавая путь к файлу голоса вместо F1 или F2, и предложите выпадающий список языков с кодами 31 поддерживаемого языка. Скорость меняется на движке, например tts.speed = 1.1, от 0.7 до 2.0. Создайте движок один раз в начале файла, а когда приложением пользуются несколько человек одновременно, оберните вызов в threading lock, чтобы запросы шли по очереди.

Бесплатный хостинг

Hugging Face Spaces запускает приложения Gradio на бесплатном CPU: положите файл в Space как app.py вместе с requirements.txt, где указан superclonica-cpu, и Space его соберёт. Наше собственное демо SuperClonica так и работает на двух общих ядрах CPU. Ограничьте длину текста в публичном приложении и предлагайте только голоса, которыми вам разрешено делиться: стандартные голоса бесплатны по лицензии модели, а купленные голоса каталога — для ваших собственных проектов.