TherapyNote / utils /audio.py
abagherp's picture
Upload folder using huggingface_hub
6830eb0 verified
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)}")