问题标签 [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 投票
2 回答
722 浏览

pocketsphinx-android - 字典中缺少单词时的异常

我尝试了演示应用程序,它工作正常,但是当我尝试集成我自己的 .jsgf 语法文件时,当我尝试使用 .lm 文件对同一个字典进行相同操作时,它会出错,它工作正常。

我提到了PocketSphinx android 演示运行时异常链接,但它并没有帮助我

以下是代码片段:

以下是错误

我还意识到我使用的任何 .jsgf 语法文件都没有检测到字典中的最后一个单词。在我更改为我自己的 .jsgf 语法文件后它工作正常之前它给出了异常

0 投票
1 回答
78 浏览

android - 如何优雅地处理 PocketSphinx for Android 中的错误?

我已经用 PocketSphinx for Android 制作了一个程序,但是有一个问题。有时我会遇到错误,例如

然后整个程序崩溃。我知道为什么会出现错误,但是有没有办法优雅地处理错误?我更关心的是错误不会使程序崩溃,而不是修复错误。似乎我必须在 onError(Exception e) 方法中做一些事情,但我不确定是什么。

(这里有一个类似的问题,在 PocketSphinx Android 应用程序中处理错误,它说它已被处理,但我的仍然崩溃,尽管我确信我在 onError() 中没有正确地做某事)

我的日志如下:

编辑:我认为这只是一个标准的 RuntimeException ,我还不知道如何处理 - 我该如何处理它们?

0 投票
1 回答
871 浏览

android - 从基于字符串的语法中导入语法规则

我在Android中使用pocketsphinx。而且我已经能够将一个.gram文件中的规则导入另一个.gram文件,并且我已经能够通过指定 a 来使用规则String,但似乎无法将两者结合起来。也就是说,我无法从基于字符串的语法中导入基于文件的语法;我不断收到Failed to find grammar错误。

当将语法指定为字符串时:

字符串类似于:

我明白了

这是某种预期的,因为没有相对于搜索的基本文件。

我试过的:1)使用完整的包名和2)使用完整路径(我从pocketsphinx自己的资产同步实用程序中得到的)。

使用包名 如果我将import路径更改为

我明白了

有完整路径

我收到以下错误(注意包部分已转换为单独的目录):

在pocketsphinx的源代码中,我看到他们正在用斜线替换点:

我该怎么做才能让 pocketsphinx-android 知道在哪里可以找到我要导入的文件?我还没有找到函数 inSpeechRecognizer或 in Decoder。我在想也许有一种方法可以在配置中指定在哪里查找语法文件,但我似乎找不到它。SpeechRecognizerSetup在or中添加一些参数Config?或者,我可以将 pocketsphinx 中的命令行参数作为字符串参数添加到 Config/Setup 对象中吗?

0 投票
1 回答
1098 浏览

java - 如何在 PocketSphinx android 上实现 remove_noise?

我已经在我的 android 应用程序中使用 PocketSphinx 实现了语音识别,除了识别器太敏感之外一切正常。它使我的应用程序结果(语音转文本)无法正常工作。

我已经将阈值更改为我能得到的最低值,即 1f。

我使用英语和具有某些语法的有限库,并使用 Sphinx 知识库工具制作了自己的字典。

尽管我使用了 cmuSphinx 演示中的声学模型 en-us-ptm。

我做了一些研究,Sphinx 具有 remove_noise 功能,但我似乎可以找到它。还是有任何其他方法可以使 Pocketsphinx 识别器更好?

谢谢你。

0 投票
2 回答
1237 浏览

android - 用于 Android 听写应用程序的 PocketSphinx

我正在尝试使用Android 上的 PocketSphinx和 Keith Vertanen 的一种语言模型来实现“听写”功能。我已将示例修改为如下所示:

哪里lm_csr_5k_nvp_2gram.arpa来自 Keith Vertanen 网站上的 5K NVP 2-gram 下载。

我收到此错误:

线条

让我觉得lm_csr_5k_nvp_2gram.arpa文件格式不正确或其他什么。该文件如下所示:

至少看起来像这里的示例文件。

我唯一的另一个想法是扩展名可能是错误的,因为

语言模型可以以三种不同的格式存储和加载——文本 ARPA 格式、二进制格式 BIN 和二进制 DMP 格式。ARPA 格式占用更多空间,但可以对其进行编辑。ARPA 文件具有 .lm 扩展名。二进制格式占用的空间大大减少,加载速度更快。二进制文件具有 .lm.bin 扩展名。也可以在格式之间进行转换。DMP 格式已过时,不推荐使用。

这听起来像是文件应该被命名lm_csr_5k_nvp_2gram.lm而不是lm_csr_5k_nvp_2gram.arpa. 但是,我确实尝试重命名文件,但没有对异常进行任何更改。

这样做的正确方法是什么?

0 投票
1 回答
628 浏览

android - 如何在 Android Studio 1.5 中导入 Pocketsphinx 库?

