Warum kann ich meine Python-Datei nicht öffnen?


24.02.2024, 20:11
import pyttsx3
import re
import pyjokes
import speech_recognition as sr
from pyowm import OWM
import spotipy
from spotipy.oauth2 import SpotifyOAuth
import time
import random
import datetime
import pytz
from geopy.geocoders import Nominatim
from timezonefinder import TimezoneFinder
import sounddevice as sd
import pvporcupine
import openai

openai.api_key = 'sk-...'
model_id = "gpt-4"

engine = pyttsx3.init()


def recognize_speech(recognizer, source):
    print("Sage etwas...")
    audio = recognizer.listen(source, timeout=15)
    try:
        text = recognizer.recognize_google(audio, language="de-DE")
        print("Text: " + text)
        return text
    except sr.UnknownValueError:
        return "not_understood"
    except sr.RequestError as e:
        print(f"Fehler bei der Anfrage an die Google Web Speech API: {e}")
        return ""


def picovoice_listen():
    keyword_file_path = "C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn"
    sensitivities = [0.01]

    try:
        porcupine = pvporcupine.create(
            access_key='mNI+...==',
            keyword_paths=['C:\\Hey-Luna_de_windows_v3_0_0\\Hallo-Luna_de_windows_v3_0_0.ppn'],
            model_path='C:\\Hey-Luna_de_windows_v3_0_0\\porcupine_params_de.pv'
        )

        sample_rate = porcupine.sample_rate
        print("Sample Rate:", sample_rate)

        pcm = record_audio(sample_rate=sample_rate, duration=3)
        keyword_index = porcupine.process(pcm)

        if keyword_index >= 0:
            print("Wake word detected!")
            porcupine.delete()
            return True
        else:
            print("Wake word not detected!")

    except pvporcupine.PorcupineError as e:
        print(f"Porcupine error: {e}")

    return False


def record_audio(sample_rate, duration):
    print("Aufnahme gestartet...")
    audio = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16')
    sd.wait()
    print("Aufnahme beendet.")
    return audio.flatten()[:512]


def openai_request(prompt):
    response = openai.ChatCompletion.create(
        model=model_id,
        messages=prompt
    )

    api_usage = response['usage']
    print('Total Token consumed: {0}'.format(api_usage['total_tokens']))
    prompt.append({'role': response.choices[0].message.role, 'content': response.choices[0].message.content})
    return prompt


def speak(text):
    engine.say(text)
    engine.runAndWait()


def ausführen():
    recognizer = sr.Recognizer()

    while True:
        if picovoice_listen():
            with sr.Microphone() as source:
                q = recognize_speech(recognizer, source)
                print("Erkannter Text:", q)

                if q == "not_understood":
                    speak("Entschuldigung! Das habe ich nicht verstanden.")
                    continue

                elif "hallo" in q:
                    speak('Hallo! Womit kann ich dir behilflich sein?')
                    continue

                else:
                    prompt = [{'role': 'user', 'content': q}]
                    prompt = openai_request(prompt)
                    response = prompt[-1]['content']
                    speak(response)
                    return  # Programm beenden, nachdem die Antwort gesprochen wurde


if __name__ == '__main__':
    ausführen()
Suiram1  24.02.2024, 20:01

Welchen Code enthält die Datei?

marcus09421 
Fragesteller
 24.02.2024, 20:10

Es ist ein Python Code für einen Sprachassistenten, den ich gerade programmiere. Der Code ist leider zu lang, um ihn hier reinzuschreiben aber ich kann ihn sonst oben noch einfügen

2 Antworten

Da der Code ziemlich Komplex ist und ich auch keine Möglichkeit habe diesen selbst auszuprobieren würde ich vorschlagen das du mit eine IDE wie PyCharm mal probierst das Programm zu debuggen.

marcus09421 
Fragesteller
 24.02.2024, 20:24

Vielen Dank!

0

Python ist eine JIT Sprache. Du musst die Runtime von python.org installieren, dann cd'st du in das Directory wo die Datei ist (bspw. cd C:\.......\Downloads, kopier den Pfad aus dem Dateibrowser) und dann python dateiname.py

marcus09421 
Fragesteller
 24.02.2024, 21:16

Also muss ich auf python.org gehen, dort nach Runtime suchen und das dann installieren?

0
mompf03231  24.02.2024, 21:20
@marcus09421

Die Runtime ist die eigentliche Installation von Python, ist ähnlich wie bei Java. Läuft im hintergrund vom System bis ein Python Command ausgeführt wird und kompiliert den Code dann bei der Ausführung.

Also einfach python.org/downloads

Python ist zwar nicht dafür konzipiert aber es gibt ein Paket namens py2exe oder so ähnlich das auch reguläre binaries ("exe" bei Windows) kompilieren kann. Das nennt sich dann AOT (Ahead of time vs JIT = Just in time).

Sprachen die voll auf AOT ausgelegt sind sind bspw. Go und C

1