malek-messaoudii
Update chat voice part
a71355d
raw
history blame
1.23 kB
import requests
from config import GROQ_API_KEY, GROQ_STT_MODEL
def speech_to_text(audio_file: str) -> str:
"""
Convert audio file to text using Groq's Whisper API (English only)
"""
if not GROQ_API_KEY:
raise RuntimeError("GROQ_API_KEY is not set in config")
url = "https://api.groq.com/openai/v1/audio/transcriptions"
headers = {
"Authorization": f"Bearer {GROQ_API_KEY}"
}
with open(audio_file, "rb") as audio_data:
files = {
"file": (audio_file, audio_data, "audio/wav")
}
data = {
"model": GROQ_STT_MODEL,
"language": "en", # Force English
"temperature": 0,
"response_format": "json"
}
try:
response = requests.post(url, headers=headers, files=files, data=data, timeout=30)
response.raise_for_status()
result = response.json()
return result.get("text", "")
except requests.exceptions.RequestException as e:
raise Exception(f"Groq STT API error: {str(e)}")
except Exception as e:
raise Exception(f"Unexpected error in speech_to_text: {str(e)}")