Translation of longer texts

#25
by hanshupe - opened

It seems that only very short texts like 1 sentence are supported. I am wondering if I am missing something, or how would you use it to translate a few pages of texts?

Did you ever figure this out?

I also have this problem. It seems to break down at around 30s of audio.

I've made a hack to fix this. 30s of audio corresponds in very rough terms to 750 characters, so I split the text up into chunks, converted each chunk and appended the chunks together. This gives reasonable results, although the code is straight up ugly:

def split_text(text, MAX_CHARACTERS=700):
    sub_texts = []
    sub_text = ""
    for chunk in text.split('.'):
        if len(sub_text + chunk) > MAX_CHARACTERS:
            sub_texts.append(sub_text.strip())
            sub_text = ""
        
        sub_text += "." + chunk

    if sub_text:
        sub_texts.append(sub_text.strip())
    return sub_texts

def get_audio_array_from_text(text):
    res = np.array([], dtype=np.float32)
    
    for sub_text in split_text(text):
        text_inputs = processor(text=sub_text, src_lang="dan", return_tensors="pt")
        audio_array_from_text = model.generate(**text_inputs, tgt_lang="dan")[0].numpy().squeeze()
        res = np.concatenate((res, audio_array_from_text))

    return res

Sign up or log in to comment