Guten Tag, ich versuche momentan eine Sprachsteuerung in eine Website einzubauen , was soweit auch funktioniert,
allerdings stoße ich noch auf ein paar große Probleme:
- Auf Tablets muss jedesmal wenn auf der Website die API angesprochen wird, der Zugriff auf das Mikrofon zugelassen werden , kann man das irgendwie standardmäßig einstellen ?
-Momentan ist es so das die Sprachsteuerung bei $(document).ready getriggert wird, sich aber auch nach wenigen Sekunden wieder schließt da dann das onspeechend Event triggert , kann man das irgendwie verzögern oder modifizieren? Das Ziel ist es nämlich dauerhaft die Sprachsteuerung anzuhaben bis auch etwas gesagt wird.
-Wenn das onresult Event der SpeechRecognition ausgelöst wird , wird eine Methode aufgerufen in der ein Sound abgespielt wird , was allerdings in diesem Zusammenhang darin resultiert, das kein Sound abgespielt wird.
Ich habe die Vermutung das dies dadurch begründet ist, das ein Ton kommt wenn die Aufnahme gestoppt ist und dadurch das von mir aufgerufene Sound Event überschrieben wird.
Dies ist mein Code für die API
Dies ist nur der Codeaussschnitt von dem ich glaube, das er eine Rolle spielt.
Ich würde mich über Antworten freuen, wenn jemand Probleme hat meine Fragen zu verstehen werde ich gerne versuchen sie nochmal zu formulieren.
MfG Toxuas
allerdings stoße ich noch auf ein paar große Probleme:
- Auf Tablets muss jedesmal wenn auf der Website die API angesprochen wird, der Zugriff auf das Mikrofon zugelassen werden , kann man das irgendwie standardmäßig einstellen ?
-Momentan ist es so das die Sprachsteuerung bei $(document).ready getriggert wird, sich aber auch nach wenigen Sekunden wieder schließt da dann das onspeechend Event triggert , kann man das irgendwie verzögern oder modifizieren? Das Ziel ist es nämlich dauerhaft die Sprachsteuerung anzuhaben bis auch etwas gesagt wird.
-Wenn das onresult Event der SpeechRecognition ausgelöst wird , wird eine Methode aufgerufen in der ein Sound abgespielt wird , was allerdings in diesem Zusammenhang darin resultiert, das kein Sound abgespielt wird.
Ich habe die Vermutung das dies dadurch begründet ist, das ein Ton kommt wenn die Aufnahme gestoppt ist und dadurch das von mir aufgerufene Sound Event überschrieben wird.
Dies ist mein Code für die API
Code:
$(document).ready(function(){
var grammar = "JSGF V1.0; grammar actions; public <action> = hallo | test | zuruck | zurueck | weiter | nochmal | nocheinmal | noch mal | zurück;";
var recognition = new webkitSpeechRecognition();
var speechRecognitionList = new webkitSpeechGrammarList();
speechRecognitionList.addFromString(grammar,1);
recognition.grammars = speechRecognitionList;
recognition.last = "de-DE";
recognition.interimResults = false;
recognition.maxAlternatives = 1;
recognition.start();
recognition.onresult = function(event){
var word = event.results[0][0].transcript;
if( word === "Weiter" || word === "weiter"){
nextArticle(true);
}
else if( word === "zurück" || word === "Zurück"){
nextArticle(false);
'}
else if( word === "noch mal" || word === "noch einmal"){
Speak();
}
}
recognition.onspeechend = function(){
alert("stop");
recognition.stop();
}
})
//FUNCTION nextArticle(bArticle)
//Inkrement/Dekrement der Zählervariable
function nextArticle(bArticle){
if(bArticle == true){
globalCounter++;
PlaySound("sounds/Continue.wav");
} else if(bArticle == false && globalCounter>0){
globalCounter--;')
PlaySound("sounds/Back.wav");
$("#Feedback").css("display","none");
}
}
//FUNKTION Play Sound spielt einen sound ab
function PlaySound(soundObj){
var sound = new Audio(soundObj);
sound.play();
}
Dies ist nur der Codeaussschnitt von dem ich glaube, das er eine Rolle spielt.
Ich würde mich über Antworten freuen, wenn jemand Probleme hat meine Fragen zu verstehen werde ich gerne versuchen sie nochmal zu formulieren.
MfG Toxuas