File size: 1,084 Bytes
19a209b
 
 
 
 
d8f156e
 
19a209b
d8f156e
19a209b
 
 
 
 
d8f156e
19a209b
9a129aa
d8f156e
 
19a209b
 
 
 
 
 
 
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
from transformers import AutoProcessor, SeamlessM4Tv2ForSpeechToText
import torchaudio
from torch import Tensor
from base64 import b64encode


class EndpointHandler():
    def __init__(self, path=""):
        self.path = path
        self.processor = AutoProcessor.from_pretrained(
            "facebook/seamless-m4t-v2-large")
        self.model = SeamlessM4Tv2ForSpeechToText.from_pretrained(
            "facebook/seamless-m4t-v2-large")
        self.AUDIO_DEFAULT_SAMPLE_RATE = 16000

    def __call__(self, data: dict):
        input_audio_tensor = data["inputs"]["audio"]
        input_lang_code = data["inputs"]["input_lang_code"]
        output_lang_code = data["inputs"]["output_lang_code"]
        audio_inputs = self.processor(
            audios=input_audio_tensor, src_lang=input_lang_code, return_tensors="pt")
        id_array = self.model.generate(
            **audio_inputs, tgt_lang=output_lang_code)
        text_array_from_audio = self.processor.batch_decode(
            id_array, skip_special_tokens=True)
        return [{"text_array": text_array_from_audio}]