-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
46 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,63 +1,76 @@ | ||
# Deepspeech Català | ||
|
||
An ASR model created with the Mozilla [DeepSpeech](https://github.com/mozilla/DeepSpeech) engine. (Jump to [english](#deepspeech-catalan-asr-model)) | ||
An ASR model created with the Mozilla [DeepSpeech](https://github.com/mozilla/DeepSpeech) engine. For a comparison with | ||
other catalan ASR models check the [Catalan Speech Recognition Benchmark](https://github.com/ccoreilly/catalan-speech-recognition-benchmark) | ||
|
||
Model de reconeixement de la parla creat amb el motor [DeepSpeech](https://github.com/mozilla/DeepSpeech) de Mozilla. Us podeu descarregar l'última versió [aquí](https://github.com/ccoreilly/deepspeech-catala/releases). | ||
|
||
Pots provar el model enviant un missatge vocal al bot de Telegram [DeepSpeechCatalà](https://t.me/DeepSpeechCatalaBot) | ||
|
||
## Motivació | ||
|
||
La motivació principal és la d'aprendre, pel que el model evoluciona constantment a mida que vaig fent proves. També tenia curiositat per saber | ||
qué era possible amb el corpus lliure actual de [CommonVoice](https://voice.mozilla.org/ca/datasets) (la resposta hauria de motivar a tothom a contribuïr-hi encara més). | ||
La motivació principal és la d'aprendre, pel que el model evoluciona constantment a mida que vaig fent proves, però també la de contribuïr a millorar la presència del català en les tecnologies de la parla lliures i obertes. | ||
|
||
## Com fer-lo servir | ||
|
||
Descarregueu-vos el model i l'scorer i feu servir el motor d'inferència deepspeech per a inferir el text d'un arxiu audio (16Hz mono WAV) | ||
|
||
``` | ||
$ pip install deepspeech@0.7.1 | ||
$ deepspeech --model deepspeech-catala-0.6.0.pbmm --scorer kenlm.scorer --audio file.wav | ||
$ pip install deepspeech | ||
$ deepspeech --model deepspeech-catala.pbmm --scorer kenlm.scorer --audio file.wav | ||
``` | ||
|
||
## Corpus emprats | ||
|
||
En la taula comparativa de models es fa referència als següents corpus de veu en català. Alguns s'han | ||
fet servir per entrenar models mentre que altres exclusivament per l'avaluació. | ||
|
||
- CV4: Common Voice Corpus 4 (ca_295h_2019-12-10) [[link](https://commonvoice.mozilla.org/ca/datasets)] | ||
- CV5.1: Common Voice Corpus 5.1 (ca_579h_2020-06-22) [[link](https://commonvoice.mozilla.org/ca/datasets)] | ||
- CV6.1: Common Voice Corpus 6.1 (ca_748h_2020-12-11) [[link](https://commonvoice.mozilla.org/ca/datasets)] | ||
- PPC: ParlamentParla Clean de [Col·lectivaT](https://collectivat.cat/asr) [[link](https://www.openslr.org/59/)] | ||
- FC: FestCat [[link](http://festcat.talp.cat/devel.php)] | ||
- GC: Google Crowdsourced [[link](https://www.openslr.org/69/)] | ||
- SJ: Un corpus privat basat en l'audiollibre “La llegenda de Sant Jordi” de Care Santos i Dani Cruz | ||
|
||
## Models de llenguatge (Scorer) | ||
|
||
També anomenat "Scorer" al DeepSpeech, ja que "puntua" la probabilitat que una paraula vingui després d'una altra. Els [models de llenguatge](https://ca.wikipedia.org/wiki/Model_de_llenguatge) que es fan servir habitualment en el reconeixement de la parla són N-Grames que representen la probabilitat de subcadenes de paraules de mida n on 1 ≤ n ≤ N. | ||
|
||
Un mateix model acústic donarà diferents resultats segons el model de llenguatge que fem servir i és aconsellable adaptar el model de llenguatge al domini | ||
lingüístic de la nostra aplicació. Durant l'entrenament i l'avaluació dels diferents models he anat provant diferents models de llenguatge basats en conjunts de dades que podeu trobar al directori `lm` d'aquest repositori. | ||
|
||
## Comparativa de models | ||
|
||
A continuació una comparativa de les diferents versions del model, el corpus emprat i el resultats de l'avaluació. | ||
A continuació una comparativa de les diferents versions del model, el corpus i scorer emprats i el resultats de l'avaluació (WER). | ||
|
||
Les versions anteriors a la 0.4.0 feien servir un alfabet sense vocals accentuades pel que no es consideren representatius. | ||
Les versions anteriors a la 0.4.0 feien servir un alfabet sense vocals accentuades pel que no es consideren en la comparativa. | ||
|
||
### Corpus d'avaluació ParlamentParla | ||
### WER del dataset test de cada model | ||
|
||
Nota: Per la versió 0.6.0 del model vaig combinar el corpus complet (train, dev i test) de CommonVoice amb el de [ParlamentParlaClean](https://collectivat.cat/asr) per després barrejar-lo i dividir-lo en tres sets: train (75%), dev (20%) i test(5%). D'aquesta manera s'ha augmentat el nombre de dades d'entrenament. Com que degut a això el set test conté dades del corpus CommonVoice que podrien haver estat emprades en l'entrenament dels altres models, s'han avaluat tots els models exclusivament amb 1713 frases que cap model ha mai vist (totes del corpus ParlamentParlaClean). | ||
El dataset test de cada model és diferent pel que no es poden comparar entre sí però s'afegeix a mode de documentació. | ||
|
||
| Model | Corpus | Dades augmentades? | WER | CER | Loss | | ||
| --------------------------------------------------------------------- | --------------------------------- | ------------------ | ------ | ------ | ------ | | ||
| [email protected] | CommonVoice | No | 30,16% | 13,79% | 112,96 | | ||
| [email protected] | CommonVoice | Sí | 29,66% | 13,84% | 108,52 | | ||
| [email protected] | CommonVoice + ParlamentParlaClean | No | 13,85% | 5,62% | 50,49 | | ||
| [stashify@deepspeech_cat](https://github.com/stashify/deepspeech_cat) | CommonVoice? | Sí | 22,62% | 13,59% | 80,45 | | ||
|
||
### Corpus d'avaluació [FestCat](http://festcat.talp.cat/devel.php) | ||
| Model | Model Base | Dropped layers | Versió DeepSpeech | Corpus | Scorer | WER | | ||
| ----- | ------------ | -------------- | ----------------- | ---------------- | ------ | ------ | | ||
| 0.4 | Anglès 0.7.0 | 1 | 0.7.0 | CV4 | Oscar | 30,16% | | ||
| 0.5 | Anglès 0.7.0 | 1 | 0.7.0 | CV4 | Oscar | 29,66% | | ||
| 0.6 | Anglès 0.7.0 | 1 | 0.7.0 | CV4 + PPC | Oscar | 13,85% | | ||
| 0.7 | Anglès 0.7.2 | 1 | 0.7.0 | CV4 + PPC + FC | TV3 | 16,95% | | ||
|
||
| Model | Corpus | Dades augmentades? | WER | CER | Loss | | ||
| --------------------------------------------------------------------- | --------------------------------- | ------------------ | ------ | ------ | ------ | | ||
| [email protected] | CommonVoice | No | 77,60% | 65,62% | 243,25 | | ||
| [email protected] | CommonVoice | Sí | 78,12% | 65,61% | 235,60 | | ||
| [email protected] | CommonVoice + ParlamentParlaClean | No | 76,10% | 65,16% | 240,69 | | ||
| [stashify@deepspeech_cat](https://github.com/stashify/deepspeech_cat) | CommonVoice? | Sí | 80,58% | 66,82% | 180,81 | | ||
### WER del corpus Google Crowdsourced | ||
|
||
Aquesta avaluació demostra com el models no generalitzen gaire bé. | ||
| Model | Model Base | Dropped layers | Versió DeepSpeech | Corpus | Scorer | WER | | ||
| ----- | ------------ | -------------- | ----------------- | ---------------- | ------ | ------ | | ||
| 0.6 | Anglès 0.7.0 | 1 | 0.7.0 | CV4 + PPC | Oscar* | 12,75% | | ||
| 0.7 | Anglès 0.7.2 | 1 | 0.7.0 | CV4 + PPC + FC | TV3 | 21,69% | | ||
|
||
El corpus FestCat té una variablititat major pel que fa al nombre de paraules per frase, amb el 90% entre 2 i 23 paraules, mentre que en el corpus de CommonVoice la major part de les frases contenen entre 3 i 16 paraules. | ||
(*) L'scorer Oscar conté les probabilitats extretes de les transcripcions del dataset pel que la WER està esbiaixada. | ||
|
||
Com era d'esperar, avaluant els models només amb les frases del corpus d'avaluació que contenen 4 o més paraules el resultat millora: | ||
### WER del corpus Sant Jordi | ||
|
||
| Model | Corpus | Dades augmentades? | WER | CER | Loss | | ||
| --------------------------------------------------------------------- | --------------------------------- | ------------------ | ------ | ------ | ------ | | ||
| [email protected] | CommonVoice | No | 58,78% | 46,61% | 193,85 | | ||
| [email protected] | CommonVoice | Sí | 58,94% | 46,47% | 188,42 | | ||
| [email protected] | CommonVoice + ParlamentParlaClean | No | 56,68% | 46,00% | 189,03 | | ||
| [stashify@deepspeech_cat](https://github.com/stashify/deepspeech_cat) | CommonVoice? | Sí | 61,11% | 48,16% | 144,78 | | ||
| Model | Model Base | Dropped layers | Versió DeepSpeech | Corpus | Scorer | WER | | ||
| ----- | ------------ | -------------- | ----------------- | ---------------- | ------ | ------ | | ||
| 0.6 | Anglès 0.7.0 | 1 | 0.7.0 | CV4 + PPC | Oscar | 28,45% | | ||
| 0.7 | Anglès 0.7.2 | 1 | 0.7.0 | CV4 + PPC + FC | TV3 | 44,88% | | ||
|
||
## Possibles següents passos | ||
|
||
|