0

Ich entwickle eine JavaScript-App, die webkitSpeechRecognition verwendet. In meinem Code und was ein Muss ist, habe ich interimResult als wahr gesetzt, so dass ein Benutzer sehen kann, wenn die App eine Übereinstimmung für die gesprochenen Wörter findet, aber ich selbst möchte die endgültigen Ergebnisse für etwas anderes verwenden und beide sollten angezeigt werden. Ich habe verschiedene Möglichkeiten versucht, dies zu tun, aber es hat nicht funktioniert, darunter zwei Funktionen aufrufen, wenn die Schaltfläche geklickt wird, aber das macht nur eine Funktion work.Here ist mein Algorithmus:So erhalten Sie das vorläufige Transcript und das endgültige Transcript in webkitSpeechRecognition

<script type="text/javascript"> 

var r = document.getElementById('result'); 
var btn = document.getElementById('btn'); 

btn.addEventListener('click', startConverting); 

function startConverting() { 
if ('webkitSpeechRecognition' in window) { 
var speechRecognizer = new webkitSpeechRecognition(); 
speechRecognizer.continuous = true; 
speechRecognizer.interimResults = true; 
speechRecognizer.lang = "en-GB"; 
speechRecognizer.start(); 

var finalTranscripts = ''; 

speechRecognizer.onresult = function(event) { 
    if (event.results.length) { 
    r.innerHTML = event.results[0][0].transcript; 

    var question = event.results[0][0].transcript; 
    } 
}; 

speechRecognizer.onerror = function(event) { 

}; 
} else { 
r.innerHTML = 'Your browser is not supported.If Google chrome,please upgrade!'; 
} 
} 

Ich habe nicht enthalten den Teil, den ich zwei verschiedene Funktionen aufrufen, wenn die Schaltfläche geklickt wird, das ist nur der ursprüngliche Code für die Konvertierung mit InterimResults True. Jede Hilfe wird geschätzt. Dank

Antwort

0

können Sie isFinal Eigenschaft verwenden, Zwischen- und Abschluss Transkripte zu trennen:

for (var i = event.resultIndex; i < event.results.length; ++i) { 
    if (event.results[i].isFinal) { 
    final_transcript += event.results[i][0].transcript; 
    } else { 
    interim_transcript += event.results[i][0].transcript; 
    } 
} 

siehe docs für weitere Einzelheiten.

+0

Ich habe das zuvor versucht, bevor Sie die Frage, aber nicht funktioniert, oder vielleicht überprüfe ich wieder nach der Google-Entwickler-Website. – Frank

Verwandte Themen