首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pocketsphinx在android上安装语音识别器时"LDA不兼容多流功能“

Pocketsphinx在android上安装语音识别器时"LDA不兼容多流功能“
EN

Stack Overflow用户
提问于 2017-09-13 17:12:06
回答 2查看 266关注 0票数 1

当我试图用俄语替代英语声学模型时,我遇到了一个问题:

代码语言:javascript
复制
recognizer = SpeechRecognizerSetup.defaultSetup()
                .setAcousticModel(new File(assetsDir, "ru"))

错误是:"java.lang.ClassNotFoundException: edu.cmu.pocketsphinx.SphinxBaseJNI“

我从sourceforge下载了所有的档案,并试用了每套音响模型: zero_ru.cd_ptm_4000、zero_ru.cd_cont_4000、zero_ru.cd_semi_4000、cmusphinx 5.2,方法是将它们粘贴在文件夹中.\model\src\main\assets\sync\en-assets,即pocketsphinx-android演示-主应用程序。当然,我也替换了英语词典。在此方法中配置speechRecognizer的“speechRecognizer”内容时发生了错误:

代码语言:javascript
复制
public SpeechRecognizerSetup setAcousticModel(File model) {
        return this.setString("-hmm", model.getPath());
    }

在pocketsphinx的SpeechRecognizerSetup.class中。错过了哪些课程?英语语音识别在我的KitKat 4.4.2上工作得很好

IDE: Android 2.33

分级版本: 3.3

Android插件版本: 2.3.3

应用程序的gradle.build:

代码语言:javascript
复制
android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'
    defaultConfig {
        applicationId "edu.cmu.sphinx.pocketsphinx"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 2
        versionName "1.1"
    }
    productFlavors {
    }
}

dependencies {
    compile project(':aars')
    compile project(':models')
    compile 'com.android.support:appcompat-v7:25.0.0'

编辑的日志:

代码语言:javascript
复制
 E/cmusphinx: ERROR: "lda.c", line 71: LDA incompatible with multi-stream features (n_stream = 4)
 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                       Process: edu.cmu.sphinx.pocketsphinx, PID: 23373
                                                       java.lang.RuntimeException: An error occured while executing doInBackground()
                                                           at android.os.AsyncTask$3.done(AsyncTask.java:300)
                                                           at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                                                           at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                           at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                                                           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                           at java.lang.Thread.run(Thread.java:841)
                                                        Caused by: java.lang.RuntimeException: new_Decoder returned -1
                                                           at edu.cmu.pocketsphinx.PocketSphinxJNI.new_Decoder__SWIG_1(Native Method)
                                                           at edu.cmu.pocketsphinx.Decoder.<init>(Decoder.java:43)
                                                           at edu.cmu.pocketsphinx.SpeechRecognizer.<init>(SpeechRecognizer.java:79)
                                                           at edu.cmu.pocketsphinx.SpeechRecognizerSetup.getRecognizer(SpeechRecognizerSetup.java:74)
                                                           at edu.cmu.pocketsphinx.demo.PocketSphinxActivity.setupRecognizer(PocketSphinxActivity.java:222)
                                                           at edu.cmu.pocketsphinx.demo.PocketSphinxActivity.access$000(PocketSphinxActivity.java:55)
                                                           at edu.cmu.pocketsphinx.demo.PocketSphinxActivity$1.doInBackground(PocketSphinxActivity.java:108)
                                                           at edu.cmu.pocketsphinx.demo.PocketSphinxActivity$1.doInBackground(PocketSphinxActivity.java:102)
                                                           at android.os.AsyncTask$2.call(AsyncTask.java:288)
                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                           at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                           at java.lang.Thread.run(Thread.java:841) 

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-20 07:01:55

因此,在我的工作配置中,我使用了来自v3.tar.gz“归档和声学模型的“v3.tar.gz“”字典,该字典位于该归档的"zero_ru.cd_ptm_4000“目录中。在我的应用程序中,我只留下了关键字激活搜索和基于语法的搜索。我不得不将ru.txt和menu.dict文件扩展名分别更改为.dict和.jsgf。从这一点出发,应用程序应该在适当放置库和资产的条件下工作,除了俄语之外,您没有留下任何其他单词来搜索和识别变量,并且没有忘记在build.gradle中添加ant脚本,就像解释了这里一样。

这些问题应该解决:

java.lang.RuntimeException: new_Decoder返回-1

java.lang.ClassNotFoundException: edu.cmu.pocketsphinx.SphinxBaseJNI

java.util.concurrent.ExecutionException: java.lang.RuntimeException: Decoder_setJsgfFile返回-1

09-14 12:29:40.436 10908-10944/edu.cmu.sphinx.ocketsphinx E/cmusphinx:错误:"kws_search.c",第528行:短语'запуск‘中的单词'запуск’在词典09-14 12:30:01.029 678-949/?E/ RemoteViews : ANR警告,RemoteViews只能使用一次,如果不能,它可能会导致ANR在主机,如劳彻,SystemUI。搜索键

09-14 12:06:09.113 2298-2339/edu.cmu.sphinx.ocketketsphinx E/cmusphinx:错误:第195行:第545276行:电话'o1‘在声学模型中丢失;单词'ёлочкой’忽略了09-14 12:06:09.113 2298-2339/edu.cmu.sphinx.ocketsphinx E/cmusphinx:错误:“auto.c”,第195行:第545277行:电话'o1‘在声学模型中被误解;单词'o1‘忽略了09-14 12:06:09.113 2298-2339/edu.cmu.sphinx.ocketsphinx E/cmusphinx:错误:“auto.c”,第195行:第545278行:电话'o1’在声学模型中丢失;单词'ёлочной‘忽略了09-14 12:06:09.113 2298-2339/edu.cmu.sphinx.poketsphinx E/cmusphinx: ERROR:“Dic.c”,第195行: 545279: Phone’o1‘在声学模型中误用;单词'o1‘忽略了09-14 12:06:09.113 2298-2339/edu.cmu.sphinx.ocketsphinx E/cmusphinx:错误:“auto.c”,第195行:第545280行:电话'o1’在声学模型中丢失;单词'ём‘忽略了09-14 12:06:09.114 2298-2339/edu.cmu.sphinx.poketsphinx E/cmusphinx: ERROR:“Dic.c”,第195行: 545281: Phone’o1‘在声学模型中误用;单词'ёмкий‘忽略了09-14 12:06:09.114 2298-2339/edu.cmu.sphinx.poketsphinx E/cmusphinx:错误:“auto.c”,第195行:第195行:电话’ёмкий‘在声学模型中丢失;单词'ёмкими’被忽略了。

票数 0
EN

Stack Overflow用户

发布于 2017-09-14 22:14:51

E/cmusphinx: ERROR:"lda.c",第71行: LDA与多流特性不兼容(n_stream = 4)

此错误意味着您忘记从模型文件夹中删除feature_transform,否则它将保留在sdcard上。模型文件夹中的额外文件会中断模型加载。你需要

  1. 清除手机上的sdcard上的模型文件夹。
  2. 确保在“资产”文件夹中没有额外的文件。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46203322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档