适用于Xamarin Android的Pocket Sphinx

时间:2018-03-01 08:53:06

标签: c# android xamarin pocketsphinx

我试图在pocketsphinx上为其语音识别功能(我使用aar方法)做一个Java绑定,似乎我成功完成了Java绑定部分(没有错误),但是在我调用后它崩溃了:

 Assets assets = new Assets(this);
 File assetDir = assets.SyncAssets();
 SpeechRecognizer recognizer = SpeechRecognizerSetup.DefaultSetup().SetAcousticModel(new File(assetsDir,"sync/en-us-ptm")).SetKeywordThreshold(1e-20f).SetDictionary(new Java.IO.File(assetsDir,"sync/cmudict-en-us.dict")).Recognizer;
 recognizer.AddListener(this);

我已经找到的是错误就行了:

 File assetDir = assets.SyncAssets();

SyncAssets()方法需要Assets.lst。如何自动生成Assets.lst,如: PocketSphinx for Android tutorial 或者有没有其他任何有效的java绑定方法?

谢谢

1 个答案:

答案 0 :(得分:0)

所以我尝试了几种方法,一种为我工作的方法是:

  1. 安装Android Studio和SDK

  2. 在Android Studio上打开pocketsphinx演示项目

  3. 确保pocketsphinx的所有assets文件夹具有相同的名称和路径
  4. 构建!
  5. 由Android Studio生成assets.lst和.md5文件(针对每个文件)
  6. 将这些文件复制到visual studio项目
  7. 完成!
  8. 而且我创建识别器的方法也是错误的。它应该是:

    SpeechRecognizerSetup.DefaultSetup().SetAcousticModel(new File(assetDir,"en-us-ptm")).SetKeywordThreshold(1e-20f).SetDictionary(new Java.IO.File(assetDir,"cmudict-en-us.dict")).Recognizer;
    

    (没有同步/)

    特别提示: 您必须将pocketphinx的所有资产放在同步文件夹中 Click to see the Image