Muyan-TTS: персонализированное обучение и синтез речи в подкастах

Общее введение

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

Muyan-TTS:个性化播客语音训练与合成

 

Список функций

  • Синтез речи с нулевой выборкой: Генерируйте высококачественную речь в стиле подкаста без дополнительного обучения, адаптируясь к широкому диапазону тональных сигналов.
  • Индивидуальная настройка голоса: Генерирование голоса конкретного диктора путем точной настройки нескольких минут голосовых данных одного человека.
  • Эффективная скорость рассуждений: Приблизительно 0,33 секунды генерации звука в секунду на одном графическом процессоре NVIDIA A100, что превосходит множество моделей TTS с открытым исходным кодом.
  • Учебный код с открытым исходным кодом: Обеспечивает полный процесс обучения от базовой модели до модели тонкой настройки с поддержкой настройки разработчиком.
  • Конвейер обработки данных: Интеграция с Whisper, FunASR и NISQA для очистки и расшифровки аудиоданных подкастов.
  • Поддержка развертывания API: Предоставляет API-инструменты для простой интеграции в подкасты или другие голосовые приложения.
  • Вес модели открыт: Веса моделей Muyan-TTS и Muyan-TTS-SFT можно загрузить с сайтов Hugging Face и ModelScope.

 

Использование помощи

Процесс установки

Установка Muyan-TTS должна быть выполнена в среде Linux, рекомендуется Ubuntu. Ниже приведены подробные шаги:

  1. склад клонов
    Откройте терминал и выполните следующую команду, чтобы клонировать репозиторий Muyan-TTS:

    git clone https://github.com/MYZY-AI/Muyan-TTS.git
    cd Muyan-TTS
  1. Создание виртуальной среды
    Создание виртуальной среды для Python 3.10 с помощью Conda:

    conda create -n muyan-tts python=3.10 -y
    conda activate muyan-tts
    
  2. Установка зависимостей
    Выполните следующую команду для установки зависимостей проекта:

    make build
    

    Примечание: FFmpeg должен быть установлен. работает на Ubuntu:

    sudo apt update
    sudo apt install ffmpeg
    
  3. Загрузите предварительно обученную модель
    Загрузите модель весов по ссылке ниже:

    pretrained_models
    ├── chinese-hubert-base
    ├── Muyan-TTS
    └── Muyan-TTS-SFT
    
  4. Проверка установки
    Убедившись, что все зависимости и файлы модели установлены правильно, можно приступать к выводу или обучению.

Использование базовой модели (синтез речи с нулевой выборкой)

Базовая модель Muyan-TTS поддерживает синтез речи с нулевой выборкой, что подходит для быстрого создания речи в стиле подкаста. Этапы синтеза следующие:

  1. Подготовьте входной текст и справочный аудиоматериал
    Подготовьте текст (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."
    
  2. Выполните команду рассуждения
    Используйте следующую команду для создания речи, указав 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.

  3. Замена эталонного аудио
    В режиме нулевой выборкиref_wav_path Его можно заменить на голос любого диктора, и модель будет подражать его тембру, генерируя новый голос.

Использование модели SFT (персонализированная настройка голоса)

Модель SFT настраивается с помощью речевых данных одного человека, подходящих для генерации определенных тембров. Процедура выглядит следующим образом:

  1. Подготовка данных для обучения
    Соберите хотя бы несколько минут данных о речи одного человека и сохраните их в формате WAV. В качестве примера используйте набор данных dev-clean от LibriSpeech, доступный для скачивания:

    wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
    

    После распаковки prepare_sft_dataset.py указанный в librispeech_dir путь распаковки.

  2. Создание обучающих данных
    Выполните следующую команду, чтобы обработать данные и создать data/tts_sft_data.json::

    ./train.sh
    

    Формат данных следующий:

    {
    "file_name": "path/to/audio.wav",
    "text": "对应的文本内容"
    }
    
  3. Настройка конфигурации обучения
    компилятор training/sft.yamlУстановите параметры, такие как скорость обучения, размер партии и т.д.
  4. Начните обучение
    train.sh Для начала обучения автоматически выполняется следующая команда:

    llamafactory-cli train training/sft.yaml
    

    После завершения обучения весовые коэффициенты модели сохраняются в файле pretrained_models/Muyan-TTS-new-SFT.

  5. Копирование весов SoVITS
    В базовой модели sovits.pth Скопируйте в новый каталог модели:

    cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
    
  6. рассуждения о беге
    Чтобы генерировать речь с помощью модели SFT, вам нужно сохранить ref_wav_path Соответствует динамику, используемому в обучении:

    python tts.py --model_type sft
    

Развертывание через API

Muyan-TTS поддерживает развертывание API для легкой интеграции в приложения. Для этого необходимо выполнить следующие шаги:

  1. Запуск службы API
    Выполните следующую команду, чтобы запустить службу. По умолчанию используется порт 8020:

    python api.py --model_type base
    

    Журналы обслуживания хранятся в logs/llm.log.

  2. Отправить запрос
    Используйте следующий код 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 миллиона долларов).

 

сценарий применения

  1. Создание контента для подкастов
    Muyan-TTS быстро преобразует сценарии подкастов в естественную речь, позволяя независимым создателям генерировать высококачественное аудио. Пользователи могут генерировать речь в стиле подкастов, просто вводя текст и опорную речь, что сокращает расходы на запись.
  2. Производство аудиокниг
    С помощью модели SFT авторы могут настраивать голоса конкретных персонажей для создания глав аудиокниги. Модель поддерживает генерацию длинных аудиозаписей, что подходит для длинного контента.
  3. Разработка голосового помощника
    Разработчики могут интегрировать Muyan-TTS в голосовые помощники через API, чтобы обеспечить естественный и персонализированный опыт голосового взаимодействия.
  4. Создание образовательного контента
    Школы и учебные заведения могут преобразовывать учебные материалы в речь, чтобы создавать аудиозаписи для упражнений на аудирование или объяснения курса, подходящие для изучения языка или для людей с ослабленным зрением.

 

QA

  1. Какие языки поддерживает Muyan-TTS?
    В настоящее время поддерживается только английский язык, поскольку в обучающих данных преобладают аудиозаписи подкастов на английском языке. В будущем можно будет поддерживать и другие языки, расширив набор данных.
  2. Как улучшить качество речи моделей SFT?
    Используйте высококачественные, четкие данные речи одного человека, чтобы избежать фонового шума. Убедитесь, что данные для обучения соответствуют стилю речи на целевой сцене.
  3. А как насчет медленного мышления?
    Обеспечьте использование поддержки vLLM ускоренная среда GPU. По адресу nvidia-smi Проверьте использование памяти, чтобы убедиться, что модель правильно загружена в GPU.
  4. Поддерживает ли она коммерческое использование?
    Muyan-TTS выпускается под лицензией Apache 2.0 и поддерживается для коммерческого использования в соответствии с условиями лицензии.
  5. Как получить техническую поддержку?
    Проблемы можно присылать через GitHub (Вопросы) или присоединиться к сообществу Discord (Дискорд) Получите поддержку.
© заявление об авторских правах

Похожие статьи

AIMedia:全自动托管AI媒体软件,自动抓取热点,自动生成新闻,自动发布各大平台。

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...