import django from rest_framework import viewsets, generics, mixins from utils.utils_function import Translator from .serializers import TextToText,AudioToAudioSerializer from rest_framework.permissions import IsAdminUser, IsAuthenticated,AllowAny from rest_framework.response import Response from rest_framework.parsers import MultiPartParser import string from django.core.files import File from django.core.files.storage import default_storage from django.core.files.base import ContentFile import os from lambdaAPI.settings import MEDIA_ROOT from .utils.utils_functions import startConvertion from django.conf import settings # Create your views here. class AudioToText(mixins.CreateModelMixin, generics.GenericAPIView): parser_classes = (MultiPartParser,) serializer_class = AudioToAudioSerializer def get_permissions(self): return [AllowAny()] def post(self, request, *args, **kwargs): data = request.FILES user = request.user datas = request.data print('*'*100) audio_file = data['audio'] audio_text = startConvertion(audio_file) if audio_text.strip() == "": return Response(data={'error': 'You audio file dont say anything'}, status=400) else: return Response(data={'text': audio_text.strip()}, status = 200) class FongbeToFrancaisText(mixins.CreateModelMixin, generics.GenericAPIView): serializer_class = TextToText def get_permissions(self): return [AllowAny()] def post(self, request, *args, **kwargs): datas = request.data print('*'*100) texte = datas['text'] sourceCode = datas['sourceCode'] isFon : bool = True if sourceCode == "Fr": isFon = False # Création d'une instance de Translator avec le chemin vers le modèle translator = Translator(isFon=isFon) # Appel de la méthode translate avec un texte à traduire translation_result = translator.translate(texte) if translation_result.strip() == "": return Response(data={'text': 'Pas de traduction disponible'}, status=200) else: return Response(data={'text': translation_result.strip()}, status = 200)