File size: 1,996 Bytes
914c7b4
ff92946
 
b308ed7
 
914c7b4
 
b308ed7
 
 
 
914c7b4
 
ff92946
914c7b4
b308ed7
 
914c7b4
b308ed7
914c7b4
 
b308ed7
 
914c7b4
b308ed7
 
914c7b4
b308ed7
 
ff92946
b308ed7
 
 
ff92946
b308ed7
 
 
 
 
 
ff92946
b308ed7
ff92946
33c11bc
914c7b4
 
 
 
 
b308ed7
 
914c7b4
 
 
 
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
import gradio as gr
import uuid
from datetime import timedelta
from TTS.api import TTS
import locale


locale.getpreferredencoding = lambda: "UTF-8"

tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=True)
tts = TTS("xtts_v2.0.2", gpu=True)


async def generate_audio(text_input: str, creator: str) -> str:

    refer_voices = ''
    unique_id = str(uuid.uuid4())

    output_file = f'{unique_id}.wav'
    match creator:
        case 'Roomie':
            refer_voices = ["./assets/roomie/roomie_emocionado_base_1.wav", "./assets/roomie/ref_12.wav", "./assets/roomie/ref_11.wav", "./assets/roomie/ref_10.wav",
                            "./assets/roomie/ref_1.wav", "./assets/roomie/ref_6.wav", "./assets/roomie/ref_7.wav", "./assets/roomie/ref_8.wav", "./assets/roomie/roomie_emocionado_base_2.wav",]
        case 'Xavy':
            refer_voices = ["./assets/xavy/neutro_3.wav",
                            "./assets/xavy/neutro_1.wav", "./assets/xavy/neutro_2.wav"]
        case 'Bella':
            refer_voices = ["./assets/bella/neutro_2.wav",
                            "./assets/bella/neutro_1.wav", "./assets/bella/neutro_3.wav"]

        case 'Julia':
            refer_voices = ["assets/julia/neutro_4_Final_fast.wav", "assets/julia/enfadado_1_Final.wav", "assets/julia/enfadado_2_Final.wav",
                            "assets/julia/enfadado_3_Final.wav", "assets/julia/emocionada_1.wav", "assets/julia/emocionada_2_Final.wav"]

    tts.tts_to_file(text=text_input,
                    file_path=output_file,
                    speaker_wav=refer_voices,
                    language="en",
                    split_sentences=True,
                    )

    source_audio_file_name = output_file

    return gr.Audio(value=source_audio_file_name)


app = gr.Interface(
    fn=generate_audio,
    inputs=[gr.Textbox(label='Text to Speach'), gr.Dropdown(
        ['Roomie', 'Xavy', 'Bella', 'Julia'], label="Coice your creator")],

    outputs=['audio']
)

app.launch()