Spaces:
Sleeping
Sleeping
| from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer | |
| from ..models.requestModels import SpeechToTextModel | |
| from fastapi.exceptions import HTTPException | |
| from fastapi.responses import JSONResponse | |
| from ..utils.functions import verifyToken | |
| from fastapi import APIRouter, Depends | |
| from supabase import create_client | |
| from typing import Annotated | |
| from . import pipeline | |
| import os | |
| router = APIRouter() | |
| security = HTTPBearer() | |
| client = create_client( | |
| supabase_url = os.environ["SUPABASE_URL"], | |
| supabase_key = os.environ["SUPABASE_KEY"] | |
| ) | |
| async def getSpeechTranscript(speechToText: SpeechToTextModel, credentials: Annotated[HTTPAuthorizationCredentials, Depends(security)]): | |
| try: | |
| if verifyToken(token = credentials.credentials): | |
| transcriptText = pipeline.speechToText(b64String = speechToText.b64String) | |
| return JSONResponse(status_code = 200, content = {"transcriptionText": transcriptText}) | |
| else: | |
| return JSONResponse(status_code = 498, content = {"status": "ERROR", "errorDetail": "Invalid Token"}) | |
| except Exception as e: | |
| raise HTTPException(status_code = 500, detail = f"Endpoint says: {e}") |