Генеративная речевая модель для повседневного общения.
Английский |简体中文|日本語| Русский | испанский | Французский | 한국어
Примечание
Этот репозиторий содержит инфраструктуру алгоритма и несколько простых примеров.
Кончик
Информацию о расширенных продуктах для конечных пользователей можно найти в индексном репозитории Awesome-ChatTTS, поддерживаемом сообществом.
ChatTTS — это модель преобразования текста в речь, разработанная специально для сценариев диалога, таких как LLM Assistant.
Английский
китайский
Вскоре...
Подробное описание вы можете посмотреть в этом видео на Bilibili .
Разговорный TTS : ChatTTS оптимизирован для диалоговых задач, обеспечивая естественный и выразительный синтез речи. Он поддерживает несколько динамиков, облегчая интерактивное общение.
Детальный контроль : модель может прогнозировать и контролировать детальные просодические характеристики, включая смех, паузы и междометия.
Улучшенная просодия : ChatTTS превосходит большинство моделей TTS с открытым исходным кодом с точки зрения просодии. Мы предоставляем предварительно обученные модели для поддержки дальнейших исследований и разработок.
Важный
Выпущенная модель предназначена только для академических целей.
Основная модель обучена с использованием аудиоданных на китайском и английском языках продолжительностью более 100 000 часов.
Версия HuggingFace с открытым исходным кодом представляет собой предварительно обученную модель в течение 40 000 часов без SFT.
Откройте исходный код базовой модели на 40 тысяч часов и файла spk_stats.
Генерация потокового аудио.
Кодер DVAE с открытым исходным кодом и код вывода нулевого кадра.
Управление несколькими эмоциями.
ChatTTS.cpp (приветствуется новый репозиторий в 2noise
org)
Код опубликован под лицензией AGPLv3+
.
Модель публикуется под лицензией CC BY-NC 4.0
. Он предназначен для образовательных и исследовательских целей и не должен использоваться в коммерческих или незаконных целях. Авторы не гарантируют точность, полноту и достоверность информации. Информация и данные, используемые в этом репозитории, предназначены только для академических и исследовательских целей. Данные получены из общедоступных источников, авторы не претендуют на какие-либо права собственности или авторские права на данные.
ChatTTS — мощная система преобразования текста в речь. Однако очень важно использовать эту технологию ответственно и этично. Чтобы ограничить использование ChatTTS, мы добавили небольшое количество высокочастотного шума во время обучения 40 000-часовой модели и максимально сжали качество звука с помощью формата MP3, чтобы предотвратить потенциальное использование злоумышленниками в преступных целях. целей. В то же время мы провели внутреннюю подготовку модели обнаружения и планируем в будущем открыть ее исходный код.
Вопросы/пиар по GitHub всегда приветствуются.
Для официальных запросов о модели и планах, пожалуйста, свяжитесь с нами по адресу [email protected] .
Группа 1 , 808364215
Группа 2 , 230696694
Группа 3 , 933639842
Группа 4 , 608667975
Присоединяйтесь, нажав здесь.
git клон https://github.com/2noise/ChatTTScd ChatTTS
pip install --upgrade -r требования.txt
conda create -n чатттс python=3.11 Конда активирует чаты pip install -r требования.txt
pip install Safetensors vllm==0.2.7 torchaudio
Предупреждение
НЕ УСТАНАВЛИВАТЬ! Адаптация TransformerEngine в настоящее время находится в стадии разработки и сейчас НЕ МОЖЕТ работать должным образом. Устанавливайте его только в развивающих целях. Более подробную информацию см. на #672 #676.
Примечание
Процесс установки очень медленный.
pip install git+https://github.com/NVIDIA/TransformerEngine.git@stable
Предупреждение
НЕ УСТАНАВЛИВАТЬ! В настоящее время FlashAttention-2 замедляет скорость генерации в соответствии с этой проблемой. Устанавливайте его только в развивающих целях.
Примечание
См. поддерживаемые устройства в документе Hugging Face.
pip install flash-attn --no-build-isolation
Убедитесь, что вы находитесь в корневом каталоге проекта, когда выполняете эти команды ниже.
примеры Python/web/webui.py
Звук будет сохранен в
./output_audio_n.mp3
python example/cmd/run.py «Ваш текст 1». «Ваше сообщение 2».
Установите стабильную версию из PyPI.
pip установить ChatTTS
Установите последнюю версию с GitHub.
pip установить git+https://github.com/2noise/ChatTTS
Установить из локального каталога в режиме разработки
пип установить -e .
import ChatTTSimport torchimport torchaudiochat = ChatTTS.Chat()chat.load(compile=False) # Установите значение True для лучшей производительностиtexts = ["ПОЛОЖИТЕ СВОЙ 1-й ТЕКСТ ЗДЕСЬ", "ПОЛОЖИТЕ ВАШ 2-й ТЕКСТ ЗДЕСЬ"]wavs =chat.infer(texts) )for i in range(len(wavs)):""" В некоторых версиях torchaudio первая строка работает, но в других версиях, как и вторая строка, попробуйте:torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]).unsqueeze(0), 24000), кроме: torchaudio.save(f"basic_output{i}.wav", torch.from_numpy(wavs[i]), 24000)
################################### Пример выступления докладчика из Gaussian.rand_spk =chat.sample_random_speaker()print (rand_spk) # сохраните его для последующего восстановления тембраparams_infer_code = ChatTTS.Chat.InferCodeParams(spk_emb = rand_spk, # добавить выборку температуры динамика = .3, # используя пользовательскую температуруtop_P = 0,7, # top P decodetop_K = 20, # top K decode)####################### ############# Для ручного управления на уровне предложения.# используйте устный_(0-9), смех_(0-2), перерыв_(0-7) # для генерации специального токена в тексте для синтез.params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_6]', )wavs =chat.infer(texts,params_refine_text=params_refine_text,params_infer_code=params_infer_code, )################################### Для ручного управления на уровне слов.text = 'Что такое [uv_break ]ваша любимая английская еда?[смех][lbreak]'wavs =chat.infer(text,skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code)"""В некоторых версиях torchaudio первая строка работает, но в других версиях работает и вторая строка."""try:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0) ]).разжать(0), 24000)кроме:torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]), 24000)
inputs_en = """chat T T S — это модель преобразования текста в речь, разработанная для диалоговых приложений. [uv_break]она поддерживает смешанный языковой ввод [uv_break]и предлагает возможности работы с несколькими динамиками с точным контролем над просодическими элементами, такими как [uv_break]смех[uv_break][смех ], [uv_break]паузы, [uv_break]и интонация [uv_break]он обеспечивает естественную и выразительную речь,[uv_break]поэтому, пожалуйста,[uv_break] используйте этот проект. ответственно и на свой страх и риск.[uv_break]""".replace('n', '') # Английский все еще находится в стадии эксперимента.params_refine_text = ChatTTS.Chat.RefineTextParams(prompt='[oral_2][laugh_0][break_4]', )audio_array_en =chat.infer(inputs_en, params_refine_text=params_refine_text)torchaudio.save("self_introduction_output.wav", torch.from_numpy(audio_array_en[0]), 24000)
оратор-мужчина | женщина-спикер |
intro_en_m.webm | intro_en_f.webm |
Для 30-секундного аудиоклипа требуется не менее 4 ГБ памяти графического процессора. Для графического процессора 4090 он может генерировать звук, соответствующий примерно 7 семантическим токенам в секунду. Фактор реального времени (RTF) составляет около 0,3.
Это проблема, которая обычно возникает в авторегрессионных моделях (для коры и долины). Обычно этого трудно избежать. Можно попробовать несколько образцов, чтобы найти подходящий результат.
В текущей выпущенной модели единственными блоками управления уровня токена являются [laugh]
, [uv_break]
и [lbreak]
. В будущих версиях мы можем открыть модели с открытым исходным кодом с дополнительными возможностями контроля эмоций.
bark, XTTSv2 и valle демонстрируют замечательный результат TTS с помощью системы авторегрессионного типа.
fish-speech раскрывает возможности GVQ в качестве аудиотокенизатора для моделирования LLM.
vocos, который используется в качестве предварительно обученного вокодера.
wlu-audio lab для ранних экспериментов с алгоритмами.