Spaces:
Sleeping
Sleeping
from __future__ import annotations | |
import os | |
from pathlib import Path | |
from pydub import AudioSegment | |
from utils.transcription import TranscriptionService | |
# Initialize the transcription service | |
transcription_service = TranscriptionService() | |
def convert_audio_to_wav(audio_path: str | Path) -> str: | |
"""Convert uploaded audio to WAV format if needed.""" | |
audio_path = Path(audio_path) | |
output_path = audio_path.with_suffix('.wav') | |
if audio_path.suffix.lower() != '.wav': | |
print(f"Converting {audio_path.name} to WAV format...") | |
audio = AudioSegment.from_file(audio_path) | |
audio.export(output_path, format='wav') | |
return str(output_path) | |
return str(audio_path) | |
def transcribe_audio(audio_path: str | Path) -> str: | |
""" | |
Transcribe audio using Deepgram. | |
Supports multiple audio formats, converts to WAV if needed. | |
""" | |
try: | |
# Convert to WAV if needed | |
wav_path = convert_audio_to_wav(audio_path) | |
# Transcribe using Deepgram | |
transcript = transcription_service.transcribe_file(wav_path) | |
return transcript | |
except Exception as e: | |
raise Exception(f"Error transcribing audio: {str(e)}") |