main
py 26 lines 962 Bytes
Raw
1 from helpers.api import ApiHandler, Request, Response
2 from plugins._whisper_stt.helpers import runtime
3
4
5 class Transcribe(ApiHandler):
6 async def process(self, input: dict, request: Request) -> dict | Response:
7 if not runtime.is_globally_enabled():
8 return Response(status=409, response="Whisper STT plugin is disabled")
9
10 audio = str(input.get("audio") or "").strip()
11 if not audio:
12 return Response(status=400, response="Missing audio")
13
14 ctxid = str(input.get("ctxid") or "").strip()
15 if ctxid:
16 self.use_context(ctxid)
17
18 try:
19 result = await runtime.transcribe(audio)
20 return {
21 "success": True,
22 "text": str(result.get("text") or "").strip(),
23 "language": str(result.get("language") or "").strip(),
24 }
25 except Exception as e:
26 return {"success": False, "error": str(e), "text": ""}