用了三天時間研究了一套本地語言模型+本地語音模型部署,效果就和鄧超那個《勝券在握》裡面的AI電腦一樣,就是語音對話。其實任何一個在線ai都能更好的實現,所以最後不知道折騰出來意義何在。但既然折騰了,就隨便寫一個教程吧。
教程的適用環境:win10或以上版本,建議win11。需要NVIDIA顯卡,顯存至少在16G或以上,雙顯卡更佳。
前期準備:
安裝wsl2,管理員許可權打開PowerShell,運行 wsl –install
安裝git,在這裡下載https://git-scm.com/install/windows
安裝docker Windows,https://www.docker.com/products/docker-desktop/
安裝ollama,官網下載https://ollama.com/
部署過程:
下載和啟動ollama模型:安裝完ollama默認會啟動圖形界面,並且在右下角有個小羊駝,我們不使用圖形界面,請安裝啟動之後在右下角退出圖形界面程序!新建一個批處理文件做為啟動程序,也就是新建一個文本,命名為 start_ollama.bat,內容如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@echo off chcp 936 >nul setlocal title Ollama啟動器 color 0a set OLLAMA_HOST=0.0.0.0 echo 環境變數配置完畢!正在啟動 Ollama 本地 API 服務... echo 提示:請不要關閉這個窗口,縮小到後台即可。 echo --------------------------------------------------- ollama serve pause |
雙擊批處理文件啟動ollama後台程序,然後最小化。
在官網選一個適合你適用的語言模型,比如gemma4:12b,啟動需要大概8G顯存,剩下顯存跑語音模型。
打開cmd,輸入 ollama run gemma4:12b 即可下載和啟動模型。
(你也可以在其他cmd里輸入 ollama pull 模型名稱,同時下載其他模型,ollama list可查看所有下載的模型,ollama rm 模型名稱可以刪除本地模型)
經過漫長的下載和啟動,run的這個cmd窗口會出現>>提示符,你輸入你好之類的模型可以回答。此時本地模型已經在顯卡中成功運行了。
接下來就是接入耳朵(STT)和嘴(TTS)。
打開剛才安裝的docker,界面左下角顯示engine running就可以了,點擊右上角X,它會在系統右下角托盤後台運行。
安裝web管理界面,Open WebUI。
打開一個cmd輸入下面的命令
|
1 |
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e OLLAMA_BASE_URL=http://host.docker.internal:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main |
經過一段時間等待,部署完成後,瀏覽器訪問:http://127.0.0.1:3000 即可進入界面。此時你可以在界面選擇本地模型進行文字聊天。
安裝本地 STT(語音轉文字)
打開一個cmd輸入下面的命令
|
1 |
docker run -d --name local-stt --gpus all -p 8000:8000 -v whisper-cache:/root/.cache/huggingface --restart always fedirz/faster-whisper-server:latest-cuda |
如果是多顯卡請在上面的命令中改為 –gpus all -e CUDA_VISIBLE_DEVICES=1 指定顯卡
安裝本地TTS(文字轉語音)
這裡是重點,因為網上原本的ChatTTS-OpenAI-API維護日期是兩年前,已經無法使用,我重新寫了一個版本。github的頁面是 https://github.com/kujourin/ChatTTS-OpenAI-API
找一個臨時目錄,打開一個cmd依次輸入下面的命令(包含拉取我的版本)
|
1 2 3 4 |
git clone https://github.com/kujourin/ChatTTS-OpenAI-API.git cd ChatTTS-OpenAI-API docker build -t chattts-openai-api . docker run -d --name local-chattts --gpus all -p 5050:5001 -v chattts-models:/app/asset --restart always chattts-openai-api |
多顯卡同理stt指定
stt和tts首次啟動需要下載模型文件,估計需要一段時間,可以通過docker logs local-chattts查看運行情況。預計需要漫長的等待。
最後的步驟就是把這三個模型連起來,STT -> 語言模型 -> TTS
打開 127.0.0.1:3000 登錄 Open WebUI(首次進入需要創建管理員賬戶)
右上角頭像,選擇管理員面板–設置–語音
STT (語音轉文字) 配置:
引擎:OpenAI
URL:http://host.docker.internal:8000/v1
密鑰:1234 (隨便填,本地不校驗但必須有)
模型:Systran/faster-whisper-large-v3
TTS (文字轉語音) 配置:
引擎:OpenAI
URL:http://host.docker.internal:5050/v1
密鑰:1234
模型:chattts
音色:nova
保存設置
回到主頁,再次右上角頭像,這次是直接點設置(用戶設置)–語音
自動發送和自動朗讀打開
重點來了,這裡的設置音色會覆蓋管理員設置。這裡可以填寫預設的(我在代碼里寫的)alloy,echo,fable,onyx,nova,test_001,test_002一直到test_010。也可以填寫任意數字1-9999等,每一個都是不同的音色。選擇自己喜歡的音色(多數都很智障)
至此全部配置完畢,甚至可以實現live對話(需要你的顯卡算力能跟上,不然會很慢)
教程完畢感謝觀看。這!才是真正的手寫教程!