Spaces:
Runtime error
Runtime error
| # modules/stt_handler.py | |
| import speech_recognition as sr | |
| import os | |
| def transcribe_audio(audio_filepath): | |
| if not audio_filepath or not os.path.exists(audio_filepath): | |
| print("STT Error: No audio file provided or file does not exist.") | |
| return "[Transcription error: Invalid audio file path]" | |
| recognizer = sr.Recognizer() | |
| try: | |
| with sr.AudioFile(audio_filepath) as source: | |
| audio_data = recognizer.record(source) | |
| print("Transcribing with Whisper...") | |
| # Use Whisper for transcription | |
| text = recognizer.recognize_whisper(audio_data, language="english") | |
| print(f"User transcribed as: {text}") | |
| return text | |
| except sr.UnknownValueError: | |
| print("STT Error: Whisper could not understand the audio.") | |
| return "[Could not understand audio - please try speaking more clearly]" | |
| except sr.RequestError as e: | |
| print(f"STT Error: Could not request results from Whisper service; {e}") | |
| return "[Transcription service temporarily unavailable - please try again]" | |
| except ImportError as e: | |
| print(f"STT Error: Whisper not available: {e}") | |
| return "[Speech recognition not available in this environment]" | |
| except Exception as e: | |
| print(f"STT Error: An unexpected error occurred during transcription: {e}") | |
| return f"[Transcription error: Please try again]" | |
| finally: | |
| if os.path.exists(audio_filepath): | |
| try: | |
| os.remove(audio_filepath) | |
| except OSError as e: | |
| print(f"Error deleting temp audio file {audio_filepath}: {e}") |