|
import tempfile |
|
import gradio as gr |
|
import os |
|
from espeak_phonemizer import Phonemizer |
|
|
|
MAX_TXT_LEN = 325 |
|
|
|
fonemitzador = Phonemizer("ca") |
|
|
|
request_count = 0 |
|
|
|
def phonemiser(text, dialect): |
|
dialects = {"Central": "ca", "Valencian": "ca_va", "North-West": "ca_nw"} |
|
dialect = dialects[dialect] |
|
fonemitzador = Phonemizer(dialect) |
|
if len(text) > MAX_TXT_LEN: |
|
text = text[:MAX_TXT_LEN] |
|
print(f"Input text was cutoff since it went over the {MAX_TXT_LEN} character limit.") |
|
print(text) |
|
|
|
|
|
|
|
fonemes = fonemitzador.phonemize(text, keep_clause_breakers=True) |
|
|
|
global request_count |
|
request_count += 1 |
|
print(f"Requests: {request_count}") |
|
return fonemes |
|
|
|
description=""" |
|
Aquesta aplicació fa servir l'últim estat de l'espeak millorat per Carme Armentano del BSC |
|
https://github.com/projecte-aina/espeak-ng |
|
|
|
NOTA: El model de col·lectivat treballa amb grafemes pel que no fa servir espeak com a fonemitzador. Festival conté les seves pròpies normes fonètiques. |
|
""" |
|
article= "" |
|
|
|
iface = gr.Interface( |
|
fn=phonemiser, |
|
inputs=[ |
|
gr.Textbox( |
|
label="Text", |
|
value="L'Èlia i l'Alí a l'aula. L'oli i l'ou. Lulú olorava la lila.", |
|
), |
|
gr.Dropdown(label="Dialect", choices=["Central", "Valencian", "North-West"], |
|
value="Central", |
|
) |
|
], |
|
outputs=[ |
|
gr.Markdown(label="Fonemes") |
|
], |
|
|
|
title="Comparativa de síntesi lliure en català️", |
|
description=description, |
|
article=article, |
|
allow_flagging="never", |
|
layout="vertical", |
|
live=False, |
|
examples=[ |
|
["Duc pà sec al sac, m'assec on sóc i el suco amb suc", "ona", "ona"], |
|
["Un plat pla blanc, ple de pebre negre n’era. Un plat blanc pla, ple de pebre negre està", "ona", "ona"], |
|
["Visc al bosc i busco vesc i visc del vesc que busco al bosc", "ona", "ona"], |
|
["Una polla xica, pica, pellarica, camatorta i becarica va tenir sis polls xics, pics, pellarics, camacurts i becarics. Si la polla no hagués sigut xica, pica, pellarica, camatorta i becarica, els sis polls no haurien sigut xics, pics, pellarics, camacurts i becarics.", "ona", "ona"] |
|
] |
|
) |
|
iface.launch(server_name="0.0.0.0", server_port=7860) |
|
|