веб-интерфейс ChatTTS
запустить webui.py
python webui.py
python webui.py --server_port=8080
conda create -n chattts python=3.9
conda activate chattts
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install omegaconf vocos transformers vector-quantize-pytorch
Английский |中文简体
ChatTTS — это модель преобразования текста в речь, разработанная специально для сценариев диалога, таких как LLM Assistant. Он поддерживает английский и китайский языки. Наша модель прошла обучение более 100 000 часов на китайском и английском языках. Версия HuggingFace с открытым исходным кодом представляет собой предварительно обученную модель в течение 40 000 часов без SFT.
Для официальных запросов о модели и плане развития, пожалуйста, свяжитесь с нами по адресу [email protected]. Вы можете присоединиться к нашей группе QQ: 808364215 для обсуждения. Добавление проблем с github всегда приветствуется.
Подробное описание модели можно посмотреть в видео на Bilibili.
Это репо предназначено только для академических целей. Он предназначен для образовательных и исследовательских целей и не должен использоваться в каких-либо коммерческих или юридических целях. Авторы не гарантируют точность, полноту и достоверность информации. Информация и данные, используемые в этом репозитории, предназначены только для академических и исследовательских целей. Данные получены из общедоступных источников, авторы не претендуют на какие-либо права собственности или авторские права на данные.
ChatTTS — мощная система преобразования текста в речь. Однако очень важно использовать эту технологию ответственно и этично. Чтобы ограничить использование ChatTTS, мы добавили небольшое количество высокочастотного шума во время обучения 40 000-часовой модели и максимально сжали качество звука с помощью формата MP3, чтобы предотвратить потенциальное использование злоумышленниками в преступных целях. целей. В то же время мы провели внутреннюю подготовку модели обнаружения и планируем в будущем открыть ее исходный код.
import ChatTTS
from IPython . display import Audio
chat = ChatTTS . Chat ()
chat . load_models ()
texts = [ "" ,]
wavs = chat . infer ( texts , use_decoder = True )
Audio ( wavs [ 0 ], rate = 24_000 , autoplay = True )
###################################
# Sample a speaker from Gaussian.
import torch
std , mean = torch . load ( 'ChatTTS/asset/spk_stat.pt' ). chunk ( 2 )
rand_spk = torch . randn ( 768 ) * std + mean
params_infer_code = {
'spk_emb' : rand_spk , # add sampled speaker
'temperature' : .3 , # using custom temperature
'top_P' : 0.7 , # top P decode
'top_K' : 20 , # top K decode
}
###################################
# For sentence level manual control.
# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = {
'prompt' : '[oral_2][laugh_0][break_6]'
}
wav = chat . infer ( "" , params_refine_text = params_refine_text , params_infer_code = params_infer_code )
###################################
# For word level manual control.
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wav = chat . infer ( text , skip_refine_text = True , params_infer_code = params_infer_code )
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications.
[uv_break]it supports mixed language input [uv_break]and offers multi speaker
capabilities with precise control over prosodic elements [laugh]like like
[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation.
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""" . replace ( ' n ' , '' ) # English is still experimental.
params_refine_text = {
'prompt' : '[oral_2][laugh_0][break_4]'
}
audio_array_cn = chat . infer ( inputs_cn , params_refine_text = params_refine_text )
audio_array_en = chat . infer ( inputs_en , params_refine_text = params_refine_text )
Для 30-секундного аудиоклипа требуется не менее 4 ГБ памяти графического процессора. Графический процессор 4090D может генерировать звук, соответствующий примерно 7 семантическим токенам в секунду. Фактор реального времени (RTF) составляет около 0,65.
Это проблема, которая обычно возникает в моделях авторегрессии (для коры и долины). Обычно этого трудно избежать. Можно попробовать несколько образцов, чтобы найти подходящий результат.
В текущей выпущенной модели единственными блоками управления на уровне токена являются [смех], [uv_break] и [lbreak]. В будущих версиях мы можем открыть модели с открытым исходным кодом с дополнительными возможностями контроля эмоций.