首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于embeddedTTS的安卓系统离线语音识别

问基于embeddedTTS的安卓系统离线语音识别
EN

Stack Overflow用户
提问于 2013-02-14 09:18:57
回答 1查看 2.8K关注 0票数 1

我有兴趣看看离线语音识别是否可能使用Android上的谷歌TTS,并试图做到这一点,但没有成功。我正在开发一款Android应用程序,它要求用户对着手机说一个“魔术单词”,当手机听到正确的单词时,它就会做出反应。当我连接到网络时,语音识别工作得很好,但我需要让它离线工作。

我浏览了安卓文档,发现了这个: KEY_FEATURE_EMBEDDED_SYNTHESIS文档说要使用getFeatures(语言环境)来检索特性,以查看引擎支持哪些特性。它返回了两个特性:用于谷歌文本语音转换引擎的embeddedTts和networkTts,因此embeddedTts特性是可用的。在下面代码的第3行中,我根据Android文档启用了此功能,但它似乎没有效果。我还尝试将networkTts功能设置为false,但这也没有改变行为。每当我没有连接到数据网络时,我就会收到错误消息"Can't to Google在此刻“。

我希望这里有人能帮助我了解如何使用embeddedTts。

我正在运行安卓4.1.1的三星Galaxy S3上测试我的应用程序

谢谢。

相关代码如下:

代码语言:javascript
复制
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        HashMap<String, String> localSpeech = new HashMap<String, String>();
        localSpeech.put(TextToSpeech.Engine.KEY_FEATURE_EMBEDDED_SYNTHESIS, "true");
          if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
        // Fill the list view with the strings the recognizer thought it could have heard
        ArrayList<String> matches = data.getStringArrayListExtra(
                RecognizerIntent.EXTRA_RESULTS);
        if (matches.size() == 0)
        {
            tts.speak("Heard nothing", TextToSpeech.QUEUE_FLUSH, null);

        } else {
            String mostLikelyThingHeard = matches.get(0); 
            String magicWord = "Magic";
            if (mostLikelyThingHeard.equals(magicWord)) {
                //tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, null);
                tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, localSpeech);
            } else {
                tts.speak("The magic word is not " + mostLikelyThingHeard + " try again", TextToSpeech.QUEUE_FLUSH, localSpeech);
            }
        }

    }
    else {
        Log.d("APP", "result NOT ok");
    }

    super.onActivityResult(requestCode, resultCode, data);
}
EN

回答 1

Stack Overflow用户

发布于 2013-02-15 16:17:40

您将语音识别(也称为“语音识别”和“语音到文本”)与语音合成(也称为"TTS“和”文本到语音“)混为一谈。要回答您的问题,不可能使用语音合成API来实现语音识别。

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

https://stackoverflow.com/questions/14866303

复制
相关文章

相似问题

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