技术向善理念,藏在一条迟到三秒的字幕里
上周三下午,评审会。小周是听障同事,靠实时字幕跟会。主讲人说“这个方案先灰度”,字幕蹦出来:“这个方案先飞度”。有人笑了。他没笑。我坐他旁边,看到他手指在触控板上停了一下。说实话,那一秒我有点懊恼。我们组做语音识别有些年头了,热词表里居然没有“灰度”。技术向善理念?听起来像墙上标语。落到这儿,就是一条字幕别乱飞。对,就这么土。
字幕为什么会“飞度”?先拆开看
实时字幕不是魔法。声音进麦克风,先分帧,一帧几十毫秒;再提特征;声学模型猜音素;语言模型把音素拼成词;然后断句、加标点、上屏。要做“实时”,还得流式,边听边出。麻烦在缓冲:你要等一点上下文,准确率才稳;等多了,延迟上来。延迟三秒,开会的人已经换话题。字幕还在上一句。尴尬。
还有噪声、口音、专业词。会议室远场,混响像空房间。模型没听过“灰度”,就给你“飞度”。这不是模型坏,是概率。技术向善理念在这里不是让算法“善良”,是工程取舍:缓冲多长、热词怎么加、端侧还是云端、错误怎么让人一眼看出来。向善不是道德口号,是把默认值改到对用户更友好的一边。
听障人士使用实时语音转写字幕场景
语音识别前端降噪与麦克风阵列示意图
我自己的三条土标准
做任何“向善”功能,我先问:延迟用户能感知吗?错误用户能恢复吗?关闭容易吗?延迟超过两秒,对话就断。错误不能恢复,用户只能干瞪眼。关闭藏太深,等于强迫。听着很朴素。但比写十页伦理原则管用。
话说回来,技术向善理念也不是让工程师当圣人。它更像产品里的一个默认值、一个失败提示、一个可撤销按钮。小周后来跟我说,那天他其实猜到了“灰度”。但他不想每次都靠猜。嗯。这句话我记到现在。字幕别再飞度了,行吗?
字幕为什么会“飞度”?先拆开看
字幕为什么会“飞度”?先拆开看
实时字幕不是魔法。声音进麦克风,先分帧,一帧几十毫秒;再提特征;声学模型猜音素;语言模型把音素拼成词;然后断句、加标点、上屏。要做“实时”,还得流式,边听边出。麻烦在缓冲:你要等一点上下文,准确率才稳;等多了,延迟上来。延迟三秒,开会的人已经换话题。字幕还在上一句。尴尬。
还有噪声、口音、专业词。会议室远场,混响像空房间。模型没听过“灰度”,就给你“飞度”。这不是模型坏,是概率。技术向善理念在这里不是让算法“善良”,是工程取舍:缓冲多长、热词怎么加、端侧还是云端、错误怎么让人一眼看出来。向善不是道德口号,是把默认值改到对用户更友好的一边。
向善不是加个开关,是把默认值改对
很多团队做无障碍,思路是“加个无障碍模式”。按钮藏三层菜单里。用户找不到。对吧?我们后来改了:会议一开,字幕默认开;延迟默认压到一秒内;专业词默认从日程和文档里抽热词;错词不硬改,先用灰色下划线标出来,点一下能看候选。听障用户要的不是“有字幕”,是“跟得上”。 这里有个取舍:端侧模型小,隐私好,延迟低,但准确率掉;云端模型大,准,但网络抖、数据出设备。我们做混合:本地先识别,敏感段落脱敏再上云增强。会议室麦克风阵列做波束成形,把主讲方向拾起来。VAD 检测谁在说话,说话人分离把“张三说”“李四说”标上。断句比标点更重要——字幕一长串,读起来喘不过气。可读性不是准确率的附属品,它是另一条指标。
听障人士使用实时语音转写字幕场景
几个常见误会
误会一:技术向善等于免费公益。真不是。模型要跑,带宽要钱,维护要人。免费字幕如果延迟五秒、错字连篇,用户更受挫。误会二:准确率上去就万事大吉。错。听障用户跟我吐槽过:字都对,但说话人没标,三个人抢话,字幕像一锅粥。误会三:隐私可以后补。字幕流是会议内容,敏感得很。我们后来默认本地留存 24 小时,云端不留原文,只留脱敏特征。 还有方言。模型在普通话上刷分好看,到了西南官话就露怯。这不是加数据就能一夜解决。边界也清楚:大型线下讲座,人工速记加字幕员仍然稳;强噪声车间,语音字幕不如振动提示;老人不会开功能,得做开机引导。技术向善理念不是万能钥匙,它更像一条约束:先想清楚谁会被漏掉,再决定模型往哪儿调。
语音识别前端降噪与麦克风阵列示意图
我自己的三条土标准
我自己的三条土标准
做任何“向善”功能,我先问:延迟用户能感知吗?错误用户能恢复吗?关闭容易吗?延迟超过两秒,对话就断。错误不能恢复,用户只能干瞪眼。关闭藏太深,等于强迫。听着很朴素。但比写十页伦理原则管用。
话说回来,技术向善理念也不是让工程师当圣人。它更像产品里的一个默认值、一个失败提示、一个可撤销按钮。小周后来跟我说,那天他其实猜到了“灰度”。但他不想每次都靠猜。嗯。这句话我记到现在。字幕别再飞度了,行吗?