【问题标题】:How "ok google" technology is implemented [closed]“ok google”技术是如何实现的[关闭]
【发布时间】:2015-03-10 07:28:13
【问题描述】:

我读过一些关于语音/语音识别的文章,我想知道它是如何工作的。例如,android 上的“ok Google”和类似情况?

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

最后,如果你们知道一些能够做到这一点的库(如果可能的话是 C/C++),我会很高兴实现“关键字检测器”。

谢谢。

【问题讨论】:

    标签: c++ c audio voice-recognition


    【解决方案1】:

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

    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”技术在以下出版物中有所描述:

    使用深度神经网络的小足迹关键字定位 陈果果 Carolina Parada Georg Heigold

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

    这是一项相当先进的技术,更重要的是,它需要大量特定的数据进行训练。

    【讨论】:

    • 我还没有阅读上述论文,但我很好奇是否有人知道如何为此优化电池使用?只为列出而运行线程/进程会极大地影响电池寿命
    • 您可以查看machinelearning.apple.com/2017/10/01/hey-siri.html,它包含更多详细信息。是的,他们使用特殊算法,而且非常省电。
    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多