问题标签 [pocketsphinx-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xamarin - xamarin 绑定“Jsgf”未实现接口成员“IIterable.Iterator()
我正在尝试通过此链接实现新版本的 PocketSphinx 我创建了一个新的绑定项目并且有编译错误。
错误 CS0738 'Jsgf' 没有实现接口成员 'IIterable.Iterator()'。'Jsgf.Iterator()' 无法实现 'IIterable.Iterator()',因为它没有匹配的返回类型 'IIterator'。PocketSphinxDroid \PocketSphinxDroid\obj\Debug\generated\src\Edu.Cmu.Pocketsphinx.Jsgf.cs 9 活动
我尝试添加到 metatdata.xml 文件
或者
但仍然得到错误
android - pocketsphinx 中的未知 CMN 类型“批次”
我已阅读 cmusphinx 教程并成功运行了 pocketsphinx android 演示。
现在我想修改演示并添加对意大利语的支持。
在意大利模型下载页面(这里)我可以看到两个文件:
- cmusphinx-it-5.2.tar.gz:它包含模型参数;
- it.tar.gz:它包含字典。
我复制了字典/src/main/assets/sync
并创建了一个包含voxforge_it_sphinx.cd_cont_2000/src/main/assets/sync/it-ptm
内容的新文件夹来设置模型。然后我通过添加这样的意大利资源列表来修改文件:assets.lst
最后我修改了这样的代码:
项目构建成功,但资产同步后应用程序崩溃。这里记录的错误:
I/cmusphinx:INFO:pocketsphinx.c(145):从 /storage/emulated/0/Android/data/edu.cmu.sphinx.pocketsphinx/files/sync/it-ptm/feat.params 解析模型特定的特征参数
E/cmusphinx:致命:“cmn.c”,第 126 行:未知 CMN 类型“批次”
有人可以告诉我有什么问题吗?谢谢
android - 如何设置阈值以从 pocketsphinx-android 的列表中发现关键字?
我希望我的 Android 应用程序能够进行连续的关键字发现。我正在修改 pocketsphinx android 演示来测试我是如何做到的。我将这个列表写在一个名为 en-keywords.txt 的文件中,从cmudict-en-us.dict 中挑选单词:
在 setupRecognizer 方法中,我删除了每个搜索并仅将这个关键字搜索添加到识别器中:
最后我像这样修改了onPartialResult:
因此,每次找到具有非空假设的部分结果时,都会调用 onResult 并重新开始搜索。
我在运行的应用程序中看到的不是我所期望的:
- 如果我说的内容与我正在寻找的内容非常不同,那么 onPartialResult 每次说话时都有一个不为零的假设;
- 如果我在PartialResult 上说“嘿”,hypotesis 通常由多个单词组成;最坏的情况我说“嘿”并且方法理解“关于能量血液的彩虹”
- 然后调用 onResult 方法,但它打印的 Toast 文本与 onPartialResult 找到的最后一个文本不同;就像它是以一些不平凡的顺序完成的字符串的连接。
我尝试使用不同的关键字阈值,但我没有找到自己的方式......可能我错过了一些基本概念或一些配置参数......有人可以帮助我吗?
android - 找到多个匹配项时无法迭代 SegmentList
我正在修改pocketsphinx android 演示以测试基于关键字列表和相对阈值的连续关键字发现。
当我的 edu.cmu.pocketsphinx.RecognitionListener 实现的 onResult 方法被调用时,这个字符串
hypothesis.getHypstr()
将包含可能匹配的列表。
我在这里读到,要获得每场比赛及其权重,可以这样做:
但是,我运行的代码永远不会迭代段,例如 SegmentList 是否为空而hypothesis.getHypstr()
显示多个匹配项。
为了重现这种情况,我使用了这个阈值非常低的关键字列表,以便轻松找到更多匹配项:
我的onPartialResult
方法是什么都不做,而:
例如,如果我说“energies”,那么hypothesis.getHypstr()
="blood about energies blood" 但没有对 SegmentList 进行迭代:我可以通过在 onResult 方法的开头放置一个断点来查看它。
有什么建议吗?
谢谢
android - Android PocketSphinx:如何重置 Hypstr()?
我希望我的设备持续收听关键字。为此,我正在使用 PocketSphinx。我在 github 上找到了一个演示项目,它使 PocketSphinx 可以使用 Service 持续监听。
它第一次工作正常,但在那个假设之后。Hypstr() 一次又一次地返回相同的字符串。
我想清除 hypotheses.Hypstr() 中的字符串,以使这个应用程序对我正常工作。
这是我的服务类:
}
和 Logcat 启动服务后,以防万一有人需要:
Speechrecognitionservice V/ViewRootImpl: 调整 android.view.ViewRootImpl@3b6eb36: frame=[222,1596][857,1728] contentInsets=[0,0][0,0] visibleInsets=[0,0][0,0] reportDraw=true 02-17 14:27:52.937 10121-10135/com.hrupin.speechrecognitionservice I/libGameXtend: LUCID_1 (1487321872937) GameXtend 当前在手动模式下运行 02-17 14:27:52.937 10121-10135/com.hrup .speechrecognitionservice I/libGameXtend: LUCID_1 (1487321872937) GameXtend 当前在 no_save 保存电源状态下运行。02-17 14:27:52.937 10121-10135/com.hrupin.speechrecognitionservice I/libGameXtend: LUCID_1 (1487321872937) com.hrupin.speechrecognitionservice 当前与 GameXtend 一起运行,PS 参数 = 1。不支持 ICE。PS参数来源为PowerXtend配置02-17 14:27:52.937 10121-10135/com.hrupin。
注意:我想重置hypothesis.getHypstr() 字符串,这样我的程序下次可以正常工作。
我认为这足以解释,但如果我遗漏了什么,请在评论中告诉我。
谢谢你。
visual-studio - 我可以为 Xamarin.Android 项目使用哪种连续语音识别服务?
我正在寻找一种可以连续录制语音大约 10 分钟(没有任何中断)的服务。该服务应该能够检测到一些关键字(主要是数字)。
我目前正在使用 Android.Speech.SpeechRecognizer。它运作良好,但记录只能持续大约 10 秒。我试图设置一些“ExtraSpeechInput”参数如下但没有成功:
似乎我不是唯一一个对此有问题的人。所以我尝试制作一个 CMU PocketSphinx 包装器。尽管如此,我最终还是遇到了错误......
有人知道我可以使用哪种服务吗?
android - 演示项目中switchSearch()方法、KWS_SEARCH属性、startListening()方法参数是什么意思?
所有问题都与 android for pocketsphinx 的演示项目有关,在 CMUSphinx 的官方网站上给出。
我不明白该方法的switchSearch()
真正作用。方法是使用KWS_SEARCH="wakeup"
属性,这个属性有什么用?它不出现在语法文件 (.gram) 中。这个属性的目的是什么?该方法比较searchName
with KWS_SEARCH
,我不知道为什么。KWS_SEARCH
它还作为参数传递给startListening()
识别器对象上的方法。为什么?
我不明白如何使用 10000 毫秒的超时来改善结果。
这是switchSearch()
方法:
android - Pocketsphinx 在 android 上消耗太多电池
我正在使用 pocketsphinx 在服务中连续发现关键字。问题是,它会占用大量电池,使该应用程序对普通用户完全无法使用。
好吧,原始代码在 B4A 中,但它看起来是这样的:
对于关键字:
我什至排除了以下内容以减少 CPU 消耗。毕竟,我的主要目标只是找出关键字。
是否有任何其他方式可以使服务使用更少的电池?
android - pocketSphinx-android 用于 STT(语音转文本)而不是搜索关键字?
我正在尝试使用 pocketSphinx-Android 演示构建语音到文本应用程序。但演示中的代码是用于搜索特定单词,如数字、电话等。
我不是在寻找像 NGRAM_SEARCH 这样的关键字的搜索。只有一个关键字,我需要应用程序来听用户说什么并将其直接转换为文本。在CMUSphinx PocketSphinx - 识别所有(或大量)单词中,它使用关键字以外的另一个单词来激活接收输入来自用户。我需要一个简单的 STT 引擎,只需一个关键字即可激活,就像 google assistant 一样。提前致谢 :)
android - 即使没有说出来,Android 上的 PocketSphinx 也能识别单词
我正在为 android-23 使用 PocketSphinx。我想为我的一个应用程序编写一个离线助手。我已成功使用识别器.addKeyphraseSearch 来初始化助手。例如。在这种情况下,我说“你好”来初始化它。
这是我的全部代码
当我打招呼时,它会通过 tts 回复“是的先生”来正确响应。但在那之后它应该切换菜单并等待进一步的命令。在这种情况下,有两个。
但问题是它在切换菜单后不等待我的命令。
有时吐司会弹出“关于”或有时会出现“提前”,即使我不说它们。在那之后,该应用程序严重冻结,除了关闭它,我别无选择。
if 也尝试过除了 switch 和 case 之外的 if else 语句。但他们似乎没有多大帮助。我也尝试在 onResult 而不是 onPartialResult 中使用上述代码,但这也无济于事。
使用 sphinx 工具,我创建了自己的字典和语法文件。这是本例的语法文件内容。
我哪里错了?请帮我。