- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 pocketsphinx 和树莓派来实现家庭自动化。我用支持的命令编写了一个简单的 JSGF 语法文件。现在,我想在命令之前使用激活短语,例如“嘿计算机”,以避免错误检测,并且仅在说出激活短语后才执行语音识别。
如果我没有理解错的话,pocketsphinx 支持两种语音识别模式:关键字识别模式和语言模型/JSGF 语法模式。
在 pocketsphinx FAQ在解决如何拒绝不合语法的单词的问题时,它说:
If you want to recognize several commands, you can use keyword spotting mode or keyword activation mode combined with the switch to grammar to perform actual operation.
我的问题是,从关键字识别模式到语法模式的“切换”到底是如何实现的? (我应该做什么来实现它?)。与此相关,“关键字发现模式”和“关键字激活模式”有什么区别?
谢谢!
最佳答案
引用自 tutorial :
开发者可以配置多个具有不同语法和语言模型的“搜索”对象,并在运行时切换它们,为用户提供交互体验。
有不同的可能的搜索模式:
每个搜索都有一个名称,并且可以通过名称引用,名称是特定于应用程序的。函数 ps_set_search
允许激活之前按名称添加的搜索。
要添加搜索,需要指向描述搜索的语法/语言模型。语法的位置特定于应用程序。如果只需要简单的识别,则添加单个搜索或仅使用配置选项配置所需的模式就足够了。
搜索的具体设计取决于您的应用程序。例如,您可能希望首先监听激活关键字,一旦识别出关键字,就切换到 ngram 搜索以识别实际命令。一旦您识别出该命令,您可以切换到语法搜索以识别确认,然后切换回关键字监听模式以等待另一个命令。
Python 中切换搜索的代码如下所示:
# Init decoder
config = Decoder.default_config()
config.set_string('-hmm', path.join(MODELDIR, 'en-us/en-us'))
config.set_string('-dict', path.join(MODELDIR, 'en-us/cmudict-en-us.dict'))
decoder = Decoder(config)
# Add searches
decoder.set_kws('keyword', 'keyword.list')
decoder.set_lm_file('lm', 'query.lm')
decoder.set_search('keyword')
import pyaudio
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=1024)
stream.start_stream()
in_speech_bf = False
decoder.start_utt()
while True:
buf = stream.read(1024)
if buf:
decoder.process_raw(buf, False, False)
if decoder.get_in_speech() != in_speech_bf:
in_speech_bf = decoder.get_in_speech()
if not in_speech_bf:
decoder.end_utt()
# Print hypothesis and switch search to another mode
print 'Result:', decoder.hyp().hypstr
if decoder.get_search() == 'keyword':
decoder.set_search('lm')
else:
decoder.set_search('keyword')
decoder.start_utt()
else:
break
decoder.end_utt()
关于speech-recognition - pocketsphinx - 如何从关键字识别切换到语法模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39069614/
我有兴趣了解有关模式识别的更多信息。我知道这是一个广泛的领域,所以我将列出一些我想学习处理的特定类型的问题: 在看似随机的字节集中查找模式。 识别图像中的已知形状(例如圆形和正方形)。 注意给定位置流
.NET 中有两个类似的用于语音识别的命名空间和程序集。我试图了解其中的差异以及何时适合使用其中之一。 程序集 System.Speech(在 System.Speech.dll 中)有 System
我正在玩 IBM Watson 的语音到文本演示:https://speech-to-text-demo.mybluemix.net/ 。我上传了一个有 2 个扬声器的音频文件。 Watson 返回的
我使用 Google Speech API 进行语音到文本的转换。但是,它会过滤掉诸如“呃,嗯,啊”等填充词。我有什么办法可以获得包含填充词的文本? 最佳答案 使用像 Kaldi 这样更灵活的 api
我正在使用 Microsoft 的认知服务。我有一个音频输入,需要识别多个发言者及其各自的文本。 根据我的理解,Speaker Rekognition API 可以识别不同的个人,Bing Speec
我需要训练一个双向 LSTM 模型来识别离散语音(从 0 到 9 的单个数字)我已经记录了 100 个说话者的语音。我接下来该怎么做? (假设我将它们拆分为单个 .wav 文件,每个文件包含一个数字)
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
为计算加权 sigmoid 交叉熵损失或数据集不平衡情况下的任何加权损失选择权重的一般逻辑是什么?问题域基于视觉/图像分类。 最佳答案 这篇 CVPR '19 论文是一个很好的引用: "Class-B
是否有任何软件能够获取音频文件并输出语音 (IPA) 文本? 我了解那里的大部分软件都直接将其转化为一种语言,但是否有一种“可教”的? 最佳答案 CMU Sphinx也许能够做你想做的。有几个不同的版
我最近使用说话人识别库 - ALIZE 进行编程。但是我有一些关于如何安装和执行演示的问题。有人可以帮我看看我的安装和执行顺序有什么问题。 我使用 Mac OS 系统: 1、下载lib ALIZE和L
我认为有一些算法可以评估绘制符号和预期符号之间的差异,或者类似的东西。任何帮助将不胜感激 :)) 最佳答案 您可以实现一个简单的神经网络来识别手写数字。最简单的实现类型是通过反向传播训练的前馈网络(它
执行此操作的最佳库是什么。并且是质量好足以依靠。不可能用说话者的声音训练系统或使用术语词典来改善结果。 最佳答案 在 Windows 上,您想使用 SAPI 接口(interface)(语音 API)
我找到了一些使用深度学习进行音频分类的论文和幻灯片。 一些研究使用频谱图作为深度学习模型的输入。 我想知道确切和实际的实现。 我找到了 this slide . 第 67 页 据我了解,第一层节点数为
我正在使用Google的语音识别API。我用Java创建了一个包装器(像这样:http://pastebin.com/zJEhnJ74);一切正常,但有时我会收到http 403或http 500,所
我正在尝试结合语音识别和说话人二值化技术来识别对话中有多少说话人以及哪个说话人说了什么。 为此,我使用 CMU Sphinx和 LIUM Speaker Diarization . 我可以分别运行这两
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试研究可用的语音识别引擎和 SDK,以开发支持 Windows CE 语音的应用程序。我遇到过 Nuance,但没有看到其他任何东西。如果可能的话,我更喜欢 .Net SDK,但我想大多数会是
我一直在对用于我的对象识别程序的正确算法进行大量搜索。但我发现的一切都有一些重大缺陷。 我的程序应该在遇到新对象时在线学习它们。当它遇到一个新对象时,在它上面有一个框并学习该对象(OpenTLD 完美
我正在尝试使用Pocketsphinx(。进行简单的语音到文本映射。语法非常简单,例如: public = (Matt, Anna, Tom, Christine)+ (One | Two | Th
我想在我的 Mac OS x 上实现一个通过麦克风接收语音的系统。我知道如果不训练系统,任意语音识别几乎是不可能的,所以我愿意将其限制为 10 个简单的句子。它必须高度准确地识别这 10 个句子中的哪
我是一名优秀的程序员,十分优秀!