首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >连续语音识别Android

连续语音识别Android
EN

Stack Overflow用户
提问于 2010-06-30 19:09:14
回答 3查看 21.3K关注 0票数 18

我正在考虑在android上做语音识别。该程序需要有连续的语音识别。这个库只需要10个单词左右。我考虑过使用Googles api,但我认为它不会起作用。(我不能让任何东西覆盖屏幕)。我一直在寻找其他方法,但似乎没有什么能行得通。有没有可能使用java的语音识别库,或者有没有其他方法呢?

总而言之

需要连续的语音input10单词最大可以训练如果需要节目概览-显示屏,等待语音输入或触摸输入,更新屏幕重复不能覆盖屏幕上正在显示的内容

任何帮助都将不胜感激。

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2010-10-05 01:52:20

我认为你必须直接从手机的麦克风中捕获音频,并将其流式传输到你自己的识别服务。Google recognition API旨在启动自己的识别对话框,并向您返回结果。如果您希望在没有UI的情况下连续识别,则必须自己构建该功能。

票数 8
EN

Stack Overflow用户

发布于 2014-05-09 00:29:59

CMUSphinx最近在安卓平台上实现了持续监听。您可以在wiki page上找到演示

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

监听很简单,你创建一个识别器,然后添加关键字识别搜索:

代码语言:javascript
复制
    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);

并定义监听程序:

代码语言:javascript
复制
@Override
public void onPartialResult(Hypothesis hypothesis) {
    String text = hypothesis.getHypstr();
    if (text.equals(KEYPHRASE))
      //  do something
}

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

代码语言:javascript
复制
    recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir,
            "commands.lst").toString());

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

代码语言:javascript
复制
  oh might computer
  ok google
  hello dude

要将此文件放到文件系统中,您可以将其放入assets中,并在应用程序启动时运行syncAssets。

票数 5
EN

Stack Overflow用户

发布于 2016-09-26 13:49:41

这里有另一种方法(如果你计划使用Phonegap/Cordova)。

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

1)它不断地监听。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3148603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档