File size: 1,493 Bytes
4dfca0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7a60e77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from fastapi import FastAPI, Form
from fastapi.middleware.cors import CORSMiddleware
from translator import standard_translator, smart_auto_translator
from utils import source_tts_handler, target_tts_handler

app = FastAPI(title="Cortex Translator", version="2.0")

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get("/")
async def root():
    return {"status": "ok", "message": "Backend running"}

@app.post("/translate/manual")
async def manual_translate(text: str = Form(...), src_lang: str = Form(...), tgt_lang: str = Form(...)):
    translated = standard_translator(text, src_lang, tgt_lang)
    return {"mode": "manual", "source_text": text, "translated_text": translated}

@app.post("/translate/auto")
async def auto_translate(text: str = Form(...), target_lang: str = Form(...)):
    result = smart_auto_translator(text, target_lang)
    return result

@app.post("/tts/source")
async def source_tts(text: str = Form(...)):
    b64_audio = await source_tts_handler(text)
    if not b64_audio:
        return {"error": "Could not generate audio"}
    return {"audio_base64": b64_audio}

@app.post("/tts/target")
async def target_tts(translated_text: str = Form(...), target_lang: str = Form(...)):
    b64_audio = await target_tts_handler(translated_text, target_lang)
    if not b64_audio:
        return {"error": "Could not generate audio"}
    return {"audio_base64": b64_audio}