{"id":734,"date":"2023-09-04T15:55:26","date_gmt":"2023-09-04T15:55:26","guid":{"rendered":"https:\/\/sciencesetrecherches.eu\/?p=734"},"modified":"2023-09-11T10:53:10","modified_gmt":"2023-09-11T10:53:10","slug":"gpt-local-web-pi","status":"publish","type":"post","link":"https:\/\/sciencesetrecherches.eu\/?p=734","title":{"rendered":"GPT Local\/WEB\/Pi"},"content":{"rendered":"\n<div id=\"wp-block-themeisle-blocks-circle-counter-7f02fa78\" data-percentage=\"50\" data-duration=\"2\" data-height=\"100\" data-stroke-width=\"10\" class=\"wp-block-themeisle-blocks-circle-counter\"><div class=\"wp-block-themeisle-blocks-circle-counter-title__area\"><span class=\"wp-block-themeisle-blocks-circle-counter-title__value\">Skill<\/span><\/div><div class=\"wp-block-themeisle-blocks-circle-counter__bar\"><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici pour celles et ceux qui souhaite installer Jarvis sous Rasberry Pi :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce code est totalement fonctionnelle, je l&#8217;utilise et vous pouvez le modifier \u00e0 volont\u00e9, n&#8217;oubliez pas d&#8217;y int\u00e9grer votre code API :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int\u00e9grer ce code dans un fichier jarvis.py puis taper la commande suivnat apr\u00e8s avoir installer python3<\/p>\n\n\n\n<p class=\"has-text-color wp-block-paragraph\" style=\"color:#eb0a0a\"><strong># python3 jarvis.py<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00e0 partir de l\u00e0, vous devrez die \u00e0 voix haute : jarvis<\/li>\n\n\n\n<li>ensuite jarvis se mettra en mode \u00e9coute et vous pourrez lui demander ce que vous voulez.<\/li>\n\n\n\n<li>dans le code ci-dessous jarvis vous r\u00e9pondra \u00e0 voix haute et par \u00e9crit.<\/li>\n<\/ul>\n\n\n\n<div id=\"wp-block-themeisle-blocks-progress-bar-17de0f08\" class=\"wp-block-themeisle-blocks-progress-bar\" data-percent=\"50\" data-duration=\"2\"><div class=\"wp-block-themeisle-blocks-progress-bar__area\"><div class=\"wp-block-themeisle-blocks-progress-bar__area__title\"><span>Skill<\/span><\/div><div class=\"wp-block-themeisle-blocks-progress-bar__area__bar\"><\/div><div class=\"wp-block-themeisle-blocks-progress-bar__progress wp-block-themeisle-blocks-progress-bar__number\">50%<\/div><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">import os<br>import openai<br>from dotenv import load_dotenv<br>import time<br>import speech_recognition as sr<br>import pyttsx3<br>import numpy as np<br>from gtts import gTTS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">language = &#8216;fr&#8217;<\/p>\n\n\n\n<p class=\"has-vlog-acc-color has-text-color wp-block-paragraph\">openai.api_key = &#8216;<strong>CODE_API_KEY<\/strong>&#8216;<br>load_dotenv()<br>model = &#8216;gpt-3.5-turbo&#8217;<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Set up the speech recognition and text-to-speech engines<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">r = sr.Recognizer()<br>engine = pyttsx3.init(&#8220;dummy&#8221;)<br>voice = engine.getProperty(&#8216;voices&#8217;)[1] &nbsp;# Ajustez cet indice pour s\u00e9lectionner la voix fran\u00e7aise<br>engine.setProperty(&#8216;voice&#8217;, <a href=\"http:\/\/voice.id\">voice.id<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">def listen_for_wake_word(source):<br>&nbsp; &nbsp; print(&#8220;\u00c0 l&#8217;\u00e9coute de &#8216;Jarvis&#8217;\u2026&#8221;)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; &nbsp; while True:<br>&nbsp; &nbsp; &nbsp; &nbsp; audio = r.listen(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; try:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text = r.recognize_google(audio, language=&#8221;fr&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &#8220;jarvis&#8221; in text.lower():<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Mot d&#8217;activation d\u00e9tect\u00e9.&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.say(&#8220;Bonjour Azais, comment puis-je vous aider ?&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.runAndWait()<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listen_and_respond(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break<br>&nbsp; &nbsp; &nbsp; &nbsp; except sr.UnknownValueError:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pass<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">def listen_and_respond(source):<br>&nbsp; &nbsp; print(&#8220;\u00c0 l&#8217;\u00e9coute\u2026&#8221;)<br>&nbsp; &nbsp; while True:<br>&nbsp; &nbsp; &nbsp; &nbsp; audio = r.listen(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; try:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text = r.recognize_google(audio, language=&#8221;fr&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(f&#8221;Vous avez dit: {text}&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not text:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Send input to OpenAI API<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response = openai.ChatCompletion.create(<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; model=&#8221;gpt-3.5-turbo&#8221;,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; messages=[<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&#8220;role&#8221;: &#8220;user&#8221;, &#8220;content&#8221;: f&#8221;[En fran\u00e7ais s&#8217;il vous pla\u00eet] {text}&#8221;}<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response_text = response.choices[0].message.content<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(response_text)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;G\u00e9n\u00e9ration audio&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myobj = gTTS(text=response_text, lang=language, slow=False)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myobj.save(&#8220;response.mp3&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Lecture audio&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; os.system(&#8220;vlc response.mp3&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Speak the response<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Lecture audio&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.say(response_text)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.runAndWait()<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not audio:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listen_for_wake_word(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; except sr.UnknownValueError:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; time.sleep(2)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(&#8220;Silence d\u00e9tect\u00e9, j&#8217;arr\u00eate de parler, j&#8217;\u00e9coute\u2026&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listen_for_wake_word(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break<br>&nbsp; &nbsp; &nbsp; &nbsp; except sr.RequestError as e:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(f&#8221;Erreur lors de la demande de r\u00e9sultat; {e}&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.say(f&#8221;Erreur lors de la demande de r\u00e9sultat; {e}&#8221;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; engine.runAndWait()<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listen_for_wake_word(source)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Use the default microphone as the audio source<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">with sr.Microphone() as source:<br>&nbsp; &nbsp; listen_for_wake_word(source)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici pour celles et ceux qui souhaite installer Jarvis sous Rasberry Pi : Ce code est totalement fonctionnelle, je l&#8217;utilise et vous pouvez le modifier \u00e0 volont\u00e9, n&#8217;oubliez pas d&#8217;y int\u00e9grer votre code API : int\u00e9grer ce code dans un fichier jarvis.py puis taper la commande suivnat apr\u00e8s avoir installer python3 # python3 jarvis.py import [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":760,"comment_status":"closed","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[40,38,35,31,29,30],"tags":[52,53],"series":[],"class_list":["post-734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alpaca","category-dalai-ia","category-deep-fake","category-gpt","category-ia","category-intelligence-artificielle","tag-gpt-local","tag-pi"],"_links":{"self":[{"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/posts\/734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=734"}],"version-history":[{"count":3,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/posts\/734\/revisions"}],"predecessor-version":[{"id":828,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/posts\/734\/revisions\/828"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=\/wp\/v2\/media\/760"}],"wp:attachment":[{"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=734"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/sciencesetrecherches.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}