欢迎光临
我们一直在努力

8G显卡不只跑聊天模型:用Voice Companion搭一个能听、能说的本地AI数字人

🔥承渊政道:个人主页

❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》 《cpolar知识学习》

✨逆境不吐心中苦,顺境不忘来时路!✨

🎬 博主简介:

手里只有一张8G显卡时,我以前第一反应也是“能跑多大的模型”.但真折腾一阵以后,我反而更想试点不一样的:同样的显存,能不能把语音识别、大模型回复、TTS、音色和数字人口型串成一套完整交互,而不是一直盯着参数量和跑分.Voice Companion Bundle 吸引我的地方就在这里,它不是单独塞一个聊天模型进网页,而是把“我说话—系统听懂—模型回答—合成声音—人物开口”这条链真正接起来.对我来说,这种项目好不好玩,关键不在“赛博女友”这个名字,而在每一环有没有真的协同起来.这也更符合我折腾本地 AI 的习惯.这次我按 Windows + WSL2 的整合包流程部署 Voice Companion,先用 DeepSeek 在线 API 把基础语音对话跑通,再通过 LM Studio 加载本地模型并开放 12345 API 服务,把数字人的 LLM 切换成本机推理.原测试里本地模型输出约 34 token/s,生成回答时 GPU 占用也会明显上升.最后我再用 cpolar 把 Voice Companion 的 Web 页面提供到公网,固定二级子域名 voice01,并补上 HTTP Auth.整篇我会把“8G 显卡能跑”“当前模型能完整进显存”“本地链路已经验证”分别说清楚,不把一次成功测试扩大成所有 8G 显卡、所有模型都能得到同样体验.

目录

  • 1.这套项目真正有意思的,不只是一个“AI 女友”界面
  • 2.下载 Voice Companion Bundle整合包
  • 3.先用DeepSeek在线API把整条对话链跑通
  • 4.先选麦克风,再开始第一次语音对话
  • 5.人设、声音和人物形象分别怎么改?
    • 5.1助手人设
    • 5.2参考音色
    • 5.3人物形象
    • 5.4LLM服务
  • 6.用 LM Studio 在 Windows上加载本地大模型
  • 7.加载模型并先单独跑一次
  • 8.打开 LM Studio API 服务
  • 9.把数字人的 LLM 切到本地模型
  • 10.本地已经能说话,接下来才考虑远程访问
  • 11.Windows安装cpolar
  • 12.注册并登录cpolar Web UI
  • 13.给Voice Companion 创建随机公网入口
  • 14.随机地址跑通以后,再配置固定二级子域名
  • 15.公网入口再加一层 HTTP Auth
  • 16.总结

1.这套项目真正有意思的,不只是一个“AI 女友”界面

Voice Companion Bundle 面向的是 Windows + WSL2 环境.

它把几条原本分开的能力接到了一起:

  • Faster-Whisper:语音识别;
  • OpenAI 兼容接口:大模型对话;
  • Qwen3-TTS:语音合成和参考音色克隆;
  • LiveTalking + Wav2Lip:数字人口型同步;
  • 助手人设、参考音色、人物形象:个性化配置.

所以真正的工作链是:

麦克风 → 语音识别 → LLM → TTS → 数字人口型 → 浏览器交互。

这也是我最想验证的地方.

如果只是让大模型回一句文字,8G 显卡能玩的东西其实已经很多;但把声音、模型和数字人拼成一条实时链,体验完全不一样.

项目文件、人物、音色、API Key 和运行日志按这套方案保存在本机;不过如果使用 DeepSeek 这类在线 API,模型回复这一段仍然依赖在线服务.后面换到 LM Studio,才把负责回答的 LLM 继续往本地收.


2.下载 Voice Companion Bundle整合包

先进入项目的 GitHub Release 页面,下载最新版本的 Voice Companion Bundle.

image-20260821101441489

下载以后解压.

目录里可以看到:

setup.ps1

image-20260821101724916

在当前目录空白处按住 Shift,点击鼠标右键,选择:

