连续语音识别Android

我正在看android在做语音识别。 该程序需要持续的语音识别。 图书馆只需要10个字左右。 我已经考虑使用谷歌API,但我不认为它会工作。 (我不能有任何东西覆盖屏幕)。 我一直在寻找其他方式,但似乎没有任何工作。 是否有可能使用Java的语音识别库,或者有什么其他的方式去做这个?

综上所述
1.需要连续的语音input
2.最多10个字
3.如有需要可以训练
4.程序概述 – 显示屏幕,等待语音input或触摸input,更新屏幕重复
5.不能覆盖屏幕上显示的内容

任何帮助,将不胜感激。
提前致谢

以下是Oracle对Java Speech API常见问题的解释。

我想你将不得不直接从手机的麦克风捕捉audio并将其传输到自己的识别服务。 Google识别API是作为一个Intent构build的,它启动了他们自己的识别对话框并给出了结果。 如果你想在没有UI的情况下持续识别,你必须自己构build这个function。

CMUSphinx最近在Android平台上实现了持续监听。 你可以在wiki页面find演示

你可以configuration一个或多个关键字来听,默认关键字是“oh mighty computer”。 您也可以configuration检测阈值。 目前支持的语言是美国英语和其他几种(法语,西class牙语,俄语等)。 你可以训练自己的语言模型。

听是简单的,你创build一个识别器,只是添加关键字点击search:

recognizer = defaultSetup() .setAcousticModel(new File(modelsDir, "hmm/en-us-semi")) .setDictionary(new File(modelsDir, "lm/cmu07a.dic")) .setKeywordThreshold(1e-5f) .getRecognizer(); recognizer.addListener(this); recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE); switchSearch(KWS_SEARCH_NAME); 

并定义一个监听器:

 @Override public void onPartialResult(Hypothesis hypothesis) { String text = hypothesis.getHypstr(); if (text.equals(KEYPHRASE)) // do something } 

您可以在文件系统上指定命令文件path,而不是单个关键短语:

  recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "commands.lst").toString()); 

哪个命令文件commands.lst包含每行一个命令:

  oh might computer ok google hello dude 

为了把这个文件放在文件系统上,你可以把它放到资产中,并在应用程序启动时运行syncAssets。

这是另一种方法(如果您打算使用Phonegap / Cordova)。

https://stackoverflow.com/a/39695412/3603128

1)连续收听。

2)不显示(占用)在屏幕上。

使用CMUSphinx库 :

  1. 它将在离线模式下工作
  2. 你可以把它命名
  3. 当你打电话给他的名字时,它会开始收听

几个月前我有同样的要求,决定写自己的图书馆 。

我相信它也应该符合你的要求;)