Voici pour celles et ceux qui souhaite installer Jarvis sous Rasberry Pi :
Ce code est totalement fonctionnelle, je l’utilise et vous pouvez le modifier à volonté, n’oubliez pas d’y intégrer votre code API :
intégrer ce code dans un fichier jarvis.py puis taper la commande suivnat après avoir installer python3
# python3 jarvis.py
- à partir de là, vous devrez die à voix haute : jarvis
- ensuite jarvis se mettra en mode écoute et vous pourrez lui demander ce que vous voulez.
- dans le code ci-dessous jarvis vous répondra à voix haute et par écrit.
import os
import openai
from dotenv import load_dotenv
import time
import speech_recognition as sr
import pyttsx3
import numpy as np
from gtts import gTTS
language = ‘fr’
openai.api_key = ‘CODE_API_KEY‘
load_dotenv()
model = ‘gpt-3.5-turbo’
Set up the speech recognition and text-to-speech engines
r = sr.Recognizer()
engine = pyttsx3.init(“dummy”)
voice = engine.getProperty(‘voices’)[1] # Ajustez cet indice pour sélectionner la voix française
engine.setProperty(‘voice’, voice.id)
def listen_for_wake_word(source):
print(“À l’écoute de ‘Jarvis’…”)
while True:
audio = r.listen(source)
try:
text = r.recognize_google(audio, language=”fr”)
if “jarvis” in text.lower():
print(“Mot d’activation détecté.”)
engine.say(“Bonjour Azais, comment puis-je vous aider ?”)
engine.runAndWait()
listen_and_respond(source)
break
except sr.UnknownValueError:
pass
def listen_and_respond(source):
print(“À l’écoute…”)
while True:
audio = r.listen(source)
try:
text = r.recognize_google(audio, language=”fr”)
print(f”Vous avez dit: {text}”)
if not text:
continue
# Send input to OpenAI API
response = openai.ChatCompletion.create(
model=”gpt-3.5-turbo”,
messages=[
{“role”: “user”, “content”: f”[En français s’il vous plaît] {text}”}
]
)
response_text = response.choices[0].message.content
print(response_text)
print(“Génération audio”)
myobj = gTTS(text=response_text, lang=language, slow=False)
myobj.save(“response.mp3”)
print(“Lecture audio”)
os.system(“vlc response.mp3”)
# Speak the response
print(“Lecture audio”)
engine.say(response_text)
engine.runAndWait()
if not audio:
listen_for_wake_word(source)
except sr.UnknownValueError:
time.sleep(2)
print(“Silence détecté, j’arrête de parler, j’écoute…”)
listen_for_wake_word(source)
break
except sr.RequestError as e:
print(f”Erreur lors de la demande de résultat; {e}”)
engine.say(f”Erreur lors de la demande de résultat; {e}”)
engine.runAndWait()
listen_for_wake_word(source)
break
Use the default microphone as the audio source
with sr.Microphone() as source:
listen_for_wake_word(source)

