问题标签 [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.

0 投票
1 回答
67 浏览

android - 运行 pocketsphinx-android-demo 时不支持的 major.minor 版本

我正在尝试在 android 中运行Pocketsphinx 演示程序

教程告诉我们直接从 Github 加载项目

为了在IDE中获取demo,请选择从VCS签出一个项目,选择GitHub并输入项目URL: https ://github.com/cmusphinx/pocketsphinx-android-demo 。

我试图这样做,但发现它git.exe丢失了,显然我需要安装一些其他软件才能直接从 Github 加载这个项目

我尝试从这里直接以 zip 文件下载 github 项目

我解压了zip文件,在里面找到了Androidstudio项目文件,但是当我尝试加载这个项目的时候发现它加载不出来,因为它没有gradle.properties文件

gradle.proprties从另一个正在工作的 Androidstudio 项目中复制到此文件夹中。这是我的gradle.properties文件的内容:

但是,现在当我加载项目时,我收到了这个错误:

错误:(1, 0) 原因:com/android/build/gradle/AppPlugin:不支持的 major.minor 版本 52.0

如果我在 IDE 中双击 build.gradle(项目:pocket-sphinx-demo-master),这就是我得到的:

我该如何摆脱这个错误?pocketsphinx 演示程序是否预设为仅适用于与我所拥有的不同版本的 Androidstudio?如果是这样,我如何找出哪一个,是否可以将其设置为与我当前的版本一起使用?我认为这不是我的 Androidstudio 安装的问题,因为我所有其他 android 程序都运行良好

0 投票
1 回答
512 浏览

android - 如何在 Android 中从 pocketsphynx 释放麦克风

我在 Android 上使用 pocketsphynx 库进行关键字定位,它的用途非常好。但是,当我尝试释放麦克风以在应用程序的另一个组件中使用它时,我无法这样做。我在 logcat 中收到以下错误:

当我尝试使用getUserMediafrom时会发生这种情况WebView。在这样做之前,我打电话给

从我的活动中,但这似乎没有帮助。

我也尝试过使用API .stop().removeListener(...)但问题仍然存在。请建议是否有办法释放对 pocketsphinx 正在制作的麦克风的保留,以便应用程序的其他组件可以再次使用麦克风。

任何帮助表示赞赏。

更新 1:添加了更多日志并查看了AudioPolicyManager的 Android 代码。似乎两个进程 (31292953) 试图通过startInput调用来竞争,一个 ( 31292) 关闭了另一个 ( 953)。显然,我可能误解了日志。

更新 2:我查看了 pocketsphynxSpeechRecognizer.shutdown方法,发现这是实际释放对象的方法。AudioRecord通过试验结束错误,我设法弄清楚如何调用shutdown而不是使应用程序崩溃(它必须在 onResult 中发生,在所有侦听器都被删除之后)。之后,我的另一个组件开始工作。我还没有机会确认是否可以在shutdown. 如果在那之后需要重新初始化(这需要很长时间),那将不是一个可接受的解决方法。

更新 3:我确认shutdown没有必要释放对麦克风的保留。stop在调用API之后,我设法制作了我的其他组件。关键似乎是停止pocketsphinx需要一些时间,其他组件应该等待。我使用的对我有用的事件是onResult. 此时另一个组件已经能够获得一个新的AudioRecord. 在那之后我还没有尝试重新启动pocketsphinx。

0 投票
1 回答
202 浏览

java - 如何在 PocketSphinx 中提取 MFCC 特征

我正在将 PocketSphinx Demo 项目用于我的热门词检测 Android 应用程序,现在我想提取 MFCC 功能。用 PocketSphinx 可以做到这一点吗?

另外,我读过很多关于在 Android 上使用 Sphinx 4 的帖子,有人说可以,有人说不能。我个人没有设法使它工作。谢谢您的帮助,

0 投票
1 回答
663 浏览

android - 使用语音识别打开应用程序 (PocketSphinx)

我想在 android 中创建一个语音识别应用程序并在服务中运行它,这样即使没有在应用程序中我也可以使用它。所以我寻找参考,我在 GitHub 中找到了一个演示应用程序。

这是网站https://github.com/ihrupin/SpeechRecognitionService

我下载了该应用程序,还阅读了文档,是的,它对我来说运行良好,它也在服务中运行,但我真正想要的是,例如,如果我说(打开 Facebook)它将打开已安装的 Facebook 应用程序。

我是使用 PocketSphinx 的新手。

这是主要活动

这是我的服务

这是引导接收器

我已经研究过这个话题,我发现我必须修改语法和字典,但我不知道该怎么做。有任何想法吗?

0 投票
1 回答
718 浏览

android - 了解pocketsphinx关键字列表文件格式

我正在使用西班牙语模型测试一个基于 GitHub 上可用演示的应用程序,我希望它在其中不断地侦听一小组关键字并采取相应的行动,但是我仍然是这个主题的业余爱好者。我现在的主要问题如下:

鉴于我当前的setupRecognizer方法

在同一个标​​识符字符串(我的代码中的“SEARCH”)下添加addKeywordSearchaddNGramSearch会发生什么?我是在提高认可度还是让它变得更糟?

在绝望的尝试中,我将字典缩减为只有我想被识别的单词,例如:

现在它被简化为只识别这些单词,但它行为不端,识别我没有说的单词。我猜 PocketSphinx 是基于概率的,因为我减少了字典,所以这些词被识别的概率很高。我对么?

同样为了提高我的准确性,我做了这个actions.list

虽然我不太确定这个值是什么意思。它在文档上说使用 1e-1 表示较小的单词,并增加到1e-50 表示较大的单词。这是什么符号,它是什么意思?

我真的很关心让它尽可能准确,我在正确的道路上吗?

提前致谢!

0 投票
1 回答
170 浏览

pocketsphinx - 假设参数 pocketsphinx

我在我的 Android 应用程序中使用 Pocketsphinx。我使用 addGrammarSearch(字符串名称,文件文件)识别语音。当周围有噪音时,Pocketsphinx 会捕捉到它并将其识别为语法中的单词或短语。但是这个词没有说出口。假设中是否有任何参数可以显示识别出的声音与语法中的单词有多少相似之处?有什么方法可以得到这个参数?我想过滤掉识别出来的声音,它的值很低,也就是说,它看起来不像语法中的单词。

0 投票
1 回答
381 浏览

android - pocketsphinx android - 为每个不同的口语返回相同的单词

我已经从Github下载了 pocketsphinx-android-demo并为我自己的目的做了一些修改。

my-en-us.dict为我的应用程序特定单词创建了一个新的(字典)文件,并在单词下方添加

然后,我login.gram用下面的代码创建了一个(语法)文件

然后,我像这样在我的 Activity 中初始化了识别器

其余代码与 pocketsphinx-android-demo 相同,用于启动识别器、听单词等。

启动 android 应用程序后,我说“hey smarty”以激活“login”字样的识别。当我说“login”时,它会返回“login”,但当我说“hello”、“settings”等任何其他词时,它只会返回“login”。

我不知道为什么会这样。我做错了什么,如果是,那么只添加特定单词以进行准确识别的正确方法是什么?

另一个问题是,如何检查“部分结果”或“结果”的准确率?

0 投票
0 回答
55 浏览

android - pocketsphinx NullPointerException in onBeginningOfSpeech() 但对象不为空

我正在使用下面的代码开始在我的设备上收听语音命令,但是一旦我打电话,SpeechRecognizer.StartListening()我就会收到 NullPointerException。

这是完整的错误:

Java.Lang.NullPointerException:尝试在空对象引用上调用接口方法“void edu.cmu.pocketsphinx.RecognitionListener.onBeginningOfSpeech()”

正如您在下面的代码中看到的那样,我正在检查以确保我的对象引用不为空。任何人都可以在这里阐明一下吗?

TIA

编辑:包括整个VoiceRecognizer班级以获得更多上下文:

0 投票
0 回答
114 浏览

android - PocketSphinx:如何识别关键字后跟动态词?

我一直在研究 PocketSphinx Android 语音命令项目,用户可以通过使用命令“open xxx”打开他们的 Android 上列出的应用程序(我将“open”作为关键字,xxx 是应用程序的名称),但遗憾的是它没有工作。

我的问题是,PocketSphinx 如何识别双词命令,其中第一个词是关键字,第二个词是动态词(用户可以说出任何应用程序的名称)。

声明关键字:

我尝试拆分()两个词的关键字(例如:打开相机)并成功打开相机,但我需要的是“打开 xxx”,以便用户可以定义他们想要的任何应用程序。这就是为什么我只将关键字更改为“打开”。

对此的任何帮助将不胜感激。我真的需要它来完成我的最终项目。谢谢你。

0 投票
0 回答
65 浏览

speech-recognition - 使用 processRaw 时,InSpeech 如何更新?

尝试edu.cmu.sphinx.pocketsphinx和 processRaw 来检测语音。

使用以下配置:

en-us.lm.bin 语言模型

en-us-ptm 声学模型

cmudict-en-us.dict 字典

还将 remove_noise 设置为 True 并将 samprate 设置为 8000

我想做一个 Ngram 搜索。

这是我使用的循环:

我什么时候打电话

谢谢。