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) | |