夜雨聆风学习资料网

ARTICLE · 1353946

我让WPS灵犀桌宠听懂了我的话

我让WPS灵犀桌宠听懂了我的话

我让WPS桌宠听懂了我的话

—— 一次语音控制探索实录,从"它能干什么"到"它听我的",再到"它为什么装死"

大家好,我是墨云轩。

WPS 灵犀的桌宠"金小萌",很多朋友都见过:屏幕角落里一只白色小可爱,会跑会跳,偶尔卖个萌。但看得久了,我心里冒出一个念头——它能不能听懂我说话?我说"向左跑",它就向左跑;我说"投喂",它就开心吃东西;我问"今天天气怎么样",它还能张嘴回答。

这篇文章记录整个过程。比预想的曲折得多:程序写好了,它却时而灵、时而装死,最后一查,凶手居然藏在最想不到的地方。

一、先问一个问题:桌宠有没有"耳朵"?

拿到想法,我没有急着写代码,而是先列了三套方案:

  1. 探测隐藏接口
    ——看看官方有没有留下控制入口;
  2. 自研一只语音桌宠
    ——完全自己画,但少了"官方那只"的灵气;
  3. 模拟鼠标点击
    ——让它看起来像在动,但脆弱得一塌糊涂。

先走第一条路,结果挖到了宝:桌宠进程在本机悄悄开了一个 MCP 服务(端口写在配置文件里,还带鉴权),里面有 notify、command_send这类接口。换句话说,官方其实留了一扇门。

踩坑一:我一开始想走"捷径",直接往桌宠的数据文件里塞消息。写是写进去了,桌宠纹丝不动。翻了日志才发现——信箱通道压根没启用,真正的通道是 MCP。绕了半天,答案一直在门上写着。

二、给它装上"耳朵":离线语音识别

控制通道打通后,就差"听"了。我选了 Vosk 离线语音识别(中文小模型,约 44MB):不用联网、不花钱、不吃配置,机房的老电脑也能跑。

识别之后是"听得懂",我把指令分成三层:

  • 动作层
    :「向左跑」「跳个舞」「投喂」→ 直接让金小萌动起来;
  • 问答层
    :「现在几点了」「今天天气怎么样」→ 本地回答,气泡+语音朗读;
  • 灵犀层
    :「小萌问一下,帮我……」→ 转投灵犀对话框,让大模型干活。

这里踩了两个经典坑,一并记录:

踩坑二:Vosk 不支持中文路径。模型放在 E:\灵犀\下死活加载不出来,报错说"文件夹里没有模型文件"——报错和真实原因完全对不上。挪到纯英文目录,秒过。

踩坑三:日志里的表情符号会崩程序。输出重定向到文件后,Python 默认用 GBK 编码写日志,一句"✅ 就绪"直接把程序送走。解法:程序开头加 sys.stdout.reconfigure(encoding="utf-8"),一劳永逸。

三、最费心思的:让短句"听得准"

跑通之后新问题来了:「向左跑」「投喂」这几个短词识别率忽高忽低,「现在几点了」被听成「吗问一下现在避免了」。

解法

双识别器 + 拼音模糊匹配:第一层用"限定短语语法"识别器,候选词就那十几个,短句命中率高;一旦返回 [unk] 自动切开放语法兜底;最后加一层拼音模糊匹配——「抓衣衫」和「天气」拼音挺接近,容错能救回来。

另一个暗坑:程序朗读回答时,麦克风会"自听",把回答又识别一遍,陷入复读机循环。修法是三重保险——朗读期间暂停采集、朗读结束后再静默一秒等尾音播完、同一句话 8 秒内不重复回答。

四、真正的悬疑片:它为什么"装死"?

以上都搞定后,程序进入正式服役。然后诡异的事情发生了:它经常无声无息地消失。没有任何报错,没有任何崩溃日志,前一分钟还在好好识别,下一分钟进程就没了。

我做了能想到的所有检查:程序没有重启逻辑、事件日志里没有崩溃记录、换启动方式没用、多开实例互相顶掉……最后做了个对照实验才锁定嫌疑人——电脑里的安全软件"主动防御"。

它把"用户目录下运行的 Python 脚本 + 录音 + 联网"这个组合判定为可疑行为,直接终止进程:不弹窗、不记录、不商量。

解法

把程序目录加入安全软件的信任区 / 白名单,问题立解。加入白名单后连续监测,进程稳定存活,再没消失过。

还有一个隐蔽的坑:电脑重启后,麦克风端点编号会变——原来写死的"麦克风 1"重启用就变成了空通道,录到的全是静音。解法是启动时自动探测:把每个麦克风都试录两秒,算音量,谁响用谁。

五、最终效果

我对它说
它做什么
「向左跑」「向右跑」
朝对应方向奔跑
「跳个舞」「开心一下」
欢庆祝兴动作
「投喂」「吃饭了」
开心吃东西
「现在几点了」「今天几号」
气泡+语音报时
「今天天气怎么样」
播报本地天气
「小萌问一下,帮我……」
转交灵犀执行任务

整套程序开机自启、日志可查。现在每天开电脑,它听我指挥跑来跑去——生产力谈不上,但真的很解压。

写在最后

回看整个折腾过程,其实就四句话:

  1. 先找官方留的门,别硬撬锁
    ——探测永远排第一;
  2. 识别不准就分层兜底
    ——语法限定、开放兜底、拼音容错层层接住;
  3. 报错信息不一定说真话
    ——"找不到模型"可能是路径问题,"没有日志"可能是因为它死得悄无声息;
  4. 程序"装死",先怀疑安全软件
    ——白名单是本机自动化绕不开的一课。

这次探索让我对"AI Agent 操作本机软件"有了实感:不是科幻,就是一层层排查、试错、拼起来的工程活。

简单试了试,有时还不太灵光!

我是墨云轩,热衷分享办公小技巧,边学习,边分享,每天进步一点点。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料