如何实施"ok google"技术
How "ok google" technology is implemented
我已经读过一些关于语音/语音识别的信息,我想知道它是如何工作的。例如,安卓上的"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
这是非常先进的技术,更重要的是,它需要大量特定的数据进行训练。
- 如何使用Google Mock来模拟gettimeofday()
- 在Google Kick start中提交时出错
- CHECK(调用)函数在Google Colab中出错
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- C++ 关于指针取消引用的技术问题
- 如何使用 Google Test 向测试添加元数据 / 如何将数据从 Google Test 发送到 TestEven
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- 在macOS Mojave上发布BOOST unit_test_framework/Google测试
- Google Test for OpenCv c++
- 使用 Google Test 对自定义断言函数进行单元测试
- Google Cloud Pubsub Async Streaming API in C++
- 如何在 SEAL 3.1 中使用 CRT 批处理技术Microsoft?
- 如何在Google Cloud Functions上运行C++文件?
- 在jupyter notebook和google colab中使用.so
- 暴力破解技术解决以下问题
- gmock / google-mock发出警告,并且通过模拟异常未通过测试
- Google Or-Tools Glop:如何创建指向 const 对象的指针数组?
- 如何实施"ok google"技术