Code source de main
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
"""
try:
from NaoCreator.setting import Setting
# Setting(nao_connected=True, debug=True, nao_quest_v="2.1", ip="192.168.0.1")
Setting(nao_connected=True, debug=True, nao_quest_v="2.1", ip="169.254.88.3")
from NaoCreator.nao_scenario_creator import i_meet_you, nao_scenario_module
import NaoCreator.SGBDDialogue.creer as Dg
import NaoCreator.Tool.speech_move as Sm
import NaoCreator.SpeechToText.nao_key_reco as Nkr
from PlayerManager.player_manager import Player
from NaoQuest.questor import Questor
from NaoQuest.scenario import Scenario
import speech_recognition as sr
except Exception as e:
print e
[docs]def waitfor():
"""
Attend que l'utilisateur appuie sur le haut de la tête de nao
:return:na
"""
print u"Attente d'une réponse pour la prochaine quête"
Setting.naoLed.off("AllLeds")
Setting.naoLed.on("AllLedsRed")
while Setting.naoMemoryProxy.getData("MiddleTactilTouched") != 1:
pass
Setting.naoLed.off("AllLeds")
Setting.naoLed.on("AllLedsGreen")
[docs]def start_quest_mode(player_name):
"""
Fonction qui commence les quêtes de l'utilisateur
:param player_name: nom du joueur
:return:
"""
print "start load"
# On reprend la progression du joueur, s'il est nouveau on fait le scénario d'intro
# quest = Questor("IntroNaoGarden", player_name)
scn_end = False
while not scn_end:
quest = Questor("PlanterBulbe", Setting.CURRENT_PLAYER.player_name if Setting.CURRENT_PLAYER else player_name)
print "start lauch"
scn_end = quest.launch()
quest.player.save()
[docs]def active_traker():
"""
active le suivi des visages
:return:
"""
Setting.naoFaceTracker.startTracker()
[docs]def desactive_traker():
"""
désactive le suivi des visages
:return:
"""
Setting.naoFaceTracker.stopTracker()
[docs]def admin(face_name):
"""
Petite fonction secrète pour donner des ordres à Nao
:param face_name: nom du visage devant nao
:return:
"""
Sm.speech_and_move(u"Mots de passe".format(face_name))
password = Nkr.nao_key_word_recognition("cancer")
# bon mots de passe
if password != "":
Sm.speech_and_move(u"Bienvenu maitre {}! Attention il me faut de la place pour mes mouvements."
u"Pour arrêter dit moi fini ou fin. Quand je fini une action appuie sur ma tête"
u"Dis moi ce que tu veux "
.format(face_name))
posture_key_word = {"assis":"Sit", "debout":"Stand",
"coucher":"LyingBack", "couché":"LyingBack", "ventre":"LyingBelly",
"pause":"SitRelax", "méditer":"Crouch", "méditation":"Crouch"}
end_key_word = ["fin", "fini", "arret", "stop"]
desactive_traker()
while True:
try:
res = Nkr.nao_key_word_recognition(*posture_key_word.keys() + end_key_word)
if res in posture_key_word:
Setting.naoPosture.goToPosture(posture_key_word[res], 1.0)
elif res in end_key_word:
Sm.speech_and_move(u"Fin de la session admin !")
break
waitfor()
# que veux-tu de moi
text1 = Dg.Creer(Dg.Demande, Dg.DicoVide, 7, 8)
Sm.speech_and_move(u"{}".format(text1.out()))
except Exception as e:
print("Erreur: ", e)
active_traker()
else:
Sm.speech_and_move(u"Mots de passe incorrect. Auto destruction amorcée")
[docs]def i_know_you_local(face_name):
"""
Fonction appelée par nao creator quand nao connait la personne
:param face_name: nom de la personne
:return:
"""
# bonjour prenom
text1 = Dg.Creer(Dg.MotsUtiles, {"prenom": face_name}, 8, 37)
Sm.speech_and_move(u"{}".format(text1.out()))
# on regarde si le joueur n'existe pas déja dans les fichier
# menu(face_name)
start_quest_mode(face_name)
[docs]def i_meet_you_local():
"""
Fonction qui enregistre la personne que nao ne connait pas
:return:
"""
name = i_meet_you()
if name != "":
i_know_you_local(name)
[docs]def main():
"""
:return:
"""
Player("Roger").save()
Player("Thomas").save()
nao_scenario_module(i_meet_you_local, i_know_you_local)
if __name__ == "__main__":
# naoPosture.goToPosture("Stand", 1.0)
# start_quest_mode("swan")
main()
"""
r = sr.Recognizer()
with sr.Microphone() as source:
print(u"| Attente d'une réponse |")
audio = r.listen(source)
try:
msg = r.recognize_google(audio, language="fr-FR").lower()
print "=> %s" % msg
except sr.UnknownValueError:
print("[get_mic_input.record] Google Speech Recognition could not understand audio")
except sr.RequestError as e:
print("[get_mic_input.record] Could not request results from Google Speech Recognition service; {0}".format(e))
"""