FerdinandPyCode's picture
track files 2
113d0af
raw
history blame
2.29 kB
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)