2

我想实现基于PocketSphinx的关键字发现为Android应用程序。PocketSphinx在Android中的自己的关键字发现

PocketSphinx对我来说是新的。我从他们的repo开始使用PocketsphinxAndroidDemo。 然后我已经在Eclipse中导入了项目,并在我的手机上构建并部署了演示应用程序。该演示确认了存取命令和数字的正确性。我没有安装任何其他库或工具。

现在我想识别我自己的关键字,并对CMUSphinx教程进行说明。因此,我使用“狮身人面像知识库生成器”创建了自己的DIC和LM文件,并已包含在项目的资产子文件夹中。胼我使用:

open browser 
new e-mail 
forward 
backward 
next window 
last window 
open music player 

我已经修改SpeechRecognizer如下:

config.setString("-jsgf", joinPath(dataDir, "dialog.gram")); // unmodified 
config.setString("-dict", joinPath(dataDir, "lm/2914.dic")); 
config.setString("-lm", joinPath(dataDir, "lm/2914.lm")); 
config.setString("-hmm", joinPath(dataDir, "hmm/hub4wsj_sc_8k")); // unmodified 

然后我又开始了应用,得到了以下错误:

11-21 12:48:18.758: E/cmusphinx(15521): "fsg_search.c", line 334: The word 'withdraw' is missing in the dictionary 

11-21 12:48:26.375: A/libc(15521): Fatal signal 11 (SIGSEGV) at 0x0000001c (code=1), thread 15557 (SpeechRecognize) 

我知道“撤回”是前字典的一个词。

我需要在语法文件中修改什么?

我也读过这个教程http://www.aiaioo.com/cms/index.php?id=28,并从那里使用声学模型和语音词典。我再次修改了SpeechRecognizer。应用程序启动时,我看到资源加载正确。但后来我得到了同样的错误。

有人可以请告诉我什么问题是? 我需要做些什么才能让我的点球跑步?

+1

可能存在'syncAsset'问题,例如如果文件已经存在,即使文件不相同,它也不会覆盖它。我们希望尽快解决所有问题。同时我建议您手动复制资源或编写自己的实现。 –

+0

你的意思是哪个资源,哪个目标? 我应该自己执行什么? – roschulze

+1

我的意思是位于'assets /'下的所有文件。目前,它们使用'syncAsset()'在目标设备上解压缩。我建议你现在手动复制它们。 –

回答

1

尝试将字典文件中的条目更改为ALL CAPS。尝试将其用于您的字典文件:

OPEN BROWSER 
NEW E-MAIL 
FORWARD 
BACKWARD 
NEXT WINDOW 
LAST WINDOW 
OPEN MUSIC PLAYER 

这对我有效。