YASA

AI-assistentti: Rakenna oma JARVIS

AI assistant

Historical Python learning example: this article uses older library and API interfaces and has not been validated as a current installation guide. Check the current documentation before running it. Speech recognition may send audio to an external service, conversation history is stored locally by this sample, and model responses still need verification.

Oletko koskaan haaveillut omasta henkilökohtaisesta tekoälyavustajasta Tony Starkin JARVIS keinoälystä Iron Man Elokuvista? Vähän Python ja vähän tietotaitoa, niin voit muuttaa unelman todeksi. Tässä aloittelijaystävällisessä oppaassa opastamme sinut oman prosessin läpi AI-avustaja JARVISin inspiroiman keinoälyn luomiseksi.

Opit kuinka se kuuntelee äänikomentojasi, ymmärtää mitä sanot ja jopa muistaa menneet keskustelut – kaikki yksinkertaisella Python koodilla.

AI-assistentti: Tapaa JARVIS

Tekoälyassistenttimme, hellästi nimeltä JARVIS (Vain melko älykäs järjestelmä), on suunniteltu uskolliseksi digitaaliseksi kumppaniksesi. Se kuuntelee äänikomentojasi, vastaa kyselyihisi ja auttaa sinua tehtävissä aivan kuten todellinen avustaja tekisi.

JARVIS listens to your default microphone and reads model-generated replies aloud; those replies can be incorrect.

Miten JARVIS toimii:

  1. Kuuntelee sinua: JARVIS aloittaa kuuntelemalla äänikomentojasi Pythonin SpeechRecognition-kirjaston avulla. Kun puhut, se tallentaa sanasi laitteen mikrofonin kautta ja muuntaa ne tekstiksi.
  2. Komentojesi ymmärtäminen: Kun JARVIS kuulee sanomasi, se käyttää JARVISin GPT (Generative Pre-trained Transformer) -malleja ymmärtääkseen komentosi kontekstin. Nämä mallit on koulutettu käyttämään valtavia määriä tekstidataa, minkä ansiosta ne voivat luoda vastauksia, jotka ovat järkeviä sanomasi perusteella.
  3. Dialogiin osallistuminen: JARVIS käy vuoropuhelua kanssasi, vastaa kyselyihisi äänipuheella ja tarjoaa hyödyllistä tietoa tai apua. Se on kuin keskustelisi asiantuntevan ystävän kanssa, joka on aina paikalla ojentaakseen kätensä.
  4. Muistaa keskustelut: JARVISin erottaa muista sen kyky muistaa menneet keskustelut. Se tallentaa keskusteluhistorian JSON-tiedostoon, jolloin se voi ylläpitää kontekstia ja tarjota yksilöllisempiä vastauksia ajan myötä.

Keskustelujen tallentaminen

Aina kun käytät JARVISia, se tallentaa keskusteluhistorian JSON-tiedostoon tietokoneellesi. Tämä tiedosto toimii muistipankkina, joka tallentaa tiedot vuorovaikutuksistasi, jotta JARVIS voi palata niihin myöhemmin. Se on kuin olisi pitänyt kirjaa kaikista keskusteluistasi tekoälyavustajan kanssa.

Varmista, että Python-tiedostosi on omassa hakemistossaan, johon kaikki muut tarvittavat tiedostot luodaan.

Keep your API key outside the source code. Load it from your local environment and never publish it.

Luo OpenAI API-avain

Python-koodi:

import os
import json
import speech_recognition as sr
import openai
import pyttsx3

# Set up your OpenAI API key
openai.api_key = os.environ['OPENAI_API_KEY']

# Initialize the recognizer
recognizer = sr.Recognizer()

# Initialize the text-to-speech engine with SAPI5 driver (Windows specific)
engine = pyttsx3.init(driverName='sapi5')

# Set properties for the text-to-speech engine (optional)
engine.setProperty('rate', 150)  # Speed of speech
engine.setProperty('volume', 1)   # Volume level (0.0 to 1.0)

# Get the current working directory
script_dir = os.getcwd()

# File to store conversation history
CONVERSATION_FILE = os.path.join(script_dir, 'conversation_history.json')

# Load conversation history from file
def load_conversation_history():
    if os.path.exists(CONVERSATION_FILE):
        with open(CONVERSATION_FILE, 'r') as f:
            return json.load(f)
    return []

# Save conversation history to file
def save_conversation_history(conversation_memory):
    with open(CONVERSATION_FILE, 'w') as f:
        json.dump(conversation_memory, f)

# Load conversation history
conversation_memory = load_conversation_history()

# Function to listen to the microphone and convert speech to text
def listen_microphone():
    with sr.Microphone() as source:
        print("Listening...")
        recognizer.adjust_for_ambient_noise(source)  # Adjust for ambient noise
        audio = recognizer.listen(source)  # Listen to microphone input
        try:
            text = recognizer.recognize_google(audio)  # Recognize speech using Google Speech Recognition
            print("You said:", text)
            return text.lower()
        except sr.UnknownValueError:
            print("Sorry, I couldn't understand what you said.")
            return ""
        except sr.RequestError as e:
            print("Could not request results from Google Speech Recognition service; {0}".format(e))
            return ""

# Function to generate response using ChatGPT API
def generate_response(user_input):
    global conversation_memory
    messages = [{"role": "user", "content": m["content"]} for m in conversation_memory]
    messages.append({"role": "user", "content": user_input})
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages,
        max_tokens=100,
        temperature=0.7,
        n=1,
        stop=None,
    )
    result = response.choices[0].message.content
    conversation_memory.append({"role": "user", "content": user_input})
    conversation_memory.append({"role": "assistant", "content": result})
    # Save conversation history to file
    save_conversation_history(conversation_memory)
    return result

# Main loop
while True:
    print("How can I assist you?")
    user_input = listen_microphone()
    if user_input:
        # Generate response
        try:
            jarvis_reply = generate_response(user_input)
            print("J.A.R.V.I.S:", jarvis_reply)
            # Convert text response to speech and play it
            engine.say(jarvis_reply)
            engine.runAndWait()
        except Exception as e:
            print("Error generating response:", e)
            continue  # Skip saving conversation history if there's an error

Vie pidemmälle

Kun olet oppinut oman tekoälyavustajan JARVISin rakentamisen perusteet, valmistaudu matkalle, jossa voit pyytää JARVISia itseään parantamaan taitojaan. Se on kuin nokkela henki digitaalisessa pullossa – räätälöintimahdollisuudet ovat rajattomat! Python työkalupakkina ja JARVIS nokkelana apulaisena, tekoälyn räätälöinnin seikkailu odottaa!

Oman tekoälyavustajan, kuten JARVIS, rakentaminen ei ole vain hauska projekti – se on myös loistava tapa oppia tekoälystä ja koneoppimisesta. Pythonin yksinkertaisuuden ja monipuolisuuden ansiosta kuka tahansa voi luoda oman digitaalisen kumppaninsa. Joten miksi et kokeilisi?

Kuka tietää, saatat päätyä luomaan oman JARVIS-avustajan rinnallesi.

Lue tästä tyytyväisistä asiakkaistamme.

en_US