使用PhoneGap的Android的启动语音识别(Start speech recognizer

2019-08-31 07:46发布

目前,我正在做的PhoneGap应用程序。 我想增强现实EN语音输入相结合。 有一个叫SpeechRecognizer为PhoneGap的插件,但我不能得到它的工作。

我的头:

<script type="text/javascript" src="cordova-2.6.0.js"></script>
    <script type="text/javascript" src="SpeechRecognizer.js"></script>
    <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", onDeviceReady, false);

        function speechOk() {
            alert('speech works');
        }

        function speechFail() {
            alert("speech doesn't work");
        }

        function onDeviceReady() {
            window.plugins.speechrecognizer.init(speechOk, speechFail);
        }

        $("#micButton").bind("touchstart", function() {     
            var requestCode = 4815162342;
            var maxMatches = 1;
            var promptString = "What do you want?";
            window.plugins.speechrecognizer.startRecognize(speechOk, speechFail, requestCode, maxMatches, promptString);
        });
    </script>

项目(config.xml文件)的图片:

提前致谢

Answer 1:

是不是你的错,该SpeechRecognizer.java有一个bug里面。

我有同样的问题,我只用更换解决它Speech Recognizer与插件和旧版本(如2.0.0 ),您可以下载它从github上 。

它的工作对我Phonegap 2.5.0 ,你猜它在2.6.0



Answer 2:

有几个问题。 首先,SDK版本是不正确的。 如果您使用新的科尔多瓦你也必须使用该插件的最新版本。 此版本需要SDK 15或更高。 (Android清单- > <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="17" /> 在此之后,由于某种原因,插件init不会返回任何东西。 我只是triggerd的:window.plugins.speechrecognizer.startRecognize(); 上的按钮功能单击,它执行。

JavaScript的(你需要的jQuery此代码):

    $("#micButton").bind("touchstart", function() {        
        var requestCode = 4815162342;
        var maxMatches = 1;
        var promptString = "What do you want?";
        window.plugins.speechrecognizer.startRecognize(speechOk, speechFail, requestCode, maxMatches, promptString);
    });

    function speechOk(result) {
        var match, respObj;
        if (result) {
            respObj = JSON.parse(result);
            if (respObj) {
                var response = respObj.speechMatches.speechMatch[0];
                $("#searchField").val(response);
                $("#searchButton").trigger("touchstart");
            } 
        }
    }

    function speechFail(m) {
        navigator.notification.alert("Sorry, I couldn't recognize you.", function() {}, "Speech Fail");
    }

“#micButton”是你必须按下启动Android的语音识别按钮

“#searchField”是一个输入字段至极从语音识别得到结果

由于MrBillau了很好的建议。



文章来源: Start speech recognizer on Android using Phonegap