“Hey Siri” 背后的黑科技大揭秘!
作者 | VishantBatta译者 | 苏本如,责编 | 伍杏玲出品 | CSDN(ID:CSDNnews)以下是译文:如今苹果手机可随时检测并回答“Hey Siri”命令,有...
作者 | Vishant Batta
译者 | 苏本如,责编 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
以下是译文:
如今苹果手机可随时检测并回答“Hey Siri”命令,有人可能会想,它是不是在随时记录我们的日常生活对话呢?
答案是否定的!
“Hey Siri”能做的并没有我们想象的那么多!
让我们先看看“Hey Siri!”的发展历史吧。
“Hey Siri!”作为预装语音助手Siri的附加功能,于2014年9月在iOS 8中发布。然而,在iOS 9(2015年9月)它升级了,只允许被用来识别用户的个性化语音。
而谷歌助手在2013年之前就已经有了这个功能,但是,在你的屏幕关闭时,它不能支持这个功能。即使是现在,很多安卓手机都不支持这个功能。
让我们来比较一下用户体验,如下图所示:
常规方式 vs.“Hey Siri!”
常规方式是这样的:用户拿起手机 -> 长按home按钮 -> Siri启动。
而在“Hey Siri!”方式下,用户只需说“Hey Siri!”,无需按键,就可以让Siri启动。
这样有一个好处是,因为当用户不方便使用手操作(如开车时),用户也可以使用手机的一些功能。
Siri的前身:M9运动协处理器
“协处理器”可以理解为具有有限功能和电池消耗的辅助处理器,用来支持即使在手机空闲(屏幕关闭)时也可以访问“始终开启”的功能。
M9运动协处理器是苹果协处理器家族的第三代产品,于2015年9月与iPhone 6s一起推出。得益于它基于ARM、64位的A9片上系统所具有的强大的处理能力和微量的电池消耗,这个苹果手机著名的“唤醒”功能才得以实现。M9有时也被人们描述为“嵌入到运动协处理器上的始终在线处理器(AOP - Always on Processor)”
“Hey Siri!”是如何工作的?
当你第一次启用这个功能时,它会提示你说一定次数的“Hey Siri!”。然后你的iPhone将这些声音保存起来,用做将来识别你的个性化声音的“触发键”。
这个个性化的“触发键”保存在协处理器中,即使你的手机处于空闲状态,协处理器也会侦听(而不是听到)落到麦克风上的所有声音。
因此,当声音落在麦克风上,并与“触发键”匹配成功后,协处理器就会激活主处理器开始录音(就像我们长按主屏幕按钮打开Siri一样)。然后,该录音被发送到服务器,并以类似于每个语音助手的过程进行解释。
想象一下这个过程,就好像你拥有数千把钥匙,你正试图找到哪把钥匙正好匹配你要打开的锁。
这里要注意的重要一点是,AOP处理器(A9)总是在“侦听”而不是“听”用户的声音。它就像一个婴儿,他一直在听人说话,但无法完全处理听到的话,只有在呼唤他的名字时,它才会被触发而开始工作。
M9运动协处理器于2015年9月与iPhone 6s一起发布。但正如本文一开始所说,“Hey Siri!”功能早于2014年9月就已经推出。那么,早期版本的iPhone 是如何能够“被动地”侦听呢?
好吧,如果你碰巧认识一个拥有iPhone 6的人,你可以检查一下“Hey Siri!”。即使你的手机处于空闲状态(屏幕关闭),该功能也只能在充电模式下工作。正如我们可以简单地推断的那样,它仅仅能在充电时获取少量的额外电量。看看下面iPhone 6 Siri的设置截图:
“Hey Siri!”背后的算法
用户的声音会以0.01秒为一帧的单位被采样下来,然后每次将20个这样的帧(0.2秒),连续输入到深度神经网络(DNN),神经网络将这些声音转换为概率密度函数,当该函数值超过最低阈值时,从而激活主处理器。
DNN训练
这里的阈值不是固定不变的,而是根据背景噪声而变化。因此,为了清楚地理解,你可以说DNN每时每刻都在计算阈值。
此外,当第一次记录你的语音样本并生成“触发键”时,实际上是在训练该DNN并定义权重以计算概率。
对于不同的口音,DNN的训练是不同的。例如,“Hey Siri”的发音有点像美国英语中的“Serious”,只是它没有标点符号。而“Hey Siri!”中的“ i”发音长度不同,而且带有一个惊叹号。
“Hey Siri”背后的数学计算
下面的内容是为所有机器学习爱好者准备的:)。
这是深度神经网络(DNN)模型:
DNN模型
总的概率函数如下:
其中:
F(i,t)是模型中状态i的累计分数
q(i,t)是声学模型的输出。这个输出是语音类别的对数分数,它与时间t附近给定语音模式的第i个状态有关
s(i)是和留在状态i相关的开销
m(i)是从状态i继续向后移动的开销
这里的s(i)和m(i)与定义“触发键”时训练的权重相关,可以这样假设:
s(i)- 由“触发键”的单个帧决定,取决于音调、音量等参数。
m(i)- 取决于“触发键”的频率,或简而言之速度,以及s(i)参数改变的大小和快慢。
例如:m(i)和 s(i)对埃米纳姆(Eminem)和阿黛尔(Adele)来说是非常不同的,因为埃米纳姆唱得更快(实际上要快得多),同时变化较小。而阿黛尔唱得更慢些,而且变化更大。
考虑到处理功率和电池消耗,对于协处理器(32层)和主处理器(192层),DNN中的层级大小是不同的。
“Hey Siri!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。
原文链接:https://hackernoon.com/how-does-hey-siri-work-without-your-iphone-listening-to-you-at-all-times-827932do
本文为 CSDN 翻译,转载请注明来源出处。
【END】
热 文 推 荐
☞微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!
☞瑞幸咖啡自曝虚假交易 22 亿,App 反冲 TOP 1
☞程序员造轮子的正确姿势
☞编程基础知识真的是九阳神功吗?
☞在Kubernetes上部署一个简单的、类PaaS的平台,原来这么容易!
☞旷视提双边分支网络BBN:攻坚长尾分布的现实世界任务 | CVPR 2020 Oral
☞2020年,这20个大家都认识的加密交易所过得怎么样?
![](https://i-blog.csdnimg.cn/blog_migrate/1fdb5a596886b43765d2677ce2f3244a.png)
你点的每个“在看”,我都认真当成了喜欢
更多推荐
所有评论(0)