我遇到PocketSphinx的问题,每当我执行该代码时,应用程序会自动关闭。因为我已经试图弄清楚为什么它几个小时都不起作用,也许有人可以帮助我? :) 到目前为止代码看起来像这样,
主:
public class MainActivity extends Activity implements RecognitionListener {
public SpeechRecognizer recognizer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try
{
Assets assets = new Assets(MainActivity.this);
File assetDir = assets.syncAssets();
setupRecognizer(assetDir);
}
catch (IOException e)
{
}
}
setupRecognizer:
private void setupRecognizer(File assetsDir)
{
try {
recognizer = defaultSetup()
.setAcousticModel(new File(assetsDir, "en-us-ptm"))
.setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
.setRawLogDir(assetsDir).setKeywordThreshold(1e-20f)
.setBoolean("-allphone_ci", true)
.getRecognizer();
recognizer.addListener(this);
recognizer.addKeyphraseSearch("keywordsearch", "oh mighty Computer");
recognizer.startListening("keywordsearch");
} catch (IOException e) {
}
onPartialResult:
public void onPartialResult(Hypothesis hyp) {
if (hyp == null) {
}
TextView t = (TextView) findViewById(R.id.textviewcontrol);
t.setText("found");
recognizer.cancel();
}
也许有帮助:到目前为止应用程序启动(=>除了显示文本视图之外什么都没做)当我评论这些行时:
recognizer.addKeyphraseSearch("keywordsearch", "oh mighty Computer");
recognizer.startListening("keywordsearch");
当我只评论其中一个时,它不起作用。
所以可能有错误?我尝试导入所有内容,如在android的教程代码中,但我也可能在那里犯了一个错误。
谢谢,
Jannis
答案 0 :(得分:0)
删除" recognizer.cancel();"来自onPartialResult方法在您的应用关闭时使用它。
public void onDestroy() {
super.onDestroy();
recognizer.cancel();
recognizer.shutdown();
}