Synthese vocal et reconnaissance vocale 2
Au tout début, j'utliiser la bibliotheque mesppek mais c'est plus long a charger, la voie et tres haché. Je laisse toujour la possibilité de le faire, mais j'utilise en plus a la place de google translate, l'api google speech.
Je la mets dans le fichier chat. html à la place du code que j'avais fait pour google translate et ça donne ça :
// debut parle google speech api
{
textv = reply;
var u = new SpeechSynthesisUtterance();
u.text = textv ;
u.pitch = 1.1;
u.lang = 'fr-FR';
u.rate = 1;
speechSynthesis.speak(u);
setTimeout(function parles (){parent.gauche.document.getElementById("img").src ="../eg/images/avatarboucheparle.gif"},900);
setTimeout(function finparles (){parent.gauche.document.getElementById("img").src ="../eg/images/avatarbouchefixe.jpg"},affichage*110);
// setTimeout(parent.gauchemilieux.recognition.start(),affichage*210); // relance la recovocal
};
// fin parle google speech api
et c'est tout :)
Lancer un procedure de demarrage
il est tres interessant de lancer une sequence d'instruction au démarage du robot. pour par exemple, mettre en route la reconnaissance vocale, enregistrer la date, lire des cookies etc.
Pour ça, j'ai modifier le fichier chat.html
Entre les balise <head>
<script language="JavaScript">
// le script ci dessous sert a valider une instruction au demarrage
function submitform()
{
if(document.form1.onsubmit())
{
document.form1.submit();
}
}
// fin validation script demarrage
</script>
et dans le bloc suivant :
function on_load_success () {
$("#message").removeAttr("disabled");
$("#message").attr("placeholder", "Send message");
$("#message").focus();
// Now to sort the replies!
rs.sortReplies();
document.form1.message.value="demarrage1";javascript:submitform(); // lance l instruction demarrage1 a la fin du chargementsetTimeout(function(){document.form1.message.value="demarrage2";javascript:submitform();},2000); // permet de lancer l instruction demarrage2 apres 2 secondes
}
J'ai ajouter les lignes aprés rs.sortReplies();
la ligne demarrage2 devient obsoléte avec la fonction autovalidation trouvés ce matin.
Si l'on veut par exemple que le robot retienne la date au demarrage, et qu'il lance la reconnaissance vocal, il suffira de mettre le code suivant dans un fichier rivescript :
+ demarrage1
- {@autovalid demarrage11} {@autovalid demarrage2} {@autovalid demarrage termine}
+ demarrage11
- {@memo date}
// attention ne rien mettre comme fonction avant l enregistrement de la date sinon ca l enregistre pas comme il faut
+ demarrage2
- {@debut recovocal} \n demarrage termine
+ demarrage termine
- \s // ce demarrage3 permet d effacer toutes les instruction precedentes et de laisser seulemnt le message demarrage termine