Spaces:
Sleeping
Sleeping
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) | |