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
English |中文简体
ChatTTS は、LLM アシスタントなどの対話シナリオ向けに特別に設計されたテキスト読み上げモデルです。英語と中国語の両方をサポートしています。私たちのモデルは、中国語と英語で構成される 100,000 時間以上のトレーニングを受けています。 HuggingFace のオープンソース バージョンは、SFT を含まない 40,000 時間の事前トレーニング済みモデルです。
モデルとロードマップに関する正式なお問い合わせについては、[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 秒のオーディオ クリップの場合、少なくとも 4GB の GPU メモリが必要です。 4090D GPU の場合、1 秒あたり約 7 つのセマンティック トークンに対応するオーディオを生成できます。リアルタイム ファクター (RTF) は約 0.65 です。
これは、自己回帰モデル (bark および valle の場合) で通常発生する問題です。一般にそれを避けるのは困難です。適切な結果を見つけるために複数のサンプルを試すことができます。
現在リリースされているモデルでは、トークンレベルの制御ユニットは [Laugh]、[uv_break]、および [lbreak] のみです。将来のバージョンでは、追加の感情制御機能を備えたモデルをオープンソース化する可能性があります。