适用于Xamarin Android的Pocket Sphinx

问题描述 投票:0回答:1

我试图在pocketsphinx上为它的语音识别功能做一个Java绑定(我使用了aar方法),似乎我成功地完成了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绑定方法有效吗?

谢谢

c# android xamarin pocketsphinx
1个回答
0
投票

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

  1. 安装Android Studio和SDK
  2. 在Android Studio上打开pocketsphinx演示项目
  3. 确保pocketsphinx的所有assets文件夹都是相同的名称和路径
  4. 建立!
  5. assets.lst和.md5文件(针对每个文件)由Android Studio生成
  6. 将这些文件复制到visual studio项目
  7. 完成!

而且我创建识别器的方法也是错误的。它应该是 :

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

© www.soinside.com 2019 - 2024. All rights reserved.