le webui ChatTTS
démarrer 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
Anglais |中文简体
ChatTTS est un modèle de synthèse vocale conçu spécifiquement pour les scénarios de dialogue tels que l'assistant LLM. Il prend en charge les langues anglaise et chinoise. Notre modèle est formé avec plus de 100 000 heures composées de chinois et d'anglais. La version open source sur HuggingFace est un modèle pré-entraîné de 40 000 heures sans SFT.
Pour toute demande formelle sur le modèle et la feuille de route, veuillez nous contacter à [email protected]. Vous pouvez rejoindre notre groupe QQ : 808364215 pour discuter. L'ajout de problèmes github est toujours le bienvenu.
Pour la description détaillée du modèle, vous pouvez vous référer à la vidéo sur Bilibili
Ce dépôt est uniquement destiné à des fins académiques. Il est destiné à un usage éducatif et de recherche et ne doit pas être utilisé à des fins commerciales ou juridiques. Les auteurs ne garantissent pas l'exactitude, l'exhaustivité ou la fiabilité des informations. Les informations et données utilisées dans ce référentiel sont uniquement destinées à des fins académiques et de recherche. Les données sont obtenues à partir de sources accessibles au public et les auteurs ne revendiquent aucun droit de propriété ou de droit d'auteur sur les données.
ChatTTS est un puissant système de synthèse vocale. Cependant, il est très important d’utiliser cette technologie de manière responsable et éthique. Pour limiter l'utilisation de ChatTTS, nous avons ajouté une petite quantité de bruit haute fréquence lors de la formation du modèle de 40 000 heures et compressé autant que possible la qualité audio en utilisant le format MP3, afin d'empêcher les acteurs malveillants de l'utiliser potentiellement à des fins criminelles. fins. Dans le même temps, nous avons formé en interne un modèle de détection et prévoyons de le rendre open source à l'avenir.
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 )
Pour un clip audio de 30 secondes, au moins 4 Go de mémoire GPU sont requis. Pour le GPU 4090D, il peut générer de l'audio correspondant à environ 7 jetons sémantiques par seconde. Le facteur temps réel (RTF) est d'environ 0,65.
Il s'agit d'un problème qui se produit généralement avec les modèles autorégressifs (pour l'écorce et la vallée). C'est généralement difficile à éviter. On peut essayer plusieurs échantillons pour trouver un résultat approprié.
Dans le modèle actuellement publié, les seules unités de contrôle au niveau du jeton sont [laugh], [uv_break] et [lbreak]. Dans les versions futures, nous pourrons ouvrir des modèles open source avec des capacités supplémentaires de contrôle émotionnel.