基礎環境#
PyTorch 2.1.0
Python 3.10(ubuntu22.04)
Cuda 12.1
インストール#
git clone https://github.com/2noise/ChatTTS.git
cd ChatTTS
pip install -r requirements.txt
# もしwebui.pyを起動する場合は、gradioもインストールしてください
pip install gradio
実行#
python webui.py
# 実行後、モデルは自動的にhuggingfaceフォルダにダウンロードされます。魔法が必要ですが、またはhuggingfaceのプロキシサイトを使用できます。
# ポートを指定して実行する
python webui.py --server_port 1234
独自の API を作成する#
# シンプルなバージョンのapi.pyを実行するには、python api.pyを実行します。
import ChatTTS
import torch
import torchaudio
from IPython.display import Audio
# ChatTTSモデルの初期化
chat = ChatTTS.Chat()
chat.load_models(compile=False) # パフォーマンスを向上させる場合はTrueに設定できます
rand_spk = chat.sample_random_speaker()
# 変換するテキスト
texts = ["こんにちは、私はテキストを音声に変換します"]
# 推論を実行する
wavs = chat.infer(texts)
# 音声ファイルを保存する
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
###################################
# アドバンスバージョンのv-api.pyを実行するには、python v-api.pyを実行します。
import ChatTTS
import torch
import torchaudio
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models(compile=False) # パフォーマンスを向上させる場合はTrueに設定できます
###################################
# ガウス分布から話者をサンプリングする。
rand_spk = chat.sample_random_speaker()
params_infer_code = {
'spk_emb': rand_spk, # サンプリングされた話者を追加する
'temperature': .3, # カスタムの温度を使用する
'top_P': 0.7, # 上位Pをデコードする
'top_K': 20, # 上位Kをデコードする
}
###################################
# 文レベルのマニュアルコントロールのため。
# テキスト内でoral_(0-9)、laugh_(0-2)、break_(0-7)を使用して、特殊トークンを生成して合成します。
params_refine_text = {
'prompt': '[oral_2][laugh_0][break_6]'
}
###################################
# 単語レベルのマニュアルコントロールのため。
text = 'What is [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(wav[0]), 24000)
結論#
さまざまな調整があります。話速、ランダムなキャラクターの保存、特殊な記号、笑い声、間隔など、このオープンソースは新しくリリースされましたが、とても良い音がします。成長の余地がたくさんあります。
API を作成して使用することもできます。非常に便利です。
出典:
この記事はMix Spaceから xLog に同期されています。
元のリンクはhttps://sunx.ai/posts/nlp/chattts