English README | 打賞項目| Discord Discussion Group
一個簡單的本地網頁介面,在網頁上使用ChatTTS 將文字合成為語音,支援中英文、數位混雜,並提供API介面.
原ChatTTS 專案. 0.96版起,原始碼部署必須先安裝ffmpeg ,之前的音色檔案csv和pt已不可用,請填寫音色值重新生成.取得音色
[贊助商]
302.AI是一個匯集全球頂級品牌的AI超市,按需付費,零月費,零門檻使用各種類型AI。
功能全面、簡單易用、隨選付費零門檻、管理者與使用者分離
介面預覽
文字數字符號控制符混雜效果
從Releases下載壓縮包,解壓縮後雙擊app.exe 即可使用
某些安全軟體可能報毒,請退出或使用原始碼部署
英偉達顯示卡大於4G顯存,並安裝了CUDA11.8+後,將啟用GPU加速
第一次將從huggingface.co或github下載模型到asset目錄下,如果網路不穩,可能下載失敗,若是失敗,請單獨下載
下載後解壓縮後,會看到asset資料夾,該資料夾內有多個pt文件,將所有pt檔案複製到asset目錄下,然後重新啟動軟體
GitHub下載網址: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
百度網盤下載網址: https://pan.baidu.com/s/1yGDZM9YNN7kW9e7SFo8lLw?pwd=ct5x
拉取專案倉庫
在任意路徑下克隆項目,例如:
git clone https://github.com/jianchang512/ChatTTS-ui.git chat-tts-ui
啟動Runner
進入到專案目錄:
cd chat-tts-ui
啟動容器並查看初始化日誌:
gpu版本docker compose -f docker-compose.gpu.yaml up -d cpu版本 docker compose -f docker-compose.cpu.yaml up -d docker compose logs -f --no-log-prefix
造訪ChatTTS WebUI
启动:['0.0.0.0', '9966']
,也即,存取部署設備的IP:9966
即可,例如:
本機: http://127.0.0.1:9966
伺服器: http://192.168.1.100:9966
Get the latest code from the main branch:
git checkout main git pull origin main
Go to the next step and update to the latest image:
docker compose down gpu版本docker compose -f docker-compose.gpu.yaml up -d --build cpu版本docker compose -f docker-compose.cpu.yaml up -d --build docker compose logs -f --no-log-prefix
配置python3.9-3.11環境,安裝ffmpeg。 yum install ffmpeg
或apt-get install ffmpeg
等
建立空白目錄/data/chattts
執行指令cd /data/chattts && git clone https://github.com/jianchang512/chatTTS-ui .
建立虛擬環境python3 -m venv venv
啟動虛擬環境source ./venv/bin/activate
安裝依賴pip3 install -r requirements.txt
如果不需要CUDA加速,執行
pip3 install torch==2.2.0 torchaudio==2.2.0
如果需要CUDA加速,執行
pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118 pip install nvidia-cublas-cu11 nvidia-cudnn-cu11
另需安裝CUDA11.8+ ToolKit,請自行搜尋安裝方式或參考https://juejin.cn/post/7318704408727519270
除CUDA外,還可以使用AMD GPU進行加速,這需要安裝ROCm和PyTorch_ROCm版本。 AMG GPU借助ROCm,在PyTorch開箱即用,無需額外修改程式碼。
pip3 install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/rocm6.0
安裝完成後,可以透過rocm-smi指令來查看系統中的AMD GPU。也可以用以下Torch程式碼(query_gpu.py)來查詢目前AMD GPU Device.
import torch print(torch.__version__) if torch.cuda.is_available(): device = torch.device("cuda") # a CUDA device object print('Using GPU:', torch.cuda.get_device_name(0)) else: device = torch.device("cpu") print('Using CPU') torch.cuda.get_device_properties(0)
使用以上程式碼,以AMD Radeon Pro W7900為例,查詢設備如下。
$ python ~/query_gpu.py 2.4.0.dev20240401+rocm6.0 Using GPU: AMD Radeon PRO W7900
請參考https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html 來安裝AMD GPU Driver及ROCm.
再透過https://pytorch.org/ 安裝PyTorch_ROCm版本。
執行python3 app.py
啟動,將自動開啟瀏覽器窗口,預設位址http://127.0.0.1:9966
(注意:預設從modelscope 魔塔下載模型,不可使用代理下載,請關閉代理)
設定好python3.9-3.11 環境,安裝git ,執行指令brew install libsndfile git [email protected]
繼續執行
brew install ffmpeg export PATH="/usr/local/opt/[email protected]/bin:$PATH" source ~/.bash_profile source ~/.zshrc
建立空白目錄/data/chattts
執行指令cd /data/chattts && git clone https://github.com/jianchang512/chatTTS-ui .
建立虛擬環境python3 -m venv venv
啟動虛擬環境source ./venv/bin/activate
安裝依賴pip3 install -r requirements.txt
安裝torch pip3 install torch==2.2.0 torchaudio==2.2.0
執行python3 app.py
啟動,將自動開啟瀏覽器窗口,預設位址http://127.0.0.1:9966
(注意:預設從modelscope 魔塔下載模型,不可使用代理下載,請關閉代理)
下載python3.9-3.11,安裝時注意選取Add Python to environment variables
下載ffmpeg.exe 放在軟體目錄下的ffmpeg資料夾內
下載並安裝git,https://github.com/git-for-windows/git/releases/download/v2.45.1.windows.1/Git-2.45.1-64-bit.exe
建立空白資料夾D:/chattts
並進入,網址列輸入cmd
回車,在彈出的cmd視窗中執行指令git clone https://github.com/jianchang512/chatTTS-ui .
建立虛擬環境,執行指令python -m venv venv
啟動虛擬環境,執行.venvscriptsactivate
安裝依賴,執行pip install -r requirements.txt
如果不需要CUDA加速,
執行pip install torch==2.2.0 torchaudio==2.2.0
如果需要CUDA加速,執行
pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
另需安裝CUDA11.8+ ToolKit,請自行搜尋安裝方式或參考https://juejin.cn/post/7318704408727519270
執行python app.py
啟動,將自動開啟瀏覽器窗口,預設位址http://127.0.0.1:9966
(注意:預設從modelscope 魔塔下載模型,不可使用代理下載,請關閉代理)
若GPU顯存低於4G,將強制使用CPU。
Windows或Linux下方如果顯示大於4G且是英偉達顯示卡,但原始碼部署後仍使用CPU,可嘗試先卸載torch再重裝,卸載pip uninstall -y torch torchaudio
, 重新安裝cuda版torch。 pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
。必須已安裝CUDA11.8+
預設檢測modelscope 是否可連接,如果可以,則從modelscope下載模型,否則從huggingface.co下載模型
0.96版本後,因ChatTTS核心升級,已無法直接使用從該網站下載的pt檔(https://modelscope.cn/studios/ttwwwaa/ChatTTS_Speaker)
因此增加轉換腳本cover-pt.py Win整合包可以直接下載cover-pt.exe 文件,和app.exe 放在同一目錄下雙擊執行
執行python cover-pt.py
後將把speaker
目錄下的,以seed_
開頭,以_emb.pt
結尾的文件,即下載後的預設檔名pt, 轉換為可用的編碼格式,轉換後的pt將改名為以_emb-covert.pt
結尾。
例:
假如speaker/seed_2155_restored_emb.pt
存在這個文件,將被轉換為speaker/seed_2155_restored_emb-cover.pt
, 然後刪掉原pt文件,僅保留該轉換後的文件即可
預設位址是http://127.0.0.1:9966
,如果想修改,可開啟目錄下的.env
文件,將WEB_ADDRESS=127.0.0.1:9966
改為適當的ip和端口,例如修改為WEB_ADDRESS=192.168.0.10:9966
以便區域網路可訪問
請求方法: POST
請求地址: http://127.0.0.1:9966/tts
請求參數:
text: str| 必須, 要合成語音的文字
voice: 可選,預設2222, 決定音色的數字, 2222 | 7869 | 6653 | 4099 | 5099,可選其一,或任意傳入將隨機使用音色
prompt: str| 可選,預設空, 設定笑聲、停頓,例如[oral_2][laugh_0][break_6]
temperature: float| 可選, 預設0.3
top_p: float| 可選, 預設0.7
top_k: int| 可選, 預設20
skip_refine: int| 可選, 預設0, 1=跳過refine text,0=不跳過
custom_voice: int| 可選, 預設0,自訂取得音色值時的種子值,需要大於0的整數,如果設定了則以此為準,將忽略voice
返回:json數據
成功返回: {code:0,msg:ok,audio_files:[dict1,dict2]}
其中 audio_files 是字典数组,每个元素dict为 {filename:wav文件绝对路径,url:可下载的wav网址}
失敗回傳:
{code:1,msg:错误原因}
# API调用代码 import requests res = requests.post('http://127.0.0.1:9966/tts', data={ "text": "若不懂无需填写", "prompt": "", "voice": "3333", "temperature": 0.3, "top_p": 0.7, "top_k": 20, "skip_refine": 0, "custom_voice": 0 }) print(res.json()) #ok {code:0, msg:'ok', audio_files:[{filename: E:/python/chattts/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav, url: http://127.0.0.1:9966/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav}]} #error {code:1, msg:"error"}
升級pyVideoTrans 到1.82+ https://github.com/jianchang512/pyvideotrans
點選選單-設定-ChatTTS,填寫請求位址,預設應填寫http://127.0.0.1:9966
測試無問題後,在主介面中選擇ChatTTS