logo
0
0
WeChat Login
Gloridust<88082356+Gloridust@users.noreply.github.com>
doc: add language FR (#533)

ChatTTS

NOTE

Следующая информация может быть не самой последней, пожалуйста, смотрите английскую версию для актуальных данных.

Huggingface

English | 简体中文 | 日本語 | Русский | Español | Français

ChatTTS - это модель преобразования текста в речь, специально разработанная для диалоговых сценариев, таких как помощник LLM. Она поддерживает как английский, так и китайский языки. Наша модель обучена на более чем 100 000 часах английского и китайского языков. Открытая версия на HuggingFace - это предварительно обученная модель с 40 000 часами без SFT.

Для официальных запросов о модели и плане развития, пожалуйста, свяжитесь с нами по адресу open-source@2noise.com. Вы можете присоединиться к нашей группе QQ: 808364215 для обсуждения. Добавление вопросов на GitHub также приветствуется.


Особенности

  1. Диалоговый TTS: ChatTTS оптимизирован для задач, основанных на диалогах, что позволяет создавать натуральную и выразительную речь. Он поддерживает несколько говорящих, облегчая интерактивные беседы.
  2. Тонкий контроль: Модель может предсказывать и контролировать тонкие просодические особенности, включая смех, паузы и вставные слова.
  3. Лучшая просодия: ChatTTS превосходит большинство открытых моделей TTS с точки зрения просодии. Мы предоставляем предварительно обученные модели для поддержки дальнейших исследований и разработок.

Для подробного описания модели вы можете обратиться к видео на Bilibili


Отказ от ответственности

Этот репозиторий предназначен только для академических целей. Он предназначен для образовательного и исследовательского использования и не должен использоваться в коммерческих или юридических целях. Авторы не гарантируют точность, полноту или надежность информации. Информация и данные, использованные в этом репозитории, предназначены только для академических и исследовательских целей. Данные получены из общедоступных источников, и авторы не заявляют о каких-либо правах собственности или авторских правах на данные.

ChatTTS - мощная система преобразования текста в речь. Однако очень важно использовать эту технологию ответственно и этично. Чтобы ограничить использование ChatTTS, мы добавили небольшое количество высокочастотного шума во время обучения модели на 40 000 часов и сжали качество аудио как можно больше с помощью формата MP3, чтобы предотвратить возможное использование злоумышленниками в преступных целях. В то же время мы внутренне обучили модель обнаружения и планируем открыть ее в будущем.


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

Базовое использование

import ChatTTS from IPython.display import Audio import torch chat = ChatTTS.Chat() chat.load(compile=False) # Установите значение True для лучшей производительности texts = ["ВВЕДИТЕ ВАШ ТЕКСТ ЗДЕСЬ",] wavs = chat.infer(texts) torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)

Продвинутое использование

################################### # Выборка говорящего из Гауссиана. rand_spk = chat.sample_random_speaker() print(rand_spk) # save it for later timbre recovery params_infer_code = { 'spk_emb': rand_spk, # добавить выбранного говорящего 'temperature': .3, # использовать пользовательскую температуру 'top_P': 0.7, # декодирование top P 'top_K': 20, # декодирование top K } ################################### # Для контроля на уровне предложений. # используйте oral_(0-9), laugh_(0-2), break_(0-7) # для генерации специального токена в тексте для синтеза. params_refine_text = { 'prompt': '[oral_2][laugh_0][break_6]' } wav = chat.infer(texts, params_refine_text=params_refine_text, params_infer_code=params_infer_code) ################################### # Для контроля на уровне слов. text = 'Какая ваша любимая английская еда?[uv_break]your favorite english food?[laugh][lbreak]' wav = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code) torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)

Пример: самопрезентация

inputs_ru = """ ChatTTS - это модель преобразования текста в речь, разработанная для диалоговых приложений. [uv_break]Она поддерживает смешанный языковой ввод [uv_break]и предлагает возможности множественных говорящих с точным контролем над просодическими элементами [laugh]как [uv_break]смех[laugh], [uv_break]паузы, [uv_break]и интонацию. [uv_break]Она обеспечивает натуральную и выразительную речь,[uv_break]поэтому, пожалуйста, [uv_break] используйте проект ответственно и на свой страх и риск.[uv_break] """.replace('\n', '') # Русский язык все еще находится в экспериментальной стадии. params_refine_text = { 'prompt': '[oral_2][laugh_0][break_4]' } audio_array_ru = chat.infer(inputs_ru, params_refine_text=params_refine_text) torchaudio.save("output3.wav", torch.from_numpy(audio_array_ru[0]), 24000)

мужской говорящий

женский говорящий


План развития

  • Открыть исходный код базовой модели на 40 тысяч часов и файла spk_stats
  • Открыть исходный код кодировщика VQ и кода обучения Lora
  • Потоковая генерация аудио без уточнения текста*
  • Открыть исходный код версии на 40 тысяч часов с управлением множественными эмоциями
  • ChatTTS.cpp возможно? (PR или новый репозиторий приветствуются.)

Часто задаваемые вопросы

Сколько VRAM мне нужно? Как насчет скорости инференса?

Для 30-секундного аудиоклипа требуется как минимум 4 ГБ памяти GPU. Для GPU 4090, он может генерировать аудио, соответствующее примерно 7 семантическим токенам в секунду. Фактор реального времени (RTF) составляет около 0.3.

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

Это проблема, которая обычно возникает с авторегрессивными моделями (для bark и valle). Это обычно трудно избежать. Можно попробовать несколько образцов, чтобы найти подходящий результат.

Помимо смеха, можем ли мы контролировать что-то еще? Можем ли мы контролировать другие эмоции?

В текущей выпущенной модели единственными элементами управления на уровне токенов являются [laugh], [uv_break] и [lbreak]. В будущих версиях мы можем открыть модели с дополнительными возможностями контроля эмоций.


Благодарности

  • bark, XTTSv2 и valle демонстрируют замечательный результат TTS с помощью системы авторегрессивного стиля.
  • fish-speech показывает возможности GVQ как аудио токенизатора для моделирования LLM.
  • vocos, который используется в качестве предварительно обученного вокодера.

Особая благодарность

  • wlu-audio lab за ранние эксперименты с алгоритмами.