Commit a8ff0c70 authored by Martin LOISEAU's avatar Martin LOISEAU 🎄
Browse files

Adjust scenario xml file and edit README

parent 41386670
......@@ -4,7 +4,7 @@ Développé en juin 2020 dans le cadre d'un stage de 3ème année par Martin Loi
Le fonctionnement de la partie capture de QR a été adapté du projet QRLudo : https://github.com/univ-angers/QRLudo
Le moteur du jeu est basé sur un système de noeud/atomes.
Le moteur du jeu est basé sur un système de noeud/atomes, ou système à moteur de règles.
Chaque noeud représente une série d'action que le jeu effectuera (lire un texte à voix haute, capturer un QR code, etc). Chaque noeud possède égalemement une liste d'atomes. Lorsque tous les atomes de cette liste sont réunis par le joueur, le noeud se déclenche et effectue toutes ses actions.
Des actions communes sont donc celles d'ajouter ou de retirer un atome à la liste du joueur, qui représente son inventaire.
Seuls les noeuds ouverts (dans la liste open nodes) sont susceptibles de se déclencher. Seul le premier noeud de cette liste dont tous les atomes sont présents se déclenche.
......@@ -14,4 +14,12 @@ Le point d'entrée du scénario est la première node du scénario, qui ne doit
Ce projet est un prototype. La license permet la réutilisation du code sans contraintes.
Pistes d'amélioration :
- Détection plus souple des mots entendus en synthèse vocale en regardant leur présence dans la liste des results probables plutôt que de simplement comparer le mot avec le résultat le plus probable.
- Relancer la détection vocale si rien n'a été prononcé depuis un certain temps
- Parallélisation de l'exécution des noeuds
- Détection moins souple des QR codes pour éviter le scan d'un mauvais QR code lorsque plusieurs apparaissent à l'écran et amélioration de la mise au point
- Empêcher l'écran d'entrer en veille automatique
- Ameliorer l'action TTSReading pour proposer différents timbres de voix
Contact : martin.loiseau1@etu.univ-nantes.fr
\ No newline at end of file
No preview for this file type
métaux.png

51 KB | W: | H:

métaux.png

51 KB | W: | H:

