2015-08-19 3 views
3

Я пытаюсь использовать annyang для преобразования речи в текст, но я столкнулся с некоторыми проблемами. Он работает, но есть еще кое-что, чего еще нет. Во-первых, я хотел бы знать, как я могу передать все, что сказал пользователь, в функцию предупреждения. Затем я хотел бы знать, как закончить функцию annyang, когда пользователь закончит говорить. И, наконец, я хотел бы знать, как сохранить разрешение и запретить запрос микрофона появляться снова и снова, как только он появляется один раз.Annyang преобразование речи в текст

<script> 
if (annyang) { 

    var commands = { 
    'Hello': function() { 
     alert("Success"); 
    } 
    }; 

    annyang.addCommands(commands); 

} 
</script> 

<input type = 'submit' value = 'listen' onclick = "annyang.start();"> 

ответ

4

Intead использования annyang для преобразования в текст, вы можете проверить себя с оригинальным Google speechrecognition демо

Original Demo

См исходный код выше, и вы будете легко делать то, что вы хотите с SpeechRecognition

Я рекомендую это, потому что annyang - это больше плагин для управления голосовыми сообщениями. С другой стороны вы можете использовать Artyom.js, если вы хотите использовать библиотеку для этого.

Артем предлагает легкий «диктант» объект для преобразования речи в текст быстро:

var settings = { 
    continuous:true, // Don't stop never because i have https connection 
    onResult:function(text){ 
     console.log(text); 
    }, 
    onStart:function(){ 
     console.log("Dictation started by the user"); 
    }, 
    onEnd:function(){ 
     alert("Dictation stopped by the user"); 
    } 
}; 

var UserDictation = artyom.newDictation(settings); 

// Start listening 
UserDictation.start(); 

// To stop 
//UserDictation.stop(); 

язык должен быть providen в методе initialize.

+0

может artyom работать на других браузерах, кроме хром? –

0

Я хотел бы знать, как бы я быть в состоянии передать то, что пользователь сказал, в функцию оповещения.

Вы можете сделать что-то вроде

<script> 
if (annyang) { 

    var commands = { 
    'Hello :variable': function(variable) { 
     alert(variable); 
    } 
    }; 

    annyang.addCommands(commands); 

} 
</script> 

variable является строка, что webspeech-апи признал.

Далее, я хотел бы знать, как закончить функцию annyang, когда пользователь закончит говорить.

continuous не соответствует действительности. Annyang автоматически остановит распознавание, когда пользователь закончит разговор.

annyang.start({ autoRestart: false, continuous: false });

Вы также можете добавить функцию обратного вызова, которая будет вызывать annyang, когда распознавание речи закончил:

annyang.addCallback('end', function() { // your code here});

И, наконец, я хотел бы знать, как чтобы разрешить и запретить запрос микрофона появляться снова и снова после его появления один раз.

Единственный способ предотвратить это, чтобы доставить сайт через https не http Там нет другого способа достичь этого. Также это улучшит скорость распознавания.

+0

Есть ли способ, чтобы передать то, что пользователь сказал в функцию оповещения без упреждающего слова перед ним? В принципе, не зная привет. – frosty

+0

К сожалению, я никогда не пробовал это раньше ... Вы пробовали просто добавить переменную без «привет»? '': variable': function (variable) {' –

+0

Нет, у меня нет. Но я попробую. – frosty

1
var anything = function(anything) { 
    alert(anything); 
}; 
var commands = { 
    '*anything': anything 
}; 

это работает, также не будет Allert определенных команд