1
0
mirror of https://github.com/ijaric/voice_assistant.git synced 2025-12-16 09:56:16 +00:00

feat: [#49] Working handler

This commit is contained in:
2023-10-14 02:19:55 +03:00
parent 6abd748e45
commit 952456d540
4 changed files with 23 additions and 25 deletions

View File

@@ -1,6 +1,8 @@
import fastapi
import io
import fastapi
import http
import lib.models.tts.voice as models_tts_voice
import lib.stt.services as stt_services
@@ -16,13 +18,17 @@ class VoiceResponseHandler:
self.voice_response,
methods=["POST"],
summary="Ответ голосового помощника",
description="Ответ голосового помощника",
description="Маршрут возвращает потоковый ответ аудио",
)
async def voice_response(
self,
voice: bytes = fastapi.File(...),
voice_model: models_tts_voice.VoiceModelProvidersEnum = fastapi.Depends(),
) -> dict[str, str]:
) -> fastapi.responses.StreamingResponse:
voice_text: str = await self.stt.recognize(voice)
return {"text": voice_text}
if voice_text == "":
raise fastapi.HTTPException(status_code=http.HTTPStatus.BAD_REQUEST, detail="Speech recognition failed")
# TODO: Добавить обработку текста через клиента openai
# TODO: Добавить синтез речи через клиента tts
# TODO: Заменить заглушку на реальный ответ
return fastapi.responses.StreamingResponse(io.BytesIO(voice), media_type="audio/ogg")