“Hey Siri” 背后的黑科技大揭秘!

2020-04-08 栏目:行业新闻 查看( )
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。
 
 
 
 
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。

 
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。

 

 
 
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。

 

作者 | Vishant Batta

 

以下是译文: 
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。

 

作者 | Vishant Batta

 

以下是译文: 
如今苹果手机可随时检测并回答“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!”这项功能虽然没有被广泛宣传,但它却是朝着自动化和提高移动电话易用性迈出的革命性一步。它也可以被视为一个很好的例子,说明一个小小的改变如何对用户体验产生巨大的影响,以及这些小小的革命性改变有时需要进行广泛的研究。

 

扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

郑重申明:河南金粲智能科技有限公司以外的任何单位或个人,不得使用该案例作为工作成功展示!