我正在尝试将 PocketSphinx 导入使用 Android Studio 1.5 的项目中。 本页详细介绍了如何安装和使用该库。但是我偶然发现了以下步骤:

在 Android Studio 中,您需要将 jar 文件放在 app/libs 文件夹中,并将 jni .so 文件放在 app/src/main/jniLibs 文件夹中。

我的项目目录树不包含这些目录,我自己也无法创建它们。这是我的目录树:

目录树

该网页还提供了一个示例 android studio 项目,它工作得很好,但我认为它是为旧版本的 android studio 设计的,因为目录结构与我以前见过的任何应用程序完全不同(虽然我确实有几年其他领域的编码经验,我最近 2 或 3 个月才开始开发 android 应用程序)。这是它的目录树的样子: 目录树 2

(这次我没有展开整棵树)

最后一件事:我尝试使用“文件->新建->导入模块”导入库(可在此处下载)但是这样做会破坏项目(并且无法通过简单地单击“撤消”来修复) . 我得到的错误信息是:

V:\Documents\ButterflyMilk\SpeechRecDemo\pocketsphinx-android-master\build.gradle

错误:(7, 0) 在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@606a97f 上找不到属性“sdkDir”。打开文件

在代码视图的顶部,它现在永久显示:

Gradle 项目同步失败。基本功能(例如编辑、调试)将无法正常工作。

提前感谢您提供的任何帮助和建议!我还将很快再次注意到,提供的示例程序运行良好,并且我已经设法对其进行了调整并使用它。但是我仍然需要能够将库导入到单独的项目中。再次感谢

0 投票
0 回答
1260 浏览

android - 使用pocketsphinx将音频文件转换为文本文件

女士/先生们美好的一天!我是 android 应用程序开发的新手,我真的需要帮助。我正在开发一个 Speech-to-Text 应用程序,尽管它不是应用商店中常见的 STT 应用程序。我正在使用 pocketsphinx 进行离线语音识别和转换,以及 Android Studio IDE。

我的应用程序具有三个主要功能,它们是:

  1. 录制 - 用户可以在此处录制他/她的演讲。录制的语音将保存到设备的存储中。
  2. 图书馆 - 用户可以在这里看到他/她录制的语音和转换的音频到文本文件。还有转换功能,用户可以将他/她录制的语音转换为文本文件。
  3. 编辑 - 用户可以在这里编辑他/她的音频/文本文件。只有剪切、删除和修改(仅文本)是可用的功能。

我的主要问题是,实际上是否可以使用 pocketsphinx将录制的语音转换为文本?为了让它更容易理解,我尝试了pocketsphinx的演示,我通过它体验到的是,当你通过设备说话时,它会直接转换你所说的内容。不像我的想法,你可以录制你的演讲,并随时将其转换为文本。如果可能的话,我很困惑,如果是的话,有人可以告诉我/解释一下吗?如果不是,有人可以告诉我/向我解释遵循我的想法的其他方法吗?提前致谢!

0 投票
1 回答
458 浏览

java - 如何在android上使用pocketsphinx仅识别响亮的声音(单词)

我正在构建 android 应用程序,它必须一直(不断地)听一个声音并抓住一个关键词,例如帮助。我现在正在使用 MediaRecorder 来获得幅度,然后如果声音很大(例如 20000),我将调用 pocketsphinx 语音识别器。问题是,当语音识别器捕获(或没有)我无法跳回 MediaRecorder 的关键字时,应用程序崩溃了。当然,我的应用程序必须在后台(每天 24 小时)运行,所以我的实现在服务中,所以我的 MediaRecorder 在单独的线程中。我知道 Pocketsphinx 也可以检查振幅(尖叫声),但如何做到呢?Pocketsphinx(获取振幅)是触发语音识别器的更好解决方案吗?在我的课下,我将非常感谢任何帮助。

0 投票
1 回答
303 浏览

java - Android离线语音到文本比较

我正在尝试构建一个应用程序来教一些基本的英语单词。它需要能够捕获音频并将其转换为文本,我想离线进行。我知道pocketsphinx-android,但我的问题是pocketsphinx 试图将它与预定义集中的单词联系起来。这不是我想要的。我希望应用程序只将单词翻译成文本,不要试图找出它最像什么单词,然后对照单个单词进行检查。因此程序不应该试图找出用户想要表达的意思,而应该简单地比较它。我也希望它能够做相反的事情(将文本转换为语音)。是否有任何可用的 API 来执行此操作,或者 pocketsphinx 可以执行此操作?

0 投票
0 回答
878 浏览

android - 如何从袖珍狮身人面像android中获取输出文本

我正在开发 android 项目,我需要一个离线 Speech to Text API,我选择 Pocket sphinx android。我想要 sphinx 做的是返回转换后的文本输出,而不是用语音检查输入文本(应该传递给SpeechRecognizer类的“startListening”方法)。那么我该怎么做呢?