Javascript 安卓手机中的Ionic应用程序无法识别语音

Javascript 安卓手机中的Ionic应用程序无法识别语音,javascript,android,cordova,ionic-framework,speech-recognition,Javascript,Android,Cordova,Ionic Framework,Speech Recognition,我想按照教程设计一个ionic应用程序来监听语音命令 但是如果在我的电脑上使用var recognition=new webkitSpeechRecognition(),应用程序似乎可以识别麦克风上的语音命令//到计算机命令。但看到这一点,我将命令替换为 var recognition=newspeechrecognition();//到设备 但这在我的android设备上似乎不起作用。。 有没有人和我面对过同样的问题? 请分享您的想法和评论…谢谢超时解决方案不适合我。然而,我确实注意到,如果我

我想按照教程设计一个ionic应用程序来监听语音命令 但是如果在我的电脑上使用
var recognition=new webkitSpeechRecognition(),应用程序似乎可以识别麦克风上的语音命令//到计算机
命令。但看到这一点,我将命令替换为

var recognition=newspeechrecognition();//到设备

但这在我的android设备上似乎不起作用。。 有没有人和我面对过同样的问题?
请分享您的想法和评论…谢谢

超时解决方案不适合我。然而,我确实注意到,如果我在哔的一声后立即说话,我几乎得到100%的结果。如果找不到单词,我会向用户添加一个提示

以下是一个基于我的方法的示例:

var recording = false;
var spokenInput = '';

function startRecognition() {
    if (!recording) {

        recording = true;
        spokenInput = '';

        var recognition = new SpeechRecognition();

        recognition.onresult = function(event) {
            if (event.results.length > 0) {
                spokenInput = event.results[0][0].transcript;
            }
        };

        recognition.onend = function() {
            recording = false;
            if (spokenInput) {
               alert(spokenInput);
            } else {
                alert('For best results, try speaking immediately after the beep!');
            }
        };

        setTimeout(function() {
            recognition.stop();
        }, 6000); // Force stop  after 6 seconds

        recognition.start();

    }
}

终于可以破解了。诀窍是添加新的

工作守则如下:

index.html

<!DOCTYPE html>
<html>
    <head>        
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <link rel="stylesheet" type="text/css" href="css/index.css">
        <title>Speech Recognition</title>
    </head>
    <body>      
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <form>
        Click to speak <input type="button" value="speak" name="Download" id="speak" />  <br>
        <input type="text" id="q" name="q" size=60>
        </form>

        <script type="text/javascript" src="js/jquery.js"></script> 
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="js/app.js"></script>
    </body>
</html>

有人把它用在安卓棉花糖上了吗?我也遇到了同样的问题,但没有使用Ionic Though,我已经发布了我在Android 6设备上测试的代码。添加cordova媒体插件后试一试。添加媒体插件对我不起作用!还有其他解决方案吗?我仍然无法通过电话记录我的声音。我认为这是var recognition=new SpeechRecognition()的问题@我忘了添加start方法。固定的。
$(document).ready(function() {
    document.addEventListener("deviceready", onDeviceReady, false);
});

var recognition;
function onDeviceReady() {  

    $('#speak').click( function() {
        recognition = new SpeechRecognition();          
        recognition.onresult = function(event) {
            if (event.results.length > 0) {
                console.log(event.results[0][0].transcript);                
                q.value = event.results[0][0].transcript;
            }
        };      
        recognition.start();
    });
}