在此处打开 PowerShell 窗口

image-20260821101920030

然后执行:

./setup.ps1

image-20260821102250365

第一次执行时,会下载安装 Ubuntu 并创建用户.

完成以后,再执行一次:

./setup.ps1

image-20260821102356588

脚本接下来会根据显卡给出推荐档位,并测试下载源.

默认直接回车即可.

image-20260821102503595

后续会继续下载系统依赖、Python 包管理环境、项目资源、数字人资源以及 Qwen TTS 相关资源.

image-20260821102818841

对我来说,这种整合包最大的价值不是“完全不用懂环境”,而是先把最容易互相冲突的一堆组件装到能启动的状态.

真出了问题,还是要知道语音、模型、TTS 和数字人分别是哪一层.


3.先用DeepSeek在线API把整条对话链跑通

安装过程中会要求填写 DeepSeek API Key.

创建地址按原步骤保留:

https://platform.deepseek.com/api_keys

image-20260821103059727

创建以后,把 Key 回填到终端.

当前流程默认先使用在线 LLM,这样可以减少本地显卡在大模型推理这一段的压力.

填完以后会继续启动数字人服务.

服务启动成功后,浏览器自动打开页面.

image-20260821103155693

到这里并不是所有功能都验证完成了,只能说明整合包已经安装并成功启动.

真正好不好用,还是要开口说话.


4.先选麦克风,再开始第一次语音对话

进入页面后,先点击左上角设置,选择当前使用的麦克风设备.

image-20260821103604101

然后点击:

开始

稍等以后,数字人会先进行一次语音回应,同时人物口型跟随声音变化.

image-20260821103631203

回答结束后出现麦克风,就可以直接说话.

如果环境噪声比较大,还可以调整麦克风噪声门限.

image-20260821103749767

这一层实际验证的是:

麦克风输入 → 语音识别 → 在线 LLM 回复 → TTS → 数字人口型。

我会先确认这条基础链稳定,再去改人设、换声音、换模型.


5.人设、声音和人物形象分别怎么改?

右上角的设置里,几块内容是分开的.


5.1助手人设

助手页面可以修改人物设定.

image-20260821103949126

这里影响的是 AI 回答时的人设和表达方向,不是人物视频本身.


5.2参考音色

音频页面可以上传参考音频,用于音色克隆.

噪声门限也在这里调整.

image-20260821104131581


5.3人物形象

形象页面可以上传人物视频,生成新的数字人形象.

image-20260821104158042

原步骤里也明确提到,数字人形象会占用一定显存,可以根据需要调整画质.

这一点对 8G 显卡尤其重要:显存不只给 LLM 用,数字人和语音链里的其他组件也会一起争资源.


5.4LLM服务

服务页面负责配置对话模型.

默认已经使用 DeepSeek 在线 API,也支持增加其他 OpenAI 兼容服务.

image-20260821104414260

下一步我就把这一层切成本地模型.


6.用 LM Studio 在 Windows上加载本地大模型

打开 LM Studio 官网,下载安装 Windows 版本.

原文给出的下载地址是:

https://lmstudio.ai/download

image-20260821182952214

安装完成进入界面后,可以先从左下角设置里切换中文.

image-20260821183114536

接着进入模型页面.

这次示例使用的是 gemma 4,并选择了一个点赞较多的无审查版本.

image-20260821183319953

页面出现:

可能能够完全加载进 GPU 显存

以后,再下载当前模型.

image-20260821183431100

这里我不会把这句话直接改写成“所有 8G 显卡都能完整加载 gemma 4”.

它只是当前模型、当前量化和当前机器下 LM Studio 给出的判断.


7.加载模型并先单独跑一次

下载完成后,在顶部选择模型并加载.

image-20260821183528040

加载成功后先在 LM Studio 内部测试.

这次输入:

你好

image-20260821183614276

当前测试输出速度约为:

34 token/s

到这里确认的是:

本地模型在这台机器上已经能够独立推理。

这个数值属于当前实测,不代表换一张 8G 显卡、另一个模型或不同上下文以后还会保持相同速度.


