/ Модель

Характеристики

Контекст
131 072 токена
Параметры
3,2 млрд
Размер весов
7,2 ГБ
Лицензия
Apache 2.0
Архитектура
llama · dense
Опубликована
21 апр 2025

Muyan-TTS

Генерация текстаТекст → текст3 профессии

Muyan-TTS — модель семейства Llama для синтеза речи с нуля и адаптации озвучки под голос диктора.

21скачиваний за 30 дней49лайковвеса обновлены19 мая 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Muyan-TTS — модель синтеза речи, разработанная MYZY-AI для создания озвучки, в том числе подкастов. Это плотная причинная языковая модель семейства Llama с 3,2 млрд параметров; репозиторий содержит веса safetensors. Модель предварительно обучена на более чем 100 000 часов подкастовой аудиозаписи и поддерживает генерацию речи с нуля по короткому голосовому образцу и его расшифровке, а также адаптацию под голос диктора после подготовки обучающих данных.

Для работы при синтезе задают аудиообразец, соответствующий ему текст и текст для озвучивания. README также описывает дообучение на собственных данных: для адаптации голоса требуется не менее нескольких десятков минут речи целевого диктора. Метаданные указывают контекст 131 072 токена, лицензию Apache-2.0 и задачу text-to-speech; модель также помечена как поддерживающая text-generation. Заявлены сценарии озвучивания подкастов и настройки индивидуального голоса, однако языки, качество на разных типах текста и практические требования к оборудованию в доступных данных не описаны.

Сценарии применения

  • создание озвучки для подкастов
  • синтез речи по тексту с голосовым образцом
  • адаптация озвучки под голос конкретного диктора
  • подготовка персонализированного голоса на собственных аудиозаписях

Ограничения

Для адаптации под целевого диктора README рекомендует подготовить не менее нескольких десятков минут его речи. Поддерживаемые языки и требования к оборудованию в доступных данных не описаны.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Muyan-TTS is a trainable TTS model designed for podcast applications within a $50,000 budget, which is pre-trained on over 100,000 hours of podcast audio data, enabling zero-shot TTS synthesis with high-quality voice generation. Furthermore, Muyan-TTS supports speaker adaptation with dozens of minutes of target speech, making it highly customizable for individual voices.

Install

Clone & Install

git clone https://github.com/MYZY-AI/Muyan-TTS.git
cd Muyan-TTS

conda create -n muyan-tts python=3.10 -y
conda activate muyan-tts
make build

You need to install FFmpeg. If you're using Ubuntu, you can install it with the following command:

sudo apt update
sudo apt install ffmpeg

Additionally, you need to download the weights of chinese-hubert-base.

Place all the downloaded models in the pretrained_models directory. Your directory structure should look similar to the following:

pretrained_models
├── chinese-hubert-base
├── Muyan-TTS
└── Muyan-TTS-SFT

Quickstart

python tts.py

This will synthesize speech through inference. The core code is as follows:

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}")

You need to specify the prompt speech, including the ref_wav_path and its prompt_text, and the text to be synthesized. The synthesized speech is saved by default to logs/tts.wav.

Additionally, you need to specify model_type as either base or sft, with the default being base.

When you specify the model_type to be base, you can change the prompt speech to arbitrary speaker for zero-shot TTS synthesis.

When you specify the model_type to be sft, you need to keep the prompt speech unchanged because the sft model is trained on Claire's voice.

API Usage

python api.py

Using the API mode automatically enables vLLM acceleration, and the above command will start a service on the default port 8020. Additionally, LLM logs will be saved in logs/llm.log.

You can send a request to the API using the example below:

import time
import requests
TTS_PORT=8020
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."
}
start = time.time()

url = f"http://localhost:{TTS_PORT}/get_tts"
response = requests.post(url, json=payload)
audio_file_path = "logs/tts.wav"
with open(audio_file_path, "wb") as f:
    f.write(response.content)
    
print(time.time() - start)

By default, the synthesized speech will be saved at logs/tts.wav.

Similarly, you need to specify model_type as either base or sft, with the default being base.

Training

We use LibriSpeech as an example. You can use your own dataset instead, but you need to organize the data into the format shown in data_process/examples.

If you haven't downloaded LibriSpeech yet, you can download the dev-clean set using:

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

After uncompressing the data, specify the librispeech_dir in prepare_sft_dataset.py to match the download location. Then run:

./train.sh

This will automatically process the data and generate data/tts_sft_data.json.

Note that we use a specific speaker ID of "3752" from dev-clean of LibriSpeech (which can be specified in data_process/text_format_conversion.py) as an example because its data size is relatively large. If you organize your own dataset for training, please prepare at least a dozen of minutes of speech from the target speaker.

If an error occurs during the process, resolve the error, delete the existing contents of the data folder, and then rerun train.sh.

After generating data/tts_sft_data.json, train.sh will automatically copy it to llama-factory/data and add the following field to dataset_info.json:

"tts_sft_data": {
    "file_name": "tts_sft_data.json"
}

Finally, it will automatically execute the llamafactory-cli train command to start training. You can adjust training settings using training/sft.yaml.

By default, the trained weights will be saved to pretrained_models/Muyan-TTS-new-SFT.

After training, you need to copy the sovits.pth of base/sft model to your trained model path before inference:

cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT

You can directly deploy your trained model using the API tool above. During inference, you need to specify the model_type to be sft and replace the ref_wav_path and prompt_text with a sample of the speaker's voice you trained on.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
64cd5c9

0 моделей