首页 文章

连续语音识别Android

提问于
浏览
17

我正在寻找在android中进行语音识别 . 该计划需要持续的语音识别 . 图书馆只需要10个字左右 . 我考虑过使用Googles api,但我认为它不会起作用 . (我的屏幕上没有任何东西) . 我一直在寻找其他方式,但似乎没有任何效果 . 是否可以使用java的语音识别库,还是有其他方法可以解决这个问题?

综上所述
1.需要连续的语音输入
2.最多10个字
3.必要时可以训练
4.程序概述 - 显示屏幕,等待语音输入或触摸输入,更新屏幕重复
5.无法覆盖屏幕上显示的内容

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

6 回答

  • 1

    这里's Oracle'解释Java Speech API Frequently Asked Questions .

  • 1

    我认为您必须直接从手机的麦克风中捕获音频并将其传输到您自己的识别服务中 . Google识别API构建为Intent,可启动自己的“识别”对话框并为您提供结果 . 如果您想在没有UI的情况下进行持续识别,则必须自己构建该功能 .

  • 1

    CMUSphinx最近在Android平台上实现了持续监听 . 你可以在wiki page上找到演示

    您可以配置一个或多个要监听的关键字,默认关键字是“哦强大的计算机” . 您还可以配置检测阈值 . 目前支持的语言是美国英语和其他语言(法语,西班牙语,俄语等) . 您可以为您的语言训练自己的模型 .

    听力很简单,您可以创建识别器并添加关键字定位搜索:

    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
    }
    

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

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

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

    oh might computer
      ok google
      hello dude
    

    要将此文件放在文件系统上,您可以将其放入资源并在应用程序启动时运行syncAssets .

  • 5

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

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

    1)它不断倾听 .

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

  • 1

    使用CMUSphinx library

    • 它将在离线模式下工作

    • 您可以将其命名

    • 当你打电话给他的名字时,它会开始听

  • 6

    几个月前我有相同的要求,并决定自己编写library .

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

相关问题