· 亲线团队 · 技术解析 · 12 min read
22种方言都能听懂:亲线语音识别技术如何让老人"说家乡话就行"
东北话、四川话、广东话、河南话……亲线如何让说方言的老人也能"说一句话就拨通"?本文用通俗的方式讲讲背后的技术。
一个真实的测试场景
我们的测试工程师小李,是东北人。他把亲线手机递给 72 岁的奶奶,说:“奶,你说一句’给小李打电话’试试。”
奶奶张嘴就来:“给小李打电话!“——一口标准的东北大碴子味,“电”字读成”垫”,“话”字带儿化音。
三秒钟,视频通了。
奶奶愣了一下,然后笑了:“这玩意儿行啊,东北话也能听懂?”
小李告诉她:“奶,它能听懂 22 种方言呢。”
奶奶说:“那你姥姥那四川话,它也能听懂?”
小李说:“能。”
奶奶说:“那你姥爷那广东话,也能?”
小李说:“也能。”
奶奶说:“那行,这玩意儿比你强,你四川话就听不懂。”
小李:……
为什么方言对老人这么重要
很多人觉得,普通话普及这么多年了,老人应该都会说。
但实际情况是:中国 60 岁以上的老人,超过 60% 日常主要说方言。
- 农村老人,几乎全部说方言
- 城市老人,很多也说方言,尤其是跟老伙计聊天的时候
- 即便是会说普通话的老人,一着急、一激动,脱口而出的还是家乡话
我们在调研中遇到过一位 75 岁的四川奶奶,她跟我们说:“我也会说普通话噻,但是一着急就说不利索,还是四川话顺口嘛。”
如果一款老人产品,只能听懂普通话,那对这位奶奶来说,就是**“关键时刻用不了”**。
老人最需要语音助手的时候,往往是着急的时候——身体不舒服了、想孩子了、遇到问题了。这时候,你让她”请说普通话”,她可能就放弃了。
所以,亲线从第一天起,就把方言识别作为核心功能来做。
不是”支持几种方言”的锦上添花,而是”22种方言全覆盖”的基本要求。
亲线支持哪些方言
目前,亲线支持以下 22 种方言:
| 方言区 | 代表方言 | 覆盖地区 |
|---|---|---|
| 东北官话 | 东北话 | 黑龙江、吉林、辽宁 |
| 北京官话 | 北京话 | 北京、河北北部 |
| 冀鲁官话 | 天津话、济南话 | 天津、山东、河北中南部 |
| 中原官话 | 河南话、西安话 | 河南、陕西、安徽北部 |
| 兰银官话 | 兰州话、银川话 | 甘肃、宁夏 |
| 西南官话 | 四川话、重庆话、武汉话 | 四川、重庆、湖北、云南、贵州 |
| 江淮官话 | 南京话、合肥话 | 江苏、安徽中部 |
| 晋语 | 太原话、大同话 | 山西、内蒙古西部 |
| 吴语 | 上海话、苏州话、杭州话 | 上海、江苏南部、浙江 |
| 闽语 | 闽南话、福州话 | 福建、台湾、海南 |
| 粤语 | 广州话、香港话 | 广东、香港、澳门 |
| 客家话 | 梅州话、惠州话 | 广东东部、江西南部 |
| 湘语 | 长沙话、湘潭话 | 湖南 |
| 赣语 | 南昌话、九江话 | 江西 |
基本上,只要你能叫得出名字的汉语方言,亲线都能听懂。
方言识别,难在哪里
很多人觉得,语音识别不就是”把声音变成文字”吗?普通话能识别,方言为什么不行?
其实,方言识别的难度,比大多数人想象的大得多。
难点一:发音差异大
同一个字,不同方言的发音可能完全不同。
比如”电话”:
- 普通话:diàn huà
- 东北话:diàn huà(带儿化)
- 四川话:diàn huà(“话”读成”fà”)
- 广东话:din waa(完全不同的发音)
- 上海话:di gho(入声短促)
- 闽南话:tian ue(声调不同)
如果语音模型只学过普通话,听到”din waa”,根本不知道是”电话”。
难点二:词汇差异大
不同方言,不仅发音不同,用词也不同。
比如”孩子”:
- 普通话:孩子
- 东北话:孩子、娃
- 四川话:娃儿、幺儿
- 广东话:仔、细路
- 上海话:小囡、囡囡
- 闽南话:囡仔、囝仔
老人说”给幺儿打电话”,模型如果只懂”孩子”,就识别不出来。
难点三:语料数据少
普通话的语音识别,有海量的训练数据——新闻联播、有声书、播客、影视配音……
但方言的语料数据,少得可怜。很多方言,几乎没有公开的语音数据集。
要训练一个能听懂 22 种方言的模型,需要大量的方言语料,而这些数据,需要自己去收集、去标注。
亲线是怎么做的
面对这些难点,亲线的技术团队用了一套”组合拳”。
第一招:多方言混合训练
我们没有为每种方言单独训练一个模型,而是把 22 种方言的语料混合在一起训练。
这样做的好处是:模型可以学到不同方言之间的共性——比如”电话”这个词,虽然发音不同,但语义是一样的。模型可以通过上下文和语义,推断出老人说的是什么。
就像一个人,如果他会听几种方言,再遇到一种新的方言,也能猜个大概。模型也是一样。
第二招:迁移学习 + 方言微调
我们先用大规模普通话数据训练一个基础模型,让它先学会”汉语”的基本规律。
然后,用每种方言的少量数据,对模型进行微调(fine-tuning)。
这就像教一个已经会说普通话的人学方言——不需要从零开始,只需要学差异部分。这样,用很少的方言语料,就能达到不错的识别效果。
第三招:联系人名字定制识别
这是亲线最巧妙的一点。
老人说”给儿子打电话”,模型不需要识别”儿子”这两个字是什么意思,只需要识别出”这是一个联系人称呼”,然后去联系人列表里匹配。
亲线会根据用户添加的家人名字,动态生成识别词表。比如老人添加了”儿子”、“女儿”、“大孙子”、“二闺女”,模型就会重点识别这些词。
这大大降低了识别难度——不需要模型听懂所有方言词汇,只需要听懂老人自己设置的那几个家人称呼。
第四招:本地轻量模型,离线也能用
很多语音识别产品,需要把声音传到云端服务器识别。这不仅有隐私问题,而且网络不好的时候就用不了。
亲线的唤醒词和联系人识别,用的是本地轻量模型,直接在手机上运行,不需要联网。
- 唤醒词识别:完全离线,手机本地处理
- 联系人称呼识别:完全离线,手机本地处理
- 只有视频通话本身,才需要网络
这意味着,就算家里 WiFi 断了,老人说”小亲小亲”,手机也能唤醒。只是拨不通电话而已,但至少能响应,不会让老人觉得”手机坏了”。
识别不准怎么办
即便是 22 种方言全覆盖,也不可能 100% 识别准确。老人说话不清楚、环境噪音大、口音太重,都可能识别失败。
亲线的做法是:识别不准,就多问一句。
如果模型对识别结果不确定,会用语音问老人:“你是要给儿子打电话吗?”
老人说”是”,就拨打;说”不是”,就再问:“那你要打给谁?”
这种多轮对话确认,比一次性识别更可靠。老人不会因为识别错了而打错电话,也不会因为识别不出来而不知所措。
另外,亲线还有学习功能——如果老人多次说同一个称呼但识别不准,模型会自动调整,越来越懂老人的口音。用得越久,越准。
技术的终点,是让老人”无感”
讲了这么多技术,其实对老人来说,这些都不重要。
老人不需要知道什么是”迁移学习”,不需要知道什么是”端到端加密”,不需要知道什么是”本地轻量模型”。
他们只需要知道:我想说什么,就说什么;我想找谁,就找谁。手机听得懂。
这就是技术的终点——让技术消失,让连接发生。
东北话也好,四川话也好,广东话也好,都只是老人表达思念的方式。而亲线要做的,就是不管老人用哪种方式,都能把这份思念,准确地送到另一端的家人那里。
鸣鹤在阴,其子和之。
不管鹤鸣的是哪种方言,子都能和上。
这就是亲线的方言识别,最朴素也最温暖的意义。
如果你家老人说的方言比较特殊,亲线暂时识别不准,欢迎通过官网”联系我们”告诉我们。我们会持续优化方言识别模型,让更多老人”说家乡话就行”。
亲线官网:www.qinxian.com | 客服电话:400-878-6641