Использование грамматики с Google Web Speech API
Я использую GOOGLE Speech API для распознавания речи. Я применяю грамматику для распознавания некоторых конкретных имен, но в результате получается, что она не использует мою грамматику. Любое предложение для реализации Grammer, чтобы оно дало мне результат из моих данных. Когда я говорю на ритвике, это дает мне "ритвик", а не "ритвик". Я даже не уверен, что мы можем использовать грамматику с Web Speech API.
Вот мой код:
<!DOCTYPE html>
<html>
<head>
<title>Speech to text converter in JS</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css" />
<style type="text/css">
body{
font-family: verdana;
}
#result{
height: 200px;
border: 1px solid #ccc;
padding: 10px;
box-shadow: 0 0 10px 0 #bbb;
margin-bottom: 30px;
font-size: 14px;
line-height: 25px;
}
button{
font-size: 20px;
position: absolute;
top: 240px;
left: 50%;
}
</style>
</head>
<body>
<h4 align="center">Speech to text converter in JS</h4>
<div id="result"></div>
<button onclick="startConverting();"><i class="fa fa-microphone"></i></button>
<script type="text/javascript">
var r = document.getElementById('result');
function startConverting () {
if('webkitSpeechRecognition' in window){
//Initialise the Object for Chrome
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList
var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent
//Creating a names array and putting it to the grammer
var names = [ 'ritwik','anurag','rizwan'];
var grammar = '#JSGF V1.0; grammar names; public <name> = ' + names.join(' | ') + ' ;'
//Creating recognition and speechRecognition Object
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;
recognition.lang = 'en-IN';
recognition.interimResults = false;
recognition.maxAlternatives = 1;
recognition.start();
console.log('Ready to receive a color command.');
var finalTranscripts = '';
recognition.onresult = function(event){
var interimTranscripts = '';
var last = event.results.length - 1;
var color = event.results[last][0].transcript;
console.log('Result From Recognition: '+ color);
console.log('Confidence: ' + event.results[0][0].confidence);
interimTranscripts = color;
//Putting the result to the Input Field
r.innerHTML = finalTranscripts + '<span style="color:#999">' + interimTranscripts + '</span>';
};
recognition.onerror = function (event) {
};
}else{
r.innerHTML = 'Your browser is not supported. If google chrome, please upgrade!';
}
}
</script>
</body>
</html>