計畫簡介
ChatTTS是一個針對日常對話場景設計的生成式語音合成模型。該模型支持英語和中文,適用於各類語音互動套用,如智慧助手。ChatTTS不僅能夠控制發音的細節,如笑聲、停頓和插入語,還優於大多數開源語音合成模型,尤其是在語調上。此外,ChatTTS采用了40,000小時的預訓練數據進行開發,雖然為非商業研究和教育目的,但已在模型中添加了一些特別措施,以防止其被濫用。計畫旨在支持進一步的研究與開發,為語音合成領域提供強有力的工具。
掃碼加入AI交流群
獲得更多技術支持和交流
(請註明自己的職業)
DEMO
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]
亮點
1. 對話式文本轉語音: ChatTTS 針對基於對話的任務進行了最佳化,能夠實作自然且富有表現力的語音合成。它支持多個發言者,便於進行互動對話。
2. 細粒度控制: 該模型能夠預測並控制細粒度韻律特征,包括笑聲、停頓和插入語。
3. 更好的韻律: 在語調方面,ChatTTS 超越了大多數開源文本轉語音模型。提供預訓練模型以支持進一步的研究和開發。
使用
1.基礎使用
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models(compile=False) # Set to True for better performance
texts = ["PUT YOUR TEXT HERE",]
wavs = chat.infer(texts, )
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
2.進階使用
###################################
# Sample a speaker from Gaussian.
rand_spk = chat.sample_random_speaker()
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(texts, 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_refine_text=params_refine_text, params_infer_code=params_infer_code)
torchaudio.save("output2.wav", torch.from_numpy(wavs[0]), 24000)
常見問題
1.對於30秒的音訊片段,至少需要4GB的GPU記憶體。對於4090 GPU,它可以每秒生成大約7個語意標記的音訊。RTF約為0.3。
2.模型穩定性不夠好,存在諸如多發言者或音質不佳的問題。這通常是自回歸模型(例如 bark 和 valle)的一個問題,通常很難避免。可以嘗試多個樣本以找到合適的結果。
3.除了笑聲,還能控制什麽,能控制其他情緒嗎?在當前釋出的模型中,唯一的標記級控制單元是 [笑聲]、[無聲間斷] 和 [長間斷]。在未來版本中,可能會開源具有額外情緒控制能力的模型。
計畫連結
https://github.com/2noise/ChatTTS
關註「 開源AI計畫落地 」公眾號
與AI時代更靠近一點