File size: 2,921 Bytes
91e1c8c
 
 
 
 
 
 
5e5e671
91e1c8c
 
5e5e671
91e1c8c
 
 
 
 
5e5e671
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91e1c8c
 
5e5e671
91e1c8c
5e5e671
91e1c8c
5e5e671
91e1c8c
 
 
5e5e671
91e1c8c
 
 
 
 
 
de72597
91e1c8c
 
b113478
 
91e1c8c
b113478
 
 
91e1c8c
b113478
 
 
 
 
 
 
91e1c8c
b113478
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91e1c8c
 
 
 
 
 
 
 
a4a75eb
91e1c8c
 
a4a75eb
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import tempfile
from typing import Optional
from TTS.config import load_config
import gradio as gr
import numpy as np
from TTS.utils.manage import ModelManager
from TTS.utils.synthesizer import Synthesizer
import os


MODEL_NAMES = ["Celtia", "Icia", "Sabela"]

# reorder models
print(MODEL_NAMES)


def tts(text: str,
        model_file: str = "icia.pth"
):

    model_path = os.path.join(os.getcwd(), model_file)
    # if text is "celtia" take celtia.pth and celtia_config.json
    if text == "Celtia":
        config_path = "celtia_config.json"
        model_file = "celtia.pth"
    elif text == "Icia":
        config_path = "icia_config.json"
        model_file = "icia.pth"
    else:
        config_path = "sabela_config.json"
        model_file = "sabela.pth"

    vocoder_path = None
    vocoder_config_path = None

    synthesizer = Synthesizer(
        model_path, config_path, None, vocoder_path, vocoder_config_path,
    )

    # synthesize
    if synthesizer is None:
        raise NameError("model not found")
    wavs = synthesizer.tts(text)
    # return output
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
        synthesizer.save_wav(wavs, fp)
        return fp.name


title = """<h1 align="center">馃惛馃挰 CoquiTTS Demo Proxecto N贸s </h1>"""

with gr.Blocks(analytics_enabled=False) as demo:
    with gr.Row():
        with gr.Column():
            gr.Markdown(
                    """
                    ## <img src="https://huggingface.co/spaces/proxectonos/README/resolve/main/title-card.png" width="100%" style="border-radius: 0.75rem;">
                    """
            )
        with gr.Column():
            with gr.Row():            
                gr.Markdown(
                """
                <br/>
                
                馃捇 Este space mostra alg煤ns dos modelos TTS desenvolvidos polo **[Proxecto N贸s](https://huggingface.co/proxectonos)**.

                <br/>
                """
                )
            with gr.Row():            
                input_text = gr.Textbox(
                    label="Input Text",
                    value="This sentence has been generated by a speech synthesis system.",
                )
            with gr.Row():            
                model_select = gr.Dropdown(
                    label="Pick Model: tts_models/<language>/<dataset>/<model_name>",
                    choices=MODEL_NAMES,
                    value="tts_models/en/jenny/jenny"
                )
            with gr.Row():            
                tts_button = gr.Button("Send", elem_id="send-btn", visible=True)

            with gr.Row():
                output_audio = gr.Audio(label="Output", type="filepath")

    tts_button.click(
        tts,
        inputs=[
            input_text,
            model_select,
        ],
        outputs=[output_audio],
        concurrency_limit=16,
    )

demo.launch(debug=True)