File size: 2,290 Bytes
113d0af
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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)