File size: 16,805 Bytes
42c2a9e
 
e46d17d
42c2a9e
e46d17d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99aabf2
e46d17d
 
99aabf2
 
e46d17d
 
99aabf2
e46d17d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42c2a9e
e46d17d
 
42c2a9e
e46d17d
 
42c2a9e
 
e46d17d
42c2a9e
 
e46d17d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99aabf2
 
 
e46d17d
 
99aabf2
 
 
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
## 📄 Informació
TTS natural i eficient en català: 🍵+🥑

Aquí trobareu tota la informació sobre els nostres models 🍵 Matxa i 🥑 alVoCat ,els quals han estat entrenats amb l'ús de l'aprenentatge profund. Si desitges informació específica sobre com entrenar aquests models, pots trobar-la [aquí](https://huggingface.co/BSC-LT/matcha-tts-cat-multiaccent) i [aquí](https://huggingface.co/BSC-LT/vocos-mel-22khz-cat) respectivament. El codi que hem utilitzat també es troba a Github [aquí](https://github.com/langtech-bsc/Matcha-TTS/tree/dev-cat).

## Taula de continguts
<details>
<summary>Fes clic per expandir</summary>

- [Descripció general del model](#descripció-general-del-model)
- [Usos previstos i limitacions](#usos-previstos-i-limitacions)
- [Mostres](#mostres)
- [Components principals](#components-principals)
- [El model en detall](#el-model-en-detall)
- [Adaptació al català](#adaptació-al-català)
- [Citació](#citació)  
- [Informació adicional](#informació-adicional)

</details>

## Descripció general del model

La importància de les tecnologies de text-a-veu (TTS) de codi obert per a les llengües minoritàries mai és exagerada. Aquestes tecnologies democratitzen l'accés a les solucions de TTS, proporcionant un marc perquè les comunitats desenvolupin i adapten models segons les seves necessitats lingüístiques. Per això, utilitzant un conjunt de tecnologies, hem desenvolupat diferents solucions de TTS de codi obert i en català.

Us presentem 🍵 Matxa, el primer model TTS neuronal multiparlant i multidialectal. Es combina amb el model vocoder 🥑 alVoCat, per generar unes veus expressives i d'alta qualitat, a més que funciona de una manera eficient en quatre dialectes:

* Balear
* Central
* Nord-occidental
* Valencià

Tots dos models s'ha entrenat amb dades obertes;🍵 Els models Matxa són lliures per utilitzar-los amb finalitats no comercials, però per l'ús comercial necessita una llicència directament del locutor/de la locutora. Per obtenir més informació, consulteu la secció [Llicència](#informació-adicional) i la [pàgina del model](https://huggingface.co/BSC-LT/matcha-tts-cat-multiaccent/).

## Usos previstos i limitacions

Aquest model està destinat a servir com a generador de característiques acústiques per a sistemes de text-a-veu multi-parlant per a la llengua catalana.
Ha estat ajustat mitjançant un fonemitzador català, per tant, si el model s'utilitza amb altres llengües, pot ser que no produeixi mostres intel·ligibles després de traár la seva sortida en forma d'ona de veu.

La qualitat de les mostres pot variar segons el locutor.
Això pot ser degut tan per la sensibilitat del model en aprendre freqüències específiques com per a la qualitat de les mostres per a cada locutor.

## Mostres
* Mostres femenines:

<table style="font-size:16px">
  <col width="205">
  <col width="205">
  <td>Valencià</td>
  <td>Nord-Occidental</td>
  <td>Balear</td>
<tbody
<table>
  <tbody>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk1/0.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk1/0.wav" type="audio/wav"">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk1/0.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk1/1.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk1/1.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk1/1.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk1/2.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk1/2.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk1/2.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
  </tbody>
</table>

* Mostres masculines:

<table style="font-size:16px">
  <col width="205">
  <col width="205">
<thead>
<tr>
  <td>Valencià</td>
  <td>Nord-Occidental</td>
  <td>Balear</td>
</tr>
</thead>
<tbody
<table>
  <tbody>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk0/0.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk0/0.wav" type="audio/wav"">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk0/0.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk0/1.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk0/1.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk0/1.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
    <tr>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/valencia/spk0/2.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/occidental/spk0/2.wav" type="audio/wav">
        </audio>
      </td>
      <td>
        <audio controls="" preload="none" style="width: 200px">
          audio not supported
          <source src="https://github.com/mllopartbsc/assets/raw/c6a393237e712851dd7cc7d10c70dde29d3412ac/matcha_tts_catalan/balear/spk0/2.wav" type="audio/wav">
        </audio>
      </td>
    </tr>
  </tbody>
</table>

## Components principals

El nostre model de text-a-veu adaptat per al català utilitza un procés amb diferentes etapes per a convertir el text escrit en paraules parlades de pronunciació precisa. Aquestes són les etapes:

1- Inicialment, el model analitza el text d'entrada, descomposant-lo en unitats lingüístiques més petites com ara paraules i frases. També, identifica qualsevol caràcter especial. A continuació, utilitza la nostra versió d'eSpeak, un fonemitzador de parla, per generar fonemes basats en les regles fonètiques de la llengua catalana. Per a cada accent català, s'apliquen certes regles d'eSpeak específicament adaptades.

2- El model matcha-TTS converteix aquests fonemes en un espectrograma mel, una representació visual de l'espectre de freqüències d'un so al llarg del temps. 

3- Després, aquest espectrograma s'afegeix com a input a [la nostra adaptació del vocoder Vocos,](https://huggingface.co/BSC-LT/vocos-mel-22khz-cat), que sintetitza l'ona sonora.

Emprant aquesta sèrie d'etapes, el model de TTS assegura una pronunciació precisa i un discurs en català de so natural adaptat als matisos de la llengua. El còmput d'aquestes etapes va ser realitzat pel Marenostrum 5 del Centre Nacional de Supercomputació de Barcelona, i pel Finisterrae III de CESGA.

Junts, aquestes tecnologies formen una solució TTS completa, adaptada a les necessitats dels parlants de català i exemplificant el poder de les iniciatives de codi obert per avançar en la diversitat lingüística i la inclusió.

## El model en detall

**Matcha-TTS** és una arquitectura de codificador-decodificador dissenyada per a una modelització acústica ràpida en TTS.
D'una banda, la part del codificador es basa en un codificador de text i una predicció de duració fonèmica. Junts, prediuen una mitja de les característiques acústiques.
D'altra banda, el decodificador té bàsicament un esquelet U-Net inspirat en [Grad-TTS](https://arxiv.org/pdf/2105.06337.pdf), que es basa en l'arquitectura Transformer.
En aquest últim, substituint CNNs 2D per CNNs 1D, s'aconsegueix una gran reducció en el consum de memòria i una síntesi ràpida.

**Matcha-TTS** és un model no autoregressiu entrenat amb emparellament de flux condicional d'optimització de transport (OT-CFM).
Això produeix un decodificador basat en ODE capaç de generar una alta qualitat de sortida en menys passos de síntesi que els models entrenats utilitzant score matching.

## Adaptació al català

El model original de Matcha-TTS excel·leix en anglès, però per portar les seves capacitats al català, es va dur a terme un procés multi-etapa. En primer lloc, vam fer el fine-tuning del model d'anglès al català central creant un Matxa-base, fent servir dos conjunts de dades:

 * [La nostra versió del conjunt de dades openslr-slr69.](https://huggingface.co/datasets/projecte-aina/openslr-slr69-ca-trimmed-denoised) 
  
 * [La nostra versió del conjunt de dades Festcat.](https://huggingface.co/datasets/projecte-aina/festcat_trimmed_denoised)
 
A continuació, vam fer un altre fine-tuning de Matxa-base amb el conjunt de dades LaFrescat per introduir les variants dialectals. Aquest conjunt dades es publicarà aviat, té 8,5 hores d'enregistraments per a quatre variants dialectals:

 * Balear

 * Central
 
 * Nord-Occidental
 
 * Valencià
 
Amb un locutor masculí i un femení per a cada dialecte.

Després, mitjançant l'ajustament per a aquests dialectes catalans específics, el model es va adaptar a les variacions regionals de pronunciació i cadència. Aquest enfocament meticulós garanteix que el model reflecteixi la riquesa lingüística i la diversitat cultural dins de la comunitat de parla catalana, oferint una comunicació fluida entre dialectes que prèviament no comptaven amb aquestes tecnologies.

A més de l'entrenament del model Matcha-TTS per al català, la integració del fonemitzador d'eSpeak va jugar un paper crucial en millorar la naturalitat i l'exactitud de la parla generada. Un sistema TTS consta de diversos components, cadascun dels quals contribueix a la qualitat global de la parla sintetitzada. El primer component implica el pre-processament de text, on el text d'entrada s'normalitza i s'analitza lingüísticament per identificar paraules, puntuació i característiques lingüístiques. A continuació, el text es converteix en fonemes, les unitats més petites de so en una llengua, a través d'un procés anomenat fonemització. Aquest pas és on el fonemitzador d'eSpeak destaca, ja que converteix amb precisió el text català en representacions fonètiques, capturant els subtils matisos de pronunciació específics del català. Podeu trobar la versió d'eSpeak que vam utilitzar [aquí](https://github.com/projecte-aina/espeak-ng/tree/dev-ca).

Després de la fonemització, els fonemes es passen al component de síntesi, on es transformen en parla audible. Aquí, el model Matxa pren protagonisme, generant una parla fluida i natural a partir de les representacions fonèmiques. L'ús d'un model de TTS entrenat específicament per al català, juntament amb el fonemitzador d'eSpeak, assegura una pronunciació precisa i una parla coherent, capturant la riquesa i la diversitat del català en tots els seus dialectes i varietats.

Finalment, el discurs sintetitzat passa per un post-processament, on s'apliquen característiques prosòdiques com el to, la durada i l'èmfasi per refinar encara més la sortida i fer-la sonar més natural i expressiva. Integrant el fonemitzador d'eSpeak en el flux de treball del TTS i adaptant-lo al català, juntament amb l'entrenament del model Matcha-TTS per al català, hem creat un sistema complet i efectiu per generar parla catalana de alta qualitat. Aquesta combinació de tècniques avançades i atenció meticulosa als detalls lingüístics és instrumental per superar les barreres lingüístiques i facilitar la comunicació per als parlants de català arreu del món.

## Citació

Si feu servir el model per a la vostra recerca o projecte, us agrairíem que citessiu el següent paper:

```
@misc{LTU2024,
  title={Natural and efficient TTS in Catalan: using Matcha-TTS with the Catalan language},
  author={The Language Technologies Unit from Barcelona Supercomputing Center},
  year={2024},
}
```
```
@misc{mehta2024matchatts,
      title={Matcha-TTS: A fast TTS architecture with conditional flow matching}, 
      author={Shivam Mehta and Ruibo Tu and Jonas Beskow and Éva Székely and Gustav Eje Henter},
      year={2024},
      eprint={2309.03199},
      archivePrefix={arXiv},
      primaryClass={eess.AS}
}
```

## Informació addicional

### Autor
Unitat de Tecnologies del Llenguatge del Centre Nacional de Supercomputació de Barcelona.

### Contacte
Per a més informació, si us plau, envia un correu electrònic a <langtech@bsc.es>.

### Copyright
Copyright(c) 2023 by Language Technologies Unit, Barcelona Supercomputing Center.

### Llicència
Aquesta pàgina de demostració i els scripts d'inferència es troben sota [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)

Els pesos del model tenen la llicència [Creative Commons Attribution Non-comercial 4.0](https://www.creativecommons.org/licenses/by-nc/4.0/). Aquests models són lliures per l'ús no comercial i d'investigació. L'ús comercial és possible mitjançant una llicència directe amb el locutor/la locutora. Per a més informació, contacteu amb <langtech@bsc.es> i <lafrescaproduccions@gmail.com>. Per obtenir més informació, consulteu la [pàgina del model](https://huggingface.co/BSC-LT/matcha-tts-cat-multiaccent/).

### Finançament
Aquest treball ha estat promogut i finançat per la Generalitat de Catalunya a través del [Projecte Aina](https://projecteaina.cat/).

Una part de l'entrenament dels models va ser possible gràcies al temps de comput proporcionat pel [Centro de Supercomputación de Galicia (CESGA)](https://www.cesga.es/) i també pel [Barcelona Supercomputing Center](https://www.bsc.es/) amb el seu MareNostrum 5.