malek-messaoudii
commited on
Commit
·
27ee35f
1
Parent(s):
587fe4f
Uodate stt tts
Browse files- routes/stt_routes.py +7 -0
- routes/tts_routes.py +8 -2
routes/stt_routes.py
CHANGED
|
@@ -8,13 +8,20 @@ router = APIRouter(prefix="/stt", tags=["Speech To Text"])
|
|
| 8 |
|
| 9 |
@router.post("/", response_model=STTResponse)
|
| 10 |
async def convert_stt(file: UploadFile = File(...)):
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
temp_name = f"audio/temp/{uuid.uuid4()}_{file.filename}"
|
| 12 |
|
|
|
|
| 13 |
with open(temp_name, "wb") as f:
|
| 14 |
f.write(await file.read())
|
| 15 |
|
|
|
|
| 16 |
text = speech_to_text(temp_name)
|
| 17 |
|
|
|
|
| 18 |
os.remove(temp_name)
|
| 19 |
|
| 20 |
return STTResponse(text=text)
|
|
|
|
| 8 |
|
| 9 |
@router.post("/", response_model=STTResponse)
|
| 10 |
async def convert_stt(file: UploadFile = File(...)):
|
| 11 |
+
# dossier temporaire
|
| 12 |
+
os.makedirs("audio/temp", exist_ok=True)
|
| 13 |
+
|
| 14 |
+
# nom temporaire unique
|
| 15 |
temp_name = f"audio/temp/{uuid.uuid4()}_{file.filename}"
|
| 16 |
|
| 17 |
+
# save file
|
| 18 |
with open(temp_name, "wb") as f:
|
| 19 |
f.write(await file.read())
|
| 20 |
|
| 21 |
+
# STT conversion
|
| 22 |
text = speech_to_text(temp_name)
|
| 23 |
|
| 24 |
+
# cleanup
|
| 25 |
os.remove(temp_name)
|
| 26 |
|
| 27 |
return STTResponse(text=text)
|
routes/tts_routes.py
CHANGED
|
@@ -2,14 +2,20 @@ from fastapi import APIRouter
|
|
| 2 |
from fastapi.responses import FileResponse
|
| 3 |
from models.tts import TTSRequest
|
| 4 |
from services.tts_service import text_to_speech
|
|
|
|
| 5 |
|
| 6 |
router = APIRouter(prefix="/tts", tags=["Text To Speech"])
|
| 7 |
|
| 8 |
@router.post("/")
|
| 9 |
async def generate_tts(request: TTSRequest):
|
| 10 |
-
output_path = text_to_speech(
|
| 11 |
text=request.text,
|
| 12 |
voice=request.voice,
|
| 13 |
fmt=request.format
|
| 14 |
)
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
from fastapi.responses import FileResponse
|
| 3 |
from models.tts import TTSRequest
|
| 4 |
from services.tts_service import text_to_speech
|
| 5 |
+
from pathlib import Path
|
| 6 |
|
| 7 |
router = APIRouter(prefix="/tts", tags=["Text To Speech"])
|
| 8 |
|
| 9 |
@router.post("/")
|
| 10 |
async def generate_tts(request: TTSRequest):
|
| 11 |
+
output_path: Path = text_to_speech(
|
| 12 |
text=request.text,
|
| 13 |
voice=request.voice,
|
| 14 |
fmt=request.format
|
| 15 |
)
|
| 16 |
+
|
| 17 |
+
return FileResponse(
|
| 18 |
+
output_path,
|
| 19 |
+
filename=output_path.name,
|
| 20 |
+
media_type="audio/wav"
|
| 21 |
+
)
|