Skip to content

Commit

Permalink
Versió 0.7
Browse files Browse the repository at this point in the history
  • Loading branch information
ccoreilly committed Jun 30, 2020
1 parent 57f5897 commit 4572e52
Showing 1 changed file with 46 additions and 33 deletions.
79 changes: 46 additions & 33 deletions README.md
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 || 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? || 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 || 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? || 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 || 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? || 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

Expand Down

0 comments on commit 4572e52

Please sign in to comment.