处理完上一个文件后,陈砚舟将目光投向下一个待处理的文件夹。
他双击打开,屏幕跳出一段视频画面——小女孩坐在沙发上,连续喊了五次“小智放歌”,音响每次都亮起红灯响应。
他暂停播放,截图保存,命名为“儿童误触案例1”。
键盘敲了几下,把文件拖进共享文档,备注写上:“高频误触场景,列入语音优化优先级第一项。”
刚发完消息,办公室门被推开,赵阳端着两杯咖啡走进来,递了一杯过去。“你还没走?”
“刚整理完用户反馈。”陈砚舟接过杯子,喝了一口,“广告那边已经改了方向,现在轮到我们自己了。”
“你是说……动系统?”
“必须动。”他翻开笔记本,蓝笔那一页密密麻麻记满了字,“昨天五十组家庭试用,有三十七人反映‘说话太讲究’。开个灯要加‘请’,关窗帘要说完整句式,老人记不住,孩子乱喊又容易误触发。”
“那就让它学会猜。”陈砚舟合上本子,眼神坚定,“不是瞎猜,是根据环境和习惯预判。”
两人穿过走廊,推开最里面那间会议室的门。技术团队五个人正围在电脑前,有人盯着代码,有人捏着额头揉太阳穴。
见他们进来,负责人老李抬起头,脸上带着一丝疲惫与不耐烦:“你们真要改语音指令?这可不是小事,之前那么多测试都白做了?”
“不只是改。”陈砚舟走到白板前,拿起笔,“是要让系统听懂‘开灯’两个字就能亮灯,而不是非得说‘小智,请帮我打开客厅主灯’。”
“这不行。”老李立刻反对,“我们现在用的是语义解析模型,越短越容易出错。上周测试删掉关键词后,‘开灯’被识别成‘关灯’,‘播放音乐’变成‘拨打电话’,差点打给客户总监。”
“噪音怎么办?”另一个程序员皱着眉头,手指不自觉地在桌上敲击着,“我家楼下狗叫一声‘嗷’,难道也让空调启动?”
“那就加过滤。”陈砚舟写下六个字:降噪、延迟、学习。
“声音进去先过一遍滤波,排除环境杂音;执行前留0.8秒确认时间,避免一句话里带出关键词就触发;再通过使用记录,记住每个人的说话习惯。”
老李冷笑,语气中透着质疑:“说得轻巧。这些功能分开做都稳定,合在一起跑,系统负载会翻倍。”
“那就分阶段上线。”陈砚舟转身面对他们,“第一阶段,只开放五个基础指令:开灯、关灯、调温、播放、停止。其他功能维持原逻辑不变。”
“然后呢?”
“第二阶段,按房间建白名单。客厅允许控制音响,卧室不能拨电话;第三阶段,加入用户习惯记忆,老人发音含糊也能识别准确。”
会议室安静了几秒。老李沉默了许久,内心十分纠结,一方面担心新方案风险太大,另一方面又觉得陈砚舟的思路确实有道理。最终,他摘下眼镜擦了擦,重新戴上:“你要上线这个版本,得重新提交审核流程。”
“可以。”陈砚舟点头,“今天就开始。”
接下来十二小时,办公室成了临时作战室。六台显示器同时运行模拟程序,录音样本不断导入,从标准普通话到方言口音,从孩子尖叫到老人慢语,一条条跑测试。
第一轮结果出来时,准确率只有72%。测试员小李皱着眉头,念着报告:“厨房里有人说‘开灯’,系统误识别为‘开水’,净水器连着出水三分钟。”周围的空气仿佛都凝固了,大家都意识到问题的严重性。
“声纹阈值设得太低。”陈砚舟盯着日志,“把人声频率范围收窄,去掉高频杂波。”
“那会不会漏掉小孩的声音?”技术员小张担忧地问道,眉头紧锁,眼神中透露出对方案可行性的怀疑。
“不会。”陈砚舟调出一组数据,耐心地解释道,“三到八岁儿童发音集中在中频段,只要不把下限卡太死就行。”
参数调整后,第二轮测试开始。
这次问题出现在卧室场景。用户说“关灯”,系统判断为“调暗灯光”,灯没关,只是变暗。
“上下文错了。”老李指着代码,“设备默认节能模式优先,听到‘关’字先尝试调光。”
“那就改优先级。”陈砚舟说,“只要是明确动词+对象结构,直接执行对应动作,别绕弯。”
“万一以后想扩展智能建议功能呢?”
“那是以后的事。”陈砚舟看着屏幕,“现在我们要的是简单可靠,不是聪明过头。”
第三轮测试凌晨三点开始。
这一次,他们用了三十组真实录音样本,涵盖不同年龄、性别、语速和发音习惯。
测试进行到第十八组,一位六十多岁的老人坐在沙发上,嘴里含着药片,声音发闷地说:“开……灯。”
系统延迟0.6秒,灯光缓缓亮起。
“成功了?”赵阳凑近看。
“等下一轮。”陈砚舟没松劲。
第二十三组,三岁男孩在床上蹦跳,大喊“开灯开灯开灯”,系统只响应第一次,后续自动屏蔽重复指令。
第二十七组,夫妻吵架,背景嘈杂,女主人吼了一句“关掉那个破灯”,系统识别出“关灯”并执行。
最后一组结束,屏幕上跳出汇总报告:
【测试完成:30组样本】
【有效触发:29次】
【误触发:1次(误将“烤箱好了”识别为“开灯”)】
【平均响应延迟:0.75秒】
【综合准确率:96.4%】
房间里静了几秒。
“真成了?”赵阳低声问。
陈砚舟没说话,拿起蓝笔在笔记本上划下一行字:“听得懂,不只是听得到。”
老李摘下眼镜擦了擦,重新戴上:“你要上线这个版本,得重新提交审核流程。”
“明天一早交材料。”陈砚舟合上电脑,“先内部灰度发布,选一百个种子用户试用。”
“广告那边呢?他们等着新视频上线。”
“等我们这边稳定三天,他们就可以推。”
赵阳看了眼窗外,天边刚泛白。“你打算睡几个小时?”
“不睡了。”陈砚舟把笔记本塞进包里,“等系统跑满七十二小时监测,再考虑休息。”
他打开手机,点进系统界面。
【任务完成:推动广告视频按用户导向调整】
【奖励发放:财富值+3000,技能卡“基础公关说服力”已解锁】
【新任务推送:收集三项家庭场景下的语音误触案例录像】
他滑动屏幕,找到另一条提示:
【科技项目管理】技能卡已激活,知识模块同步完成。
陈砚舟闭眼几秒,一段清晰的技术路线图浮现在脑海:模块划分、测试周期、容错机制、回滚预案。
他睁开眼,打开邮箱,新建一封邮件,收件人填上技术组全员。
标题:《语音指令简化三阶段执行方案》
正文第一行写着:
“第一阶段目标:锁定核心指令库,仅保留‘开灯’‘关灯’‘调温’‘播放’‘停止’五项基础操作,今日内完成代码隔离。”
敲完这一句,他抬头看向还在忙碌的团队成员。
“谁还有问题?”
没人回答。
老李点了根烟,站在窗边抽了一口。“你说的办法,其实我们去年就想试,但怕担责任,一直没敢动手。”
“现在不怕了?”陈砚舟问。
“因为你扛着。”老李吐出一口烟,“你要是不认这个责,这事根本推不动。”
陈砚舟笑了笑:“出了问题我来处理。你们只管把技术做到位。”
“行。”老李掐灭烟,“那咱们继续干。”
新一轮测试重启,后台日志开始滚动刷新。
陈砚舟坐回位置,打开录音文件夹,鼠标移向最后一个未命名的音频。
文件名是“User_03_test”。
他双击播放。
一个女人的声音响起:“小智,我想睡觉了。”
短暂沉默后,系统回应:“晚安模式已启动,灯光关闭,空调调至睡眠温度,安防系统开启。”
陈砚舟暂停播放,新建文档,输入标题:《自然语言触发场景收集表V1》。
他刚打完第一个字,手机震动。
广告公司发来消息:“新视频初剪完成,等待确认。”
陈砚舟回复:“等我们语音系统跑通最后一批数据,再给最终版。”
放下手机,他转头对赵阳说:“准备明天早会汇报材料,重点讲准确率提升过程。”
赵阳应了一声,打开ppt模板。
陈砚舟重新戴上耳机,点击播放。
女人的声音再次响起:“小智,我害怕。”
系统停顿一秒,轻声回应:“正在为您开启床头灯,并播放舒缓音乐,需要联系家人吗?”