8.打开 LM Studio API 服务

接下来进入 LM Studio 左侧第二个页面.

在 Server Settings 中,把端口设置为:

12345

然后启动服务.

image-20260821184404240

日志里可以看到服务已经启动.

image-20260821184533393

当前 Base URL 是:

http://localhost:12345

这一步把 LM Studio 从“本机聊天软件”变成了 Voice Companion 可以调用的本地 OpenAI 兼容服务.


9.把数字人的 LLM 切到本地模型

回到 Voice Companion.

进入:

设置 → 服务

点击新增提供商.

提供商名称可以自定义.

BaseURL 填:

http://localhost:12345

模型 ID 先输入任意字符,再点击拉取模型;拉取成功后删除刚才的任意字符,从下拉框中选择前面加载的本地模型.

测试成功以后保存并切换.

image-20260821184911694

回到主页,再点击:

开始

重新进行语音对话.

image-20260821185229044

当前测试里,在数字人生成回答时 GPU 占用会明显上升.

这说明这一次对话的 LLM 回复已经切换到本机推理.

所以到这里,实际验证到的链路是:

语音识别 → 本地 LLM → TTS → 数字人口型。

我更愿意把“进一步本地化”这样理解,而不是简单说成“完全离线”.

因为页面、模型文件和交互链可以在本机协同运行,但具体有没有其他依赖,还要看你实际启用的组件和配置.


10.本地已经能说话,接下来才考虑远程访问

前面的 Voice Companion 主要还是运行在本地电脑上.

人在外面以后,本地地址自然就访问不到.

这里再加入 cpolar.

image-20250910114418412

cpolar 在这套方案里只负责:

把 Voice Companion 的 Web 页面提供到公网。

它不负责语音识别,不负责大模型回复,也不参与 TTS 或数字人口型.

所以这一段只解决:

远程浏览器怎么进入本地 Voice Companion 页面。


11.Windows安装cpolar

进入下载页面,下载 64-bit 安装包.

image-20250815171202537

安装完成后,在 CMD 中检查版本:

cpolar version

image-20250815171446129

出现版本信息以后,说明安装完成.


12.注册并登录cpolar Web UI

进入 cpolar 官网注册账号.

image-20250804085039567

完成注册.

image-20260301193227057

浏览器访问:

http://127.0.0.1:9200

image-20250815171734046

登录以后进入 Web UI.

image-20250815171846757


13.给Voice Companion 创建随机公网入口

进入:

隧道管理 → 创建隧道

本地地址填写 Voice Companion 项目的访问端口,然后创建.

image-20260821190545038

创建以后进入在线隧道列表,可以看到同一隧道对应的两条不同协议公网地址.

image-20260821190717761

这里使用 HTTPS 地址测试.

image-20260821190934744

当前测试里,通过公网地址访问后:

  • 语音对话可以继续使用;
  • 数字人口型正常;
  • 模型回复正常.

也就是说,这一次不仅仅是“页面能打开”,还继续验证了公网环境下的实际交互.

不过这里仍然不能自动推出所有网络环境下的实时性都会一样,外网体验还会受实际网络质量影响.


14.随机地址跑通以后,再配置固定二级子域名

如果只是临时测试,随机地址已经够用.

准备长期使用,就继续配置固定二级子域名.

进入预留页面:

https://dashboard.cpolar.com/reserved

选择与当前隧道相同的地区.

原步骤给出的示例是:

  • 地区:China Top
  • 名称:voice01
  • 描述:任意方便辨识的备注

image-20260823150629971填写完成后,点击【保留】按钮.保留成功后,会得到一个固定的二级子域名.

保留成功以后,回到:

隧道管理 → 隧道列表

这里后续把需要编辑的隧道写成:

7860

image-20260823150907778

然后把域名类型改成:

二级子域名

填写刚才保留成功的名称.

image-20260823150938382

更新以后查看在线隧道列表.

image-20260823151018411

当前 7860 隧道已经切换成固定公网地址.

继续从浏览器访问.

