用了三天时间研究了一套本地语言模型+本地语音模型部署,效果就和邓超那个《胜券在握》里面的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对话(需要你的显卡算力能跟上,不然会很慢)
教程完毕感谢观看。这!才是真正的手写教程!