基礎環境#
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