Spaces:
unijoh
/
Runtime error

File size: 4,672 Bytes
7bcf8d7
9563833
 
 
7bcf8d7
9563833
7bcf8d7
9563833
 
1687666
88fc301
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ce8e849
1687666
9563833
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7bcf8d7
9563833
88fc301
9563833
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ce8e849
9563833
 
 
 
 
 
 
ce8e849
9563833
88fc301
9563833
 
 
 
 
 
 
 
 
 
 
 
 
 
ce8e849
9563833
 
 
 
 
 
 
 
 
 
88fc301
9563833
 
 
 
 
 
 
 
 
 
 
ce8e849
9563833
 
 
 
ce8e849
9563833
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7bcf8d7
 
237c3b9
 
11b54dc
237c3b9
 
 
ce8e849
7bcf8d7
5cc287f
88fc301
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import gradio as gr
import librosa
from asr import transcribe, ASR_EXAMPLES, ASR_LANGUAGES, ASR_NOTE
from tts import synthesize, TTS_EXAMPLES, TTS_LANGUAGES
from lid import identify, LID_EXAMPLES
import os

# Disable HF_HUB_ENABLE_HF_TRANSFER
os.environ['HF_HUB_ENABLE_HF_TRANSFER'] = '0'

def safe_transcribe(*args, **kwargs):
    try:
        return transcribe(*args, **kwargs)
    except Exception as e:
        return f"Error: {str(e)}"

def safe_synthesize(*args, **kwargs):
    try:
        return synthesize(*args, **kwargs)
    except Exception as e:
        return f"Error: {str(e)}"

def safe_identify(*args, **kwargs):
    try:
        return identify(*args, **kwargs)
    except Exception as e:
        return f"Error: {str(e)}"

demo = gr.Blocks()

mms_select_source_trans = gr.Radio(
    ["Tak upp", "Ljóðfíla"],
    label="Ljóð til talukennara",
    value="Tak upp",
)
mms_mic_source_trans = gr.Audio(source="microphone", type="filepath", label="Brúka mikrofonina", visible=True)
mms_upload_source_trans = gr.Audio(
    source="upload", type="filepath", label="Legg ljóðfílu upp", visible=False
)

# Add back the language selection dropdown but set it to be hidden and default to Faroese
asr_language_dropdown = gr.Dropdown(
    [f"{k} ({v})" for k, v in ASR_LANGUAGES.items()],
    label="Mál",
    value="fao (Faroese)",
    visible=False,
)

mms_transcribe = gr.Interface(
    fn=safe_transcribe,
    inputs=[
        mms_select_source_trans,
        mms_mic_source_trans,
        mms_upload_source_trans,
        asr_language_dropdown,
    ],
    outputs="text",
    examples=ASR_EXAMPLES,
    title="Talukennari",
    description=(
        "Tak upp beinleiðis úr kaganum, ella legg eina ljóðfílu upp, og fá talukennaran at avskriva tað, ið verður sagt."
    ),
    article=ASR_NOTE,
    allow_flagging="never",
)

# Add back the language selection dropdown but set it to be hidden and default to Faroese
tts_language_dropdown = gr.Dropdown(
    [f"{k} ({v})" for k, v in TTS_LANGUAGES.items()],
    label="Mál",
    value="fao (Faroese)",
    visible=False,
)

mms_synthesize = gr.Interface(
    fn=safe_synthesize,
    inputs=[
        gr.Text(label="Tekstur at lesa upp"),
        tts_language_dropdown,
        gr.Slider(minimum=0.1, maximum=4.0, value=1.0, step=0.1, label="Ferð"),
    ],
    outputs=[
        gr.Audio(label="Ljóð frá teldutaluni", type="numpy"),
        gr.Text(label="Teksturin, sum verður lisin upp"),
    ],
    examples=TTS_EXAMPLES,
    title="Teldutala",
    description=("Fá tekstin lisnan upp við teldutalu."),
    allow_flagging="never",
)

mms_select_source_iden = gr.Radio(
    ["Tak upp frá mikrofonini", "Vel ljóðfílu"],
    label="Audio input",
    value="Tak upp frá mikrofonini",
)
mms_mic_source_iden = gr.Audio(source="microphone", type="filepath", label="Use mic", visible=True)
mms_upload_source_iden = gr.Audio(
    source="upload", type="filepath", label="Upload file", visible=False
)
mms_identify = gr.Interface(
    fn=safe_identify,
    inputs=[
        mms_select_source_iden,
        mms_mic_source_iden,
        mms_upload_source_iden,
    ],
    outputs=gr.Label(num_top_classes=10),
    examples=LID_EXAMPLES,
    title="Máleyðmerkjari",
    description=("Tak upp ella legg eina ljóðfílu upp og fá máleyðmerkjaran at gita, hvat mál tú snakkar."),
    allow_flagging="never",
)

tabbed_interface = gr.TabbedInterface(
    [mms_transcribe, mms_synthesize, mms_identify],
    ["Talukennari", "Teldutala", "Máleyðmerkjari"],
)

with gr.Blocks() as demo:

    tabbed_interface.render()
    mms_select_source_trans.change(
        lambda x: [
            gr.update(visible=True if x == "Tak upp" else False),
            gr.update(visible=True if x == "Ljóðfíla" else False),
        ],
        inputs=[mms_select_source_trans],
        outputs=[mms_mic_source_trans, mms_upload_source_trans],
        queue=False,
    )
    mms_select_source_iden.change(
        lambda x: [
            gr.update(visible=True if x == "Tak upp frá mikrofonini" else False),
            gr.update(visible=True if x == "Vel ljóðfílu" else False),
        ],
        inputs=[mms_select_source_iden],
        outputs=[mms_mic_source_iden, mms_upload_source_iden],
        queue=False,
    )
    gr.HTML(
        """
            <div class="footer" style="text-align:center">
                <p>
                    <a href="https://ai.facebook.com" style="text-decoration: underline;" target="_blank">Meta AI</a> gjørdi málmyndilin - Koyrir á 🤗 Hugging Face 
                </p>
            </div>
           """
    )

demo.queue(concurrency_count=3)
demo.launch()