Привет. Недавно я просматривал модели на Hugging Face, и наткнулся на весьма примечательную модель "Suno/bark" для синтеза речи из текста.
Предисловие.
В настоящее время синтез речи находит широкое применение в различных областях, включая создание виртуальных помощников, аудиокниг, аудиоинтерфейсов и других технологических продуктов. В этой статье рассматривается реализация синтезатора речи с использованием модели Bark, представляющей собой передовую модель глубокого обучения, и фреймворка PyQt5 для создания графического интерфейса.
Bark.
Bark это модель глубокого обучения, для синтеза речи из текста. Сама модель хоть и не сильно подходит для полной замены речи человека, поскольку в генерируемом аудиофайле присутствуют помехи и эхо, поэтому нуждается в обработке.
Модель имеет открытый доступ и поставляется в модуле transformers, и что самое главное, она мультиязычная, поддерживаемые языки (русский, английский, испанский, французский и др.)
Интеграция в графический интерфейс.
Я не большой фанат постоянно переписывать код для каждой задачи отдельно, и предпочитаю делать сразу графическую оболочку, в чем и помогает библиотека PyQt. Я немного изменил сам код, предоставляемый командой Suno, и на основе Bark сделал графическое приложение.
Также дополнил фрагментом автоматического выбора GPU/CPU, в дополнение вынес саму генерацию в отдельный поток, дабы избежать блокировки интерфейса.
Сам код я как обычно выложил в Github: https://github.com/MarshalV/audio_gen.git
Как начать.
- Сам интерфейс имеет минималистичное окно с кнопкой генерации, с боксом выбора языковой модели , текстовым окном, окном выбора аудиофайла и примитивным аудиоплеером.