眾所周知,阿里開源的Cosyvoice文本轉語音大模型的效果非常的不錯,
我也把玩了很久undefined
但苦於沒有高性能的顯卡(租的卡總有一種緊迫感,用得不舒坦undefined ),所以寫了個純CPU運行的版本。
相較於官方原版:
CPU推理時 原版 精簡後
內存佔用 4G+ 4G+
硬盤佔用 20G+ 8.93G
速度相同 50s/it 50s/it
對於原版,做了以下處理:
1. 剔除不必要的Python環境依賴和模型文件,硬盤佔用減少10G
2. 基於python:3.10-slim鏡像(裸鏡像僅43M大小),並且使用Docker打包,系統更輕量的同時,不會遇到安裝報錯、版本不兼容、網絡錯誤等等等等問題,小白也能輕鬆部署。
3. 重寫了WebUI,(原版UI僅供測試使用,並且解決了第一次生成時,無法獲取音頻的問題),步驟指導更清晰!
硬件要求:
- 物理內存推薦 8G,不夠的話再加swap緩存也能跑,但是慢。
- 硬盤剩餘空間大於 10G
- 流量消耗大約 10G
- CPU在推理時,會滿載95%+(注意vps商家有無限制)
好了,說了那麼多,下面就是詳細步驟了:
第一步:將下面內容保存為docker-compose.yml
- services:
- cov:
- image: eureka6688/cosyvoice:latest # arm架構請將"latest"替換成"arm"
- container_name: cov
- ports:
- - "50000:50000"
- command: ["python", "web.py", "--port", "50000"]
- stdin_open: true
- tty: true
- restart: unless-stopped
複製代碼 第二步:在保存docker-compose.yml的目錄下運行以下命令
等待10分鐘,也許更久,就能夠在 http://localhost:50000 訪問到web服務界面了
沒錯,就這麼簡單!
接下來用nginx反代使用也好,ssh隧道轉發到本地使用也可以,甚至可以直接打開防火牆50000端口,再通過公網IP+50000端口訪問都沒問題(注意網絡安全!)
演示效果:
https://github.com/FunAudioLLM/CosyVoice
構建arm的話,得修改代碼,因為源項目沒有提供arm的依賴工具,所以我這套在arm系統下也是編譯構建不成功的。
源碼的話,就一個Dockerfile,和一些配置。
arm版完整docker-compose.yml如下:
- services:
- cov:
- image: eureka6688/cosyvoice:arm
- container_name: cov
- ports:
- - "50000:50000"
- command: ["python", "web.py", "--port", "50000"]
- stdin_open: true
- tty: true
- restart: unless-stopped
複製代碼 將代碼保存為docker-compose.yml後,在目錄下執行
docker compose up -d
等待10分鐘左右就能在本地50000端口訪問到服務了。 |