如何实施"ok google"技术

How "ok google" technology is implemented

本文关键字:技术 google ok 何实施      更新时间:2023-10-16

我已经读过一些关于语音/语音识别的信息,我想知道它是如何工作的。例如,安卓上的"ok Google"和类似案例?

我想知道它是如何工作的(如何在连续提要中区分和分析一个单词,找到它是一个关键字)。如果我将其视为连续的文本提要,一种方法是隔离给定长度的提要,然后找到一个关键字。音频提要有点难以理解,因为单词之间没有纯粹的沉默(如前所述),并且隔离给定的长度并不能保证在所选子馈送的开头或结尾剪切关键字。它是如何工作的?

最后,如果

你们知道一些能够做到这一点的库(如果可能的话,C++),我很乐意实现一个"关键字观察器"。

谢谢。

关键字发现通常是通过动态编程实现的,您只需搜索包含关键字的最佳音频块,查看所有可能的开始和所有可能的结束。您需要同时寻找关键字和替代方案。基本上,在每一刻,您都会同时寻找关键字和其他声音,并且一旦关键字的概率高于您发出信号的其他语音的概率。误报率由阈值控制。您不需要专门处理静音,因为它被"其他语音"模型所涵盖。以下论文详细介绍了该算法:

http://eprints.qut.edu.au/37254/

要实现关键字发现,您可以查看pocketsphinx和pocketsphinx Android演示。它是一个C库,能够在连续流中发现单词。您可以在此处找到教程:

http://cmusphinx.sourceforge.net/wiki/tutorialpocketsphinx。

要从麦克风中发现关键字,您可以尝试一些简单的事情,例如

  pocketsphinx_continuous -inmic yes -keyphrase "ok google" -kws_threshold 1e-20

原始的"Ok Google"技术在以下出版物中进行了描述:

使用深度神经网络的小足迹关键字发现陈国果 卡罗莱纳 帕拉达 乔治·黑戈尔德

https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenSemester2201314/chen2014small.pdf

这是非常先进的技术,更重要的是,它需要大量特定的数据进行训练。