File size: 1,760 Bytes
b740fff 828732e af86d6e b35a9f7 af86d6e b35a9f7 af86d6e 3ab0a08 ec56fd8 b35a9f7 3ab0a08 b740fff 6b6f956 3ab0a08 38e59d4 1c14c61 3e4ea74 3ab0a08 b35a9f7 3ab0a08 77de335 3ab0a08 77de335 3ab0a08 b35a9f7 3ab0a08 b829272 9da07f8 3ab0a08 |
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 |
# -*- coding: utf-8 -*-
from ttsmms import TTS
import gradio as gr
ISO_CODES = {'Tachelhit': 'shi',
'Tarifit (Latin script)': 'rif-script_latin',
'Tarifit (Arabic script)': 'rif-script_arabic',
'Taqbaylit': 'kab',
'Tamasheq': 'taq',
'Tamajaq, Tawallammat (Tifinagh script)': 'ttq-script_tifinagh'
}
mapping = {'ɣ': 'ġ',
'v': 'ġ',
'c': 'š',
'x': 'ḫ',
'T': 'ṭ',
'S': 'ṣ',
'D': 'ḍ',
'H': 'ḥ',
'Z': 'ẓ',
'3': 'ε',
'7': 'ḥ',
'9': 'q',
'gh': 'ġ',
'kh': 'ḫ'
}
MODELS = {}
def tts(text, variant):
variant_code = ISO_CODES[variant]
if variant_code not in MODELS:
MODELS[variant_code] = TTS(variant_code)
model = MODELS[variant_code]
if variant_code == 'shi':
for key, value in mapping.items():
text = text.replace(key, value)
audio = model.synthesis(text)
return (audio['sampling_rate'], audio['x'])
description = ""
examples = [["tusna tamaziɣt", "Tachelhit"],
["azul fallawn", "Tachelhit"]]
iface = gr.Interface(
fn=tts,
inputs=[
gr.Textbox(
label="Text",
value="Text to synthesize."
),
gr.Dropdown(
label="Variant",
choices=list(ISO_CODES.keys()),
value="Tachelhit"
)
],
outputs=gr.Audio(label="Output", type="numpy"),
examples=examples,
title="🗣️ TTS - Hrtn 🗣️",
description=description,
allow_flagging="manual",
flagging_options=['error', 'bad-quality', 'wrong-pronounciation'],
)
iface.launch() |