Skip to content

TuberculeP/Roshi-PI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roshi (x Jarjar)

Roshi est une application développée en Python3 permettant le contrôle vocal de Turtle Graphics à la voix.

Elle tourne grâce à Jarjar 1, un framework Speech-To-Function fait maison.

Prérequis & Dépendances

  • Python 3
  • PiP
  • SpeechRegognition : pip install SpeechRecognition
  • PyAudio : pip install PyAudio
  • Tkinter : pip install tk
  • Turtle Graphics (inclus avec Python3)
  • Un microphone

À propos de Jarjar 1

Jarjar est un framework cuisiné par Félix Laviéville en partant d’un projet original de Pierrick Chevron.

Sa structure et son utilisation sont similaires au système de routage Flask ou Symfony (PHP 8.1). Elle repose sur les décorateurs. Grâce à cela, il suffit d’associer un mot ou un groupe de mots à une fonction à exécuter :

from Jarjar import Jarjar # Récupérer la classe principale

app = Jarjar() # Changer la langue par défaut : lang=Jarjar.LANG_US

@app.map("bonjour")
def sayHello():
	print("Hello World")

@app.run()

# Maintenant à chaque fois que le mot "bonjour" est détecté, "Hello World" est affiché

Jarjar 1 propose également un système de catégorisation à travers les classes :

from Jarjar import Jarjar
app = Jarjar()

@app.map("affiche")
class StuffToPrint:
	
	@app.map("bonjour")
	def sayHello():
		print("Hello World")

	@app.map("au revoir")
	def sayBye():
		print("Goodbye !")

# sayHello et sayBye ne seront désormais exécutés que si "affiche" + clé est prononcé

@app.run()

Enfin, parlons de la détection de la voix. La voix est enregistrée via Microphone de SpeechRecognition et transformée en texte via Google. Par défaut, Jarjar prévient que l’enregistrement est en cours en affichant dans la console “> Listening”, “> Not Listening”.

Il est possible de changer ce comportement par défaut avec la méthode :

from Jarjar import Jarjar
import turtle as t

app = Jarjar()


# Voici un exemple d'override avec turtle

@app.override_status_behavior()
def status_behavior(status):
    if status:
        t.fillcolor("green")
    else:
        t.fillcolor("black")

# "Listening" correspondra à une tortue verte et "Not Listening" à une tortue noire

About

Un module de contrôle vocal pour Turtle Graphics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages