| from fastapi import FastAPI |
| from fastapi.responses import FileResponse |
| from TTS.api import TTS |
| import uuid |
| import os |
|
|
| app = FastAPI() |
|
|
| |
| tts = TTS( |
| model_name="tts_models/multilingual/multi-dataset/xtts_v2", |
| progress_bar=False, |
| gpu=False |
| ) |
|
|
| OUTPUT_DIR = "outputs" |
| os.makedirs(OUTPUT_DIR, exist_ok=True) |
|
|
| @app.get("/") |
| def home(): |
| return { |
| "message": "Saudi Arabic TTS is running ๐๏ธ๐ธ๐ฆ", |
| "usage": "/tts?text=ููุง+ูุงููู" |
| } |
|
|
| @app.get("/tts") |
| def text_to_speech(text: str): |
| filename = f"{uuid.uuid4()}.wav" |
| filepath = os.path.join(OUTPUT_DIR, filename) |
|
|
| tts.tts_to_file( |
| text=text, |
| file_path=filepath, |
| language="ar" |
| ) |
|
|
| return FileResponse( |
| filepath, |
| media_type="audio/wav", |
| filename="saudi_tts.wav" |
| ) |
|
|