From 58d1a68bac58c45b3c75adfcd7879bfa439d0cbb Mon Sep 17 00:00:00 2001 From: Patrick_Pluto Date: Thu, 26 Sep 2024 10:43:39 +0200 Subject: [PATCH] small fix? --- py/requirements.txt | 3 ++- py/voice.py | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/py/requirements.txt b/py/requirements.txt index 8c6a016..7ea1a85 100644 --- a/py/requirements.txt +++ b/py/requirements.txt @@ -13,4 +13,5 @@ python-weather pycouchdb pyttsx3 pip-licenses -openai-whisper \ No newline at end of file +openai-whisper +pydub \ No newline at end of file diff --git a/py/voice.py b/py/voice.py index ec6c407..b9500da 100644 --- a/py/voice.py +++ b/py/voice.py @@ -1,20 +1,40 @@ import speech_recognition as sr +from pydub import AudioSegment class VoiceRecognition: - @staticmethod - def basic_recognition(audio, option): + def check_audio_format(self, file_path): + try: + audio = AudioSegment.from_ogg(file_path) + print(f"Audio format: {audio.format}") + return True + except Exception as e: + print(f"Error reading audio file: {e}") + return False + + def basic_recognition(self, audio, option): print(type(audio)) print("preparing") r = sr.Recognizer() + + # Read the data from the FileStorage object + audio_data = audio.read() + + # Write the audio data to a file + with open('output.wav', 'wb') as file: + file.write(audio_data) + + self.check_audio_format(audio) if option == "online": with sr.AudioFile(audio) as source: + print(type(source)) print("online") text = r.recognize_google_cloud(source) print("recognized as: " + text) return text elif option == "offline": with sr.AudioFile(audio) as source: + print(type(source)) print("offline") text = r.recognize_sphinx(source) print("recognized as: " + text)