| from fastapi import APIRouter, UploadFile, File |
| from services.stt_service import speech_to_text |
| from models.stt import STTResponse |
| import os |
| import uuid |
|
|
| router = APIRouter(prefix="/stt", tags=["Speech To Text"]) |
|
|
| @router.post("/", response_model=STTResponse) |
| async def convert_stt(file: UploadFile = File(...)): |
| |
| os.makedirs("audio/temp", exist_ok=True) |
| |
| |
| temp_name = f"audio/temp/{uuid.uuid4()}_{file.filename}" |
| |
| |
| with open(temp_name, "wb") as f: |
| f.write(await file.read()) |
|
|
| |
| text = speech_to_text(temp_name) |
|
|
| |
| os.remove(temp_name) |
|
|
| return STTResponse(text=text) |
|
|