from fastapi import FastAPI, Request, HTTPException from language.saudi_arabe.ar_stt import arSTT from language.saudi_arabe.ar_tts import arTTS app = FastAPI( version='1.0.0', root_path='/api', ) @app.post("/mms/speechToText") async def mmsSpeechToText(request: Request): body: dict = await request.json() try: audioBase64 = body.get('audioBase64') sourceLang = body.get('sourceLang') if sourceLang == 'ar': data = arSTT(audioBase64=audioBase64) return data else: raise HTTPException(status_code=400, detail=f"STT error: Invalid sourceLang - {sourceLang}") except Exception as e: print(f"STT error: {e}") raise HTTPException(status_code=400, detail=f"STT error: {e}") @app.post("/mms/textToSpeech") async def mmsTextToSpeech(request: Request): body: dict = await request.json() try: text = body.get('text') sourceLang = body.get('sourceLang') if sourceLang == 'ar': audioBase64 = arTTS(text=text) return { 'audioBase64': audioBase64 } else: raise HTTPException(status_code=400, detail=f"STT error: Invalid sourceLang - {sourceLang}") except Exception as e: print(f"TTS error: {e}") raise HTTPException(status_code=400, detail=f"TTS error: {e}")