image-20260823151036478

Voice Companion 可以正常打开并使用.

固定二级子域名解决的是:

远程入口不再随着随机地址变化。

它不会改变本地模型速度,也不会增加显存.


15.公网入口再加一层 HTTP Auth

把数字人页面开放到公网以后,我会额外关心一个问题:

只要知道地址,是不是谁都能打开?

所以继续给 cpolar 隧道增加 HTTP Auth.

进入隧道列表,找到前面的 7860 隧道并编辑.

image-20260823150907778

展开:

高级 → HTTP Auth

按照下面的格式填写:

用户名:密码

这里要分清:

HTTP Auth 是 cpolar 公网隧道的访问保护,不是 Voice Companion 自己的账号系统。

账号密码最好单独设置,并优先使用 HTTPS 地址.

配置完成以后更新.

98b5bdf0-cb05-464b-b2d1-f677ed8f28c2

重新打开 Voice Companion 的 HTTPS 公网地址时,浏览器会先弹出身份验证窗口.

image-20260823152719690

通过验证后,才继续进入数字人页面.

到这里,公网使用至少多了一层基础访问保护.


16.总结

这次让我觉得 8G 显卡“还能玩点别的”的地方,不是终于挤进了一个更大的模型,而是把一整条语音数字人链跑了起来.

实际流程是:

Windows + WSL2 → Voice Companion Bundle → Faster-Whisper → DeepSeek 在线 API → Qwen3-TTS → LiveTalking / Wav2Lip → 麦克风语音测试 → 人设 / 音色 / 形象设置 → LM Studio → 本地 gemma 4 模型 → 34 token/s 测试 → localhost:12345 API → Voice Companion 切本地 LLM → cpolar → 随机公网 → 固定二级子域名 voice01 → HTTP Auth。

几个边界也值得一直记住:

  • 原文给出的硬件体验起点是 8G 显卡,但这不是“所有 8G 显卡 + 所有模型都能获得相同结果”的保证;
  • LM Studio 显示“可能能够完全加载进 GPU 显存”,对应的是当前模型和当前配置;
  • 34 token/s 是这次本地模型的实际测试结果,不代表其他硬件和模型;
  • 默认 DeepSeek 在线 API 能减轻本地 LLM 推理压力,但它仍然是在线模型调用;
  • 切换到 LM Studio 后,已经实际看到 GPU 占用上升并完成本地 LLM 对话测试;
  • cpolar 只负责 Voice Companion Web 页面的公网入口,不参与语音、模型、TTS 和数字人逻辑;
  • 固定域名阶段后续步骤把隧道称为 7860,按现有流程保留;
  • HTTP Auth 属于公网隧道访问保护,不是 Voice Companion 自身用户系统.

如果只是为了聊天,一张 8G 显卡跑一个本地模型当然已经够折腾;但我更喜欢这类把多个能力拼起来的玩法.声音、模型、人物、口型和远程入口真正协同以后,显卡不再只是“跑多少 B 参数”的数字,而开始变成一套可以直接说话、直接回应的本地 AI 交互系统.

🚀真正的勇者不是流泪的人,而是含泪奔跑的人!


敬请期待下一篇文章内容


每日心灵鸡汤: 真正的成熟,是理解而不评判!

一个人的认知越来越成熟的时候,会很容易理解身边的每一个人.没有好坏,没有对错,只是处在不同的位置,表现出的一些行为和话语.你明白了这一点,就会有真正的爱和慈悲,你就会接纳、包容、善待和允许一切的发生.我认为我没有资格评判任何人,因为每个人的成长环境不同,三观自然不同,做出的选择也会不同.我没有理由用我的眼界去评判别人,也许我处在他的人生剧本中,我会过得更糟糕.严以律己,宽以待人,人非圣贤,孰能无过.其实,学会接受别人的不完美,也就接纳了真正的自己.

赞(0)
未经允许不得转载:171主机测评 » 8G显卡不只跑聊天模型:用Voice Companion搭一个能听、能说的本地AI数字人
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址