c-如何实施“ ok google”技术
作者:互联网
我已经阅读了一些有关语音/语音识别的知识,我想知道它是如何工作的.例如,Android上的“ ok Google”及类似案例?
我想知道它是如何工作的(如何在连续的提要中区分和分析一个单词,以找到它是一个关键字).如果我将其视为连续的文本供稿,那么一种实现方法是隔离给定长度的供稿,然后找到一个关键字.音频源有点难理解,因为单词之间没有纯净的声音(如上所述),并且隔离给定的长度并不能保证在所选子源的开头或结尾处剪切关键字.它是如何工作的?
最后,如果你们知道一些能够做到这一点的库(如果可能,则为C/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”技术:
使用深层神经网络进行小字体关键词发现
Guoguo Chen卡罗来纳州Parada Georg Heigold
https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenSemester2201314/chen2014small.pdf
这是一项相当先进的技术,更重要的是,它需要大量特定数据进行培训.
标签:c-3,c,audio,voice-recognition 来源: https://codeday.me/bug/20191010/1885458.html