métaux.png
métaux.png
métaux.png
métaux.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -19,6 +19,7 @@ class Listener implements RecognitionListener
result_available = false;
result_strings = null;
already_gave_results = false;
this.mainActivity = mainActivity;
Log.d("Debug2", "Listener created");
}
......@@ -40,7 +41,10 @@ class Listener implements RecognitionListener
{
Log.d("Debug", "onBufferReceived");
}
public void onEndOfSpeech() { Log.d("Debug", "onEndofSpeech"); }
public void onEndOfSpeech() {
Log.d("Debug", "onEndofSpeech");
}
public void onError(int error)
{
Log.d("Debug", "error " + error);
......@@ -50,6 +54,7 @@ class Listener implements RecognitionListener
{
if(already_gave_results) return; // this is a fix of an open issue on google's end https://issuetracker.google.com/issues/152628934'
else already_gave_results = true;
if (results == null) {
Log.d("Debug", "no speech detected " + results);
return;
......
......@@ -318,6 +318,8 @@ public class MainActivity extends AppCompatActivity {
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,2);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS,10000);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS,10000);
}
......@@ -338,8 +340,6 @@ public class MainActivity extends AppCompatActivity {
Log.d("Debug2", "Start listening speech recognizer");
sr.startListening(recognizerIntent);
}});
}
public void SetListeningResults(String result) // to display listening results
......
......@@ -24,9 +24,9 @@ Items:
</required_atoms>
<action_list>
<TTSReading>Il était une fois Kouzou, <!-- un petit garçon de huit ans qui voulait devenir sorcier. Pour ce faire, il allait tous les jours rendre visite au sorcier Kazar dont la hutte au Nord du village. Kazar était âgé, sévère mais toujours juste. Un jour il dit à Kouzou : "Je pars au rassemblement des grands sorciers. Tu t'occuperas bien de mon chat Ozgor mais surtout n'abîme rien ! Je compte sur toi. Je reviens bientôt".
<TTSReading>Il était une fois Kouzou, un petit garçon de huit ans qui voulait devenir sorcier. Pour ce faire, il allait tous les jours rendre visite au sorcier Kazar dont la hutte au Nord du village. Kazar était âgé, sévère mais toujours juste. Un jour il dit à Kouzou : "Je pars au rassemblement des grands sorciers. Tu t'occuperas bien de mon chat Ozgor mais surtout n'abîme rien ! Je compte sur toi. Je reviens bientôt".
Dès le premier jour Ozgor essaya de s'échapper et Kouzou lui couru après pour le rattraper. "Ozgor, attention tu vas casser quelquechose !", hélas trop tard ! En sautant de la bibliothèque, Ozgor fit tomber le miroir magique de Kazar le sorcier. Que faire ! Kouzou ouvrit le grimoir des sortilèges de Kazar : "Super, j'ai trouvé la formule qu'il me faut. Il ne me reste plus qu'à fabriquer un miroir et de réciter la formule pour le rendre magique. Kouzou trouve la recette de fabrication d'un miroir : d'abord fabriquer une glace de verre, puis la recouvrir d'une pellicule métallique. Enfin, fabriquer un joli cadre en bois.
Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTSReading>
Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas.</TTSReading>
<RemoveNode>1</RemoveNode>
<AddNode>2</AddNode>
</action_list>
......@@ -134,9 +134,9 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
<action_list>
<ClearAtoms>QRAtom</ClearAtoms>
<ClearNodes></ClearNodes>
<TTSReading>Kouzou arrive à la vieille mine de fer du village. <!--À l'intérieur, il pourra trouver le fer dont il a besoin. Mais sur la porte de la mine,
<TTSReading>Kouzou arrive à la vieille mine de fer du village. À l'intérieur, il pourra trouver le fer dont il a besoin. Mais sur la porte de la mine,
il y a un gros cadenas à 3 chiffres. Au dessus du cadenas, il est marqué : "Pour ouvrir le cadenas tu dois savoir multiplier 7 par 8".
Quel nombre doit saisir Kouzou pour déverrouiller le cadenas ?--></TTSReading>
Quel nombre doit saisir Kouzou pour déverrouiller le cadenas ?</TTSReading>
<CaptureSpeech></CaptureSpeech>
<AddNode>201</AddNode>
<AddNode>202</AddNode>
......@@ -185,7 +185,6 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
</action_list>
</node>
<node> <!-- Mine result checker (unused) -->
<id>250</id>
......@@ -363,7 +362,7 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
<ClearNodes></ClearNodes>
<ClearAtoms>QRAtom</ClearAtoms>
<TTSReading>Kouzou apporte chez le forgeron le sable et le fer qu'il a trouvé.
Le forgeron lui dit : Aides moi à faire un peu de tri parmis mes métaux.
Le forgeron lui dit : Aides moi à faire un peu de tri parmi mes métaux.
Peux tu me dire quel est le métal le plus léger de la liste ?</TTSReading>
<CaptureSpeech></CaptureSpeech>
<AddNode>402</AddNode>
......@@ -395,7 +394,7 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
<required_atoms>
<atom>
<type>SpeechAtom</type>
<content>or</content>
<content>l'aluminium</content>
</atom>
</required_atoms>
......@@ -403,7 +402,7 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
<ClearNodes></ClearNodes>
<ClearAtoms>SpeechAtom</ClearAtoms>
<TTSReading> Le forgeron semble content :
Merci, l'or est bien le métal le plus léger de la liste !
Merci, l'aluminium est bien le métal le plus léger de la liste !
Maintenant peux-tu me dire quel est le métal le plus lourd ?</TTSReading>
<CaptureSpeech></CaptureSpeech>
<AddNode>403</AddNode>
......@@ -417,14 +416,14 @@ Aide Kouzou à fabriquer le miroir afin de le sortir de ce mauvais pas. --></TTS
<required_atoms>
<atom>
<type>SpeechAtom</type>
<content>cuivre</content>
<content>le cuivre</content>
</atom>
</required_atoms>
<action_list>
<ClearNodes></ClearNodes>
<ClearAtoms>SpeechAtom</ClearAtoms>
<TTSReading> Bravo Kouzou, s'exclame le forgeon ! Prend ce miroir. Mais attention, tu auras besoin d'un joli cadre pour le maintenir.</TTSReading>
<TTSReading> Bravo Kouzou, s'exclame le forgeron ! Prend ce miroir. Mais attention, tu auras besoin d'un joli cadre pour le maintenir.</TTSReading>
<AddNode>2</AddNode>
<AddAtom>
<type>ItemAtom</type>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment