ENCOA-295
This commit is contained in:
@@ -5,7 +5,7 @@ from fastapi.responses import StreamingResponse, Response
|
||||
|
||||
from ielts_be.controllers import IListeningController
|
||||
from ielts_be.services import IListeningService
|
||||
from ielts_be.dtos.listening import GenerateListeningExercises, Dialog
|
||||
from ielts_be.dtos.listening import ListeningExercisesDTO, Dialog
|
||||
|
||||
|
||||
class ListeningController(IListeningController):
|
||||
@@ -23,12 +23,26 @@ class ListeningController(IListeningController):
|
||||
async def generate_listening_dialog(self, section_id: int, topic: str, difficulty: str):
|
||||
return await self._service.generate_listening_dialog(section_id, topic, difficulty)
|
||||
|
||||
async def get_listening_question(self, dto: GenerateListeningExercises):
|
||||
async def get_listening_question(self, dto: ListeningExercisesDTO):
|
||||
return await self._service.get_listening_question(dto)
|
||||
|
||||
async def generate_mp3(self, dto: Dialog):
|
||||
mp3 = await self._service.generate_mp3(dto)
|
||||
return self._mp3_response(mp3)
|
||||
|
||||
async def create_instructions(self, text: str):
|
||||
mp3 = await self._service.create_instructions(text)
|
||||
return self._mp3_response(mp3)
|
||||
|
||||
async def transcribe_dialog(self, audio: UploadFile):
|
||||
dialog = await self._service.transcribe_dialog(audio)
|
||||
if dialog is None:
|
||||
return Response(status_code=500)
|
||||
|
||||
return dialog
|
||||
|
||||
@staticmethod
|
||||
def _mp3_response(mp3: bytes):
|
||||
return StreamingResponse(
|
||||
content=io.BytesIO(mp3),
|
||||
media_type="audio/mpeg",
|
||||
@@ -37,10 +51,3 @@ class ListeningController(IListeningController):
|
||||
"Content-Disposition": "attachment;filename=speech.mp3"
|
||||
}
|
||||
)
|
||||
|
||||
async def transcribe_dialog(self, audio: UploadFile):
|
||||
dialog = await self._service.transcribe_dialog(audio)
|
||||
if dialog is None:
|
||||
return Response(status_code=500)
|
||||
|
||||
return dialog
|
||||
|
||||
Reference in New Issue
Block a user