Python 3 – die besten Beiträge

Warum ist dieser Code so schlecht /funktioniert fast nicht?

Hallo, ich bin an einem Sprachassistenten dran und bin gerade bei der "Speech-to-Text" Funktion. Das ist mein bisheriger Code:

import speech_recognition as sr


def aufnahme():
    r = sr.Recognizer()

    with sr.Microphone() as quelle:
        r.pause_threshold = 0.8
        r.adjust_for_ambient_noise(quelle)
        gesagt = r.listen(quelle)

    try:

        q = r.recognize_google(gesagt, language="de")
        print("Recognized speech (Google):", q)
        return q

    except sr.UnknownValueError:
        print('Leider nicht verstanden (Google)')
        print("Recognized speech (Google):", r.recognize_google(gesagt, show_all=True, language="de"))

    except sr.RequestError as e:
        print(f'Fehler bei Sphinx-Erkennung: {e}')
        return "Ich warte auf Anweisungen"


# Call the function
result = aufnahme()
print(result)

Jedoch funktioniert er richtig schlecht, er versteht höchstens zwei Wörter und in 90% der Fälle kommt dieser Fehlercode:

Leider nicht verstanden (Google)

Traceback (most recent call last):

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 21, in aufnahme

  q = r.recognize_google(gesagt, language="de")

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 251, in recognize_legacy

  return output_parser.parse(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 124, in parse

  actual_result = self.convert_to_result(response_text)

 File "C:\Users\....\lib\site-packages\speech_recognition\recognizers\google.py", line 173, in convert_to_result

  raise UnknownValueError()

speech_recognition.exceptions.UnknownValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 35, in <module>

  result = aufnahme()

 File "C:\Users\...\PycharmProjects\voiceAssistant\main.py", line 27, in aufnahme

  print("Recognized speech (Google):", r.recognize_google(gesagt, show_all=True, language="de"))

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 251, in recognize_legacy

  return output_parser.parse(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 124, in parse

  actual_result = self.convert_to_result(response_text)

 File "C:\Users\...\lib\site-packages\speech_recognition\recognizers\google.py", line 173, in convert_to_result

  raise UnknownValueError()

speech_recognition.exceptions.UnknownValueError

Process finished with exit code 1

Woran liegt das, soll ich eine andere Speech Recognition verwenden und wenn ja welche?

Vielen Dank im Voraus!

Assistent, cmd, Code, Error, Problemlösung, Programmiersprache, Python, Python 3, Sprachassistent, Pycharm

Typkonvertierung eines Zeitstempels in Python?

Hallo an alle Python-Programmierer.

Ich habe versucht mit einem Python-Programm automatisch die Zeitstempel aus einer .tdms Datei (LabView-Datei) auszulesen, zu konvertieren & als eine .xlsx Datei (Excel-Datei) wieder abzuspeichern.

Allerdings ist die Uhrzeit im Zeitstempel der konvertierten Excel-Datei komischerweise immer genau 2 Stunden früher als in der tdms-Datei.

Hier folgend sieht man einen kurzen Auszug eines .tdms Messschriebs vom Kanal „SM States“. Geöffnet mit einem EXCEL-tdms Plugin. Somit kann man quasi mit Excel die .tdms Dateien öffnen:

Hier wird die erste Uhrzeit mit 04:21:06,391 PM bzw. 16:21:06,391 im 24h Format angegeben.

Wenn ich nun mit den folgenden Codezeilen im 12h Format versuche die "Timestamp" Daten in eine .xlsx Datei zu schrieben, kommt dabei das Problem mit den 2 Stunden Zeitversatz heraus:

 # Daten in Excel-Datei schreiben

      with pd.ExcelWriter(xlsx_output_path) as writer:

        for df_list, sheet_name in zip([sm_states_data_frames],

                        ['SM States']):

          for i, df in enumerate(df_list):

            if 'Timestamp' in df.columns:

              df['Timestamp'] = df['Timestamp'].apply(lambda x: x.strftime('%d.%m.%Y %I:%M:%S,%f %p'))

            df.to_excel(writer, sheet_name=sheet_name, index=False)

Hier zum besseren Verständnis ein Bild vom Code:

Hier sieht man nun das Ergebnis der Excel-Datei. Das Format an sich ist wie im obrigen Bild der .tdms Datei. Allerdings werden hier Microsekunden statt Millisekunden angezeigt, was aber denke ich erst mal nicht das Problem sein sollte.

Jedoch sieht man, dass nun 02:21:06 Uhr PM angezeigt wird, statt 04:21:06 Uhr PM der Quell-tdms-Datei. Das gleiche Problem habe ich übrigens auch wenn ich versuche den Zeitstempel in ein 24h Format umzuwandeln.

Hier noch ein Bild vom Dateiformat des "Timestamp" Reiters der Quell-tdms-Datei:

Ich wäre sehr dankbar, wenn mir hier jemand weiter helfen könnte!

Viele Grüße!

Jonas

Bild zum Beitrag
LabView, Programmiersprache, Python, Python 3

Meistgelesene Beiträge zum Thema Python 3