Muyan-TTS: персонализированное обучение и синтез речи в подкастах
Общее введение
Muyan-TTS - это модель преобразования текста в речь (TTS) с открытым исходным кодом, разработанная для сценариев подкастинга. Она предварительно обучена на более чем 100 000 часах аудиоданных подкастов и поддерживает синтез речи с нулевой выборкой для генерации высококачественной естественной речи. Модель построена на основе Llama-3.2-3B и сочетает в себе SoVITS Muyan-TTS также поддерживает персонализацию речи на основе десятков минут речевых данных одного человека, адаптированных к потребностям конкретных тембров. Проект выпущен под лицензией Apache 2.0, полный обучающий код, поток обработки данных и весовые коэффициенты модели размещены на GitHub, Hugging Face и ModelScope, а разработчики поощряются к развитию и участию в сообществе.

Список функций
- Синтез речи с нулевой выборкой: Генерируйте высококачественную речь в стиле подкаста без дополнительного обучения, адаптируясь к широкому диапазону тональных сигналов.
- Индивидуальная настройка голоса: Генерирование голоса конкретного диктора путем точной настройки нескольких минут голосовых данных одного человека.
- Эффективная скорость рассуждений: Приблизительно 0,33 секунды генерации звука в секунду на одном графическом процессоре NVIDIA A100, что превосходит множество моделей TTS с открытым исходным кодом.
- Учебный код с открытым исходным кодом: Обеспечивает полный процесс обучения от базовой модели до модели тонкой настройки с поддержкой настройки разработчиком.
- Конвейер обработки данных: Интеграция с Whisper, FunASR и NISQA для очистки и расшифровки аудиоданных подкастов.
- Поддержка развертывания API: Предоставляет API-инструменты для простой интеграции в подкасты или другие голосовые приложения.
- Вес модели открыт: Веса моделей Muyan-TTS и Muyan-TTS-SFT можно загрузить с сайтов Hugging Face и ModelScope.
Использование помощи
Процесс установки
Установка Muyan-TTS должна быть выполнена в среде Linux, рекомендуется Ubuntu. Ниже приведены подробные шаги:
- склад клонов
Откройте терминал и выполните следующую команду, чтобы клонировать репозиторий Muyan-TTS:git clone https://github.com/MYZY-AI/Muyan-TTS.git cd Muyan-TTS
- Создание виртуальной среды
Создание виртуальной среды для Python 3.10 с помощью Conda:conda create -n muyan-tts python=3.10 -y conda activate muyan-tts
- Установка зависимостей
Выполните следующую команду для установки зависимостей проекта:make build
Примечание: FFmpeg должен быть установлен. работает на Ubuntu:
sudo apt update sudo apt install ffmpeg
- Загрузите предварительно обученную модель
Загрузите модель весов по ссылке ниже:- Муян-ТТС. Обнимающееся лицо, ModelScope
- Муян-ТТС-СФТ. Обнимающееся лицо, ModelScope
- Китайская база хьюбертов. Обнимающееся лицо
Поместите загруженный файл модели вpretrained_models
каталог, который имеет следующую структуру:
pretrained_models ├── chinese-hubert-base ├── Muyan-TTS └── Muyan-TTS-SFT
- Проверка установки
Убедившись, что все зависимости и файлы модели установлены правильно, можно приступать к выводу или обучению.
Использование базовой модели (синтез речи с нулевой выборкой)
Базовая модель Muyan-TTS поддерживает синтез речи с нулевой выборкой, что подходит для быстрого создания речи в стиле подкаста. Этапы синтеза следующие:
- Подготовьте входной текст и справочный аудиоматериал
Подготовьте текст (text
) и эталонная речь (ref_wav_path
). Пример:ref_wav_path="assets/Claire.wav" prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige." text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
- Выполните команду рассуждения
Используйте следующую команду для создания речи, указавmodel_type
из-заbase
::python tts.py
Или просто запустите основной код вывода:
async def main(model_type, model_path): tts = Inference(model_type, model_path, enable_vllm_acc=False) wavs = await tts.generate( ref_wav_path="assets/Claire.wav", prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together." ) output_path = "logs/tts.wav" with open(output_path, "wb") as f: f.write(next(wavs)) print(f"Speech generated in {output_path}")
Созданная речь сохраняется в
logs/tts.wav
. - Замена эталонного аудио
В режиме нулевой выборкиref_wav_path
Его можно заменить на голос любого диктора, и модель будет подражать его тембру, генерируя новый голос.
Использование модели SFT (персонализированная настройка голоса)
Модель SFT настраивается с помощью речевых данных одного человека, подходящих для генерации определенных тембров. Процедура выглядит следующим образом:
- Подготовка данных для обучения
Соберите хотя бы несколько минут данных о речи одного человека и сохраните их в формате WAV. В качестве примера используйте набор данных dev-clean от LibriSpeech, доступный для скачивания:wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
После распаковки
prepare_sft_dataset.py
указанный вlibrispeech_dir
путь распаковки. - Создание обучающих данных
Выполните следующую команду, чтобы обработать данные и создатьdata/tts_sft_data.json
::./train.sh
Формат данных следующий:
{ "file_name": "path/to/audio.wav", "text": "对应的文本内容" }
- Настройка конфигурации обучения
компиляторtraining/sft.yaml
Установите параметры, такие как скорость обучения, размер партии и т.д. - Начните обучение
train.sh
Для начала обучения автоматически выполняется следующая команда:llamafactory-cli train training/sft.yaml
После завершения обучения весовые коэффициенты модели сохраняются в файле
pretrained_models/Muyan-TTS-new-SFT
. - Копирование весов SoVITS
В базовой моделиsovits.pth
Скопируйте в новый каталог модели:cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
- рассуждения о беге
Чтобы генерировать речь с помощью модели SFT, вам нужно сохранитьref_wav_path
Соответствует динамику, используемому в обучении:python tts.py --model_type sft
Развертывание через API
Muyan-TTS поддерживает развертывание API для легкой интеграции в приложения. Для этого необходимо выполнить следующие шаги:
- Запуск службы API
Выполните следующую команду, чтобы запустить службу. По умолчанию используется порт 8020:python api.py --model_type base
Журналы обслуживания хранятся в
logs/llm.log
. - Отправить запрос
Используйте следующий код Python для отправки запроса:import requests payload = { "ref_wav_path": "assets/Claire.wav", "prompt_text": "Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", "text": "Welcome to the captivating world of podcasts, let's embark on this exciting journey together.", "temperature": 0.6, "speed": 1.0, } url = "http://localhost:8020/get_tts" response = requests.post(url, json=payload) with open("logs/tts.wav", "wb") as f: f.write(response.content)
предостережение
- требования к оборудованию: NVIDIA A100 (40 Гб) или эквивалентный графический процессор рекомендуется для проведения расчетов.
- языковое ограничение: Поскольку учебные данные в основном на английском языке, в настоящее время поддерживается только английский ввод.
- Качество данных: Качество речи модели SFT зависит от чистоты и последовательности обучающих данных.
- Расходы на обучение: Общая стоимость предварительной подготовки составила около 50 000 долларов, включая обработку данных (30 000 долларов), предварительную подготовку LLM (19 200 долларов) и подготовку декодера (0,134 миллиона долларов).
сценарий применения
- Создание контента для подкастов
Muyan-TTS быстро преобразует сценарии подкастов в естественную речь, позволяя независимым создателям генерировать высококачественное аудио. Пользователи могут генерировать речь в стиле подкастов, просто вводя текст и опорную речь, что сокращает расходы на запись. - Производство аудиокниг
С помощью модели SFT авторы могут настраивать голоса конкретных персонажей для создания глав аудиокниги. Модель поддерживает генерацию длинных аудиозаписей, что подходит для длинного контента. - Разработка голосового помощника
Разработчики могут интегрировать Muyan-TTS в голосовые помощники через API, чтобы обеспечить естественный и персонализированный опыт голосового взаимодействия. - Создание образовательного контента
Школы и учебные заведения могут преобразовывать учебные материалы в речь, чтобы создавать аудиозаписи для упражнений на аудирование или объяснения курса, подходящие для изучения языка или для людей с ослабленным зрением.
QA
- Какие языки поддерживает Muyan-TTS?
В настоящее время поддерживается только английский язык, поскольку в обучающих данных преобладают аудиозаписи подкастов на английском языке. В будущем можно будет поддерживать и другие языки, расширив набор данных. - Как улучшить качество речи моделей SFT?
Используйте высококачественные, четкие данные речи одного человека, чтобы избежать фонового шума. Убедитесь, что данные для обучения соответствуют стилю речи на целевой сцене. - А как насчет медленного мышления?
Обеспечьте использование поддержки vLLM ускоренная среда GPU. По адресуnvidia-smi
Проверьте использование памяти, чтобы убедиться, что модель правильно загружена в GPU. - Поддерживает ли она коммерческое использование?
Muyan-TTS выпускается под лицензией Apache 2.0 и поддерживается для коммерческого использования в соответствии с условиями лицензии. - Как получить техническую поддержку?
Проблемы можно присылать через GitHub (Вопросы) или присоединиться к сообществу Discord (Дискорд) Получите поддержку.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...