Update app.py
Browse files
app.py
CHANGED
@@ -3,18 +3,14 @@ from transformers import VitsModel, AutoTokenizer
|
|
3 |
import torch
|
4 |
import logging
|
5 |
|
6 |
-
|
7 |
logging.basicConfig(level=logging.INFO)
|
8 |
logger = logging.getLogger(__name__)
|
9 |
|
10 |
-
|
11 |
languages = ["bambara", "boomu", "dogon", "pular", "songhoy", "tamasheq"]
|
12 |
|
13 |
-
|
14 |
models = {}
|
15 |
tokenizers = {}
|
16 |
|
17 |
-
|
18 |
examples = {
|
19 |
"bambara": "An filɛ ni ye yɔrɔ minna ni an ye an sigi ka a layɛ yala an bɛ ka baara min kɛ ɛsike a kɛlen don ka Ɲɛ wa ?",
|
20 |
"boomu": "Vunurobe wozomɛ pɛɛ, Poli we zo woro han Deeɓenu wara li Deeɓenu faralo zuun. Lo we baba a lo wara yi see ɓa Zuwifera ma ɓa Gɛrɛkela wa.",
|
@@ -24,7 +20,6 @@ examples = {
|
|
24 |
"tamasheq": "Toḍă tăfukt ɣas, issăɣră-dd măssi-s n-ašĕkrĕš ănaẓraf-net, inn'-as: 'Ǝɣĕr-dd inaxdimăn, tĕẓlĕd-asăn, sănt s-wi dd-ĕšrăynen har tĕkkĕd wi dd-ăzzarnen."
|
25 |
}
|
26 |
|
27 |
-
|
28 |
try:
|
29 |
for lang in languages:
|
30 |
logger.info(f"Loading model and tokenizer for {lang}...")
|
@@ -40,18 +35,14 @@ def generate_audio(language, text):
|
|
40 |
return None, "Please enter some text to synthesize."
|
41 |
|
42 |
try:
|
43 |
-
|
44 |
model = models[language]
|
45 |
tokenizer = tokenizers[language]
|
46 |
|
47 |
-
|
48 |
inputs = tokenizer(text, return_tensors="pt")
|
49 |
|
50 |
-
|
51 |
with torch.no_grad():
|
52 |
output = model(**inputs).waveform
|
53 |
|
54 |
-
|
55 |
waveform = output.squeeze().cpu().numpy()
|
56 |
sample_rate = model.config.sampling_rate
|
57 |
|
@@ -63,28 +54,26 @@ def generate_audio(language, text):
|
|
63 |
def load_example(language):
|
64 |
return examples.get(language, "No example available")
|
65 |
|
|
|
|
|
|
|
|
|
66 |
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
By [sudoping01](https://huggingface.co/sudoping01), from [sudoping01/malian-tts](https://huggingface.co/sudoping01/malian-tts). Fine-tuned on Meta’s MMS, CC BY-NC 4.0, non-commercial.
|
84 |
-
No setup. Type and hear it.
|
85 |
-
"""
|
86 |
-
)
|
87 |
-
|
88 |
with gr.Row():
|
89 |
language = gr.Dropdown(choices=languages, label="Language", value="bambara")
|
90 |
with gr.Column():
|
@@ -107,5 +96,4 @@ with gr.Blocks(title="Malian Languages TTS") as demo:
|
|
107 |
outputs=text
|
108 |
)
|
109 |
|
110 |
-
|
111 |
demo.launch()
|
|
|
3 |
import torch
|
4 |
import logging
|
5 |
|
|
|
6 |
logging.basicConfig(level=logging.INFO)
|
7 |
logger = logging.getLogger(__name__)
|
8 |
|
|
|
9 |
languages = ["bambara", "boomu", "dogon", "pular", "songhoy", "tamasheq"]
|
10 |
|
|
|
11 |
models = {}
|
12 |
tokenizers = {}
|
13 |
|
|
|
14 |
examples = {
|
15 |
"bambara": "An filɛ ni ye yɔrɔ minna ni an ye an sigi ka a layɛ yala an bɛ ka baara min kɛ ɛsike a kɛlen don ka Ɲɛ wa ?",
|
16 |
"boomu": "Vunurobe wozomɛ pɛɛ, Poli we zo woro han Deeɓenu wara li Deeɓenu faralo zuun. Lo we baba a lo wara yi see ɓa Zuwifera ma ɓa Gɛrɛkela wa.",
|
|
|
20 |
"tamasheq": "Toḍă tăfukt ɣas, issăɣră-dd măssi-s n-ašĕkrĕš ănaẓraf-net, inn'-as: 'Ǝɣĕr-dd inaxdimăn, tĕẓlĕd-asăn, sănt s-wi dd-ĕšrăynen har tĕkkĕd wi dd-ăzzarnen."
|
21 |
}
|
22 |
|
|
|
23 |
try:
|
24 |
for lang in languages:
|
25 |
logger.info(f"Loading model and tokenizer for {lang}...")
|
|
|
35 |
return None, "Please enter some text to synthesize."
|
36 |
|
37 |
try:
|
|
|
38 |
model = models[language]
|
39 |
tokenizer = tokenizers[language]
|
40 |
|
|
|
41 |
inputs = tokenizer(text, return_tensors="pt")
|
42 |
|
|
|
43 |
with torch.no_grad():
|
44 |
output = model(**inputs).waveform
|
45 |
|
|
|
46 |
waveform = output.squeeze().cpu().numpy()
|
47 |
sample_rate = model.config.sampling_rate
|
48 |
|
|
|
54 |
def load_example(language):
|
55 |
return examples.get(language, "No example available")
|
56 |
|
57 |
+
with gr.Blocks(title="MalianVoices") as demo:
|
58 |
+
gr.Markdown(
|
59 |
+
"""
|
60 |
+
# MalianVoices: 🇲🇱 Text-to-Speech in Six Malian Languages
|
61 |
|
62 |
+
Lightweight TTS for six Malian languages: **Bambara, Boomu, Dogon, Pular, Songhoy, Tamasheq**.
|
63 |
+
|
64 |
+
- ✅ Real-time TTS with fast response
|
65 |
+
- ✅ Runs on CPU
|
66 |
+
|
67 |
+
## How to Use
|
68 |
+
1. Pick a language from the dropdown
|
69 |
+
2. Enter your text or load an example
|
70 |
+
3. Click **"Generate Audio"** to listen
|
71 |
+
|
72 |
+
By [sudoping01](https://huggingface.co/sudoping01), from [sudoping01/malian-tts](https://huggingface.co/sudoping01/malian-tts). Fine-tuned on Meta’s MMS, CC BY-NC 4.0, non-commercial.
|
73 |
+
No setup. Type and hear it.
|
74 |
+
"""
|
75 |
+
)
|
76 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
with gr.Row():
|
78 |
language = gr.Dropdown(choices=languages, label="Language", value="bambara")
|
79 |
with gr.Column():
|
|
|
96 |
outputs=text
|
97 |
)
|
98 |
|
|
|
99 |
demo.launch()
|