Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Les DB doivent être de la forme :

  main_folder
  |—- dev folder
  |—- test folder
  |—- train folder
  |—- dev.csv
  |—- test.csv
  |—- train.csv


les dossiers dev test et train contiennent des fichiers wave en 16bit 16kHz Mono de 5 à 20 secondes répartis selon environ dev 10% , test 10% , train 80%  du nombre total de wave
les csv sont répartis en 3 colonnes dont les noms sont à respecter :  "wav_filename", "wav_filesize", "transcript"

Pour importer l’ensemble des wav pour réaliser le modèle - trouver les wav en francais (exemple vorforge voir lien bas de page)

Pour installer deepspeech afin de construire le modèle, il faut se rendre sur le github de deepspesch : https://github.com/mozilla/DeepSpeech (Attention ne pas prendre la branche master)

Pour information,TensorFlow : IA opensource développé par Google (reconnaissance Image, audio, texte etc.) et Baidu : societe chinoise qui implémente le concept de reconnaissance vocale DeepSpeech

Mozilla : ils ont codé la transcription en utilisant tensorFlow et en suivant le concept de Baidu

Pour construire le modèle on lance la commande :

$ ./DeepSpeech.py
--train_files               # chemin du fichier train.csv
--dev_files                 # chemin du fichier dev.csv
--test_files                # chemin du fichier test.csv
--export_dir                # chemin du dossier où sera exporté le fichier output_graph.pb
--validation_step 1
--train_batch_size          # nombre de fichiers wave propagés à travers le réseau dans la catégorie train , typiquement en **2 , souvent 16, 32, 64, 128 ou 256 (nb : plus le batch size est grand, plus la mémoire utilisée sera importante)
--dev_batch_size            # nombre de fichiers wave propagés à travers le réseau dans la catégorie dev
--test_batch_size           # nombre de fichiers wave propagés à travers le réseau dans la catégorie test
--checkpoint_step 1
-—n_hidden              # « nombre » de réseaux de neurones , de préférence en **2 , souvent 512, 1024, 2048 , doit être le même à chaque entrainement
--learning_rate         # taux d’apprentissage , généralement en puissance de 10 négative , souvent compris entre 1e-1 et 1e-6 (nb : à écrire en forme décimale : ex : 0.001)
--dropout_rate              # pourcentage de neurones tuées aléatoirement entre chaque epoch , de la forme 0.xxx; souvent max 12e-2
—-epoch                 # OPTIONNEL , positif : nombre d’epoch après lequel stopper si il n’y a pas eu d’arrêt anticipé  ,  négatif : nombre d’epoch à réaliser en plus après un arrêt anticipé
--checkpoint_dir            # dossier pour les checkpoints



Pour obtenir le output_graph.pbmm :

$ cd ’export_dir’
$ wget https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.master.cpu/artifacts/public/convert_graphdef_memmapped_format
$ chmod +x convert_graphdef_memmapped_format
$ convert_graphdef_memmapped_format --in_graph=output_graph.pb --out_graph=output_graph.pbmm


Si 4 epoch successives avec un taux de loss identiques, alors early stop (arret anticipé)
par défaut, le paramétre epoch est mis à 80

Pour réaliser tous les cycles, 2 heures par époch avec un n_hidden à 2048. il faut conmpter une dizaine de cycle

Pour améliorer le model, on peut lancer plusieurs fois la commande deepseech.py qui pointe vers le même output graph mais avec les sources différnetes.
Attention, il ne faut pas changer le n_hidden ni l’alphabet 
Il faut jouer avec le learning rate et le dropout_rate pour chaque bdd utilisée pour améliorer le rendu
On peut créer notre propre source de donnée avec des vidéos sous-titrées (voir script de valentin pour le site caito.de)

sauvegarder les checkpoint et le graph avant de relancer la construction du modèle

une fois le modèle créer il faut le transformer en pbm (pour mise en memoire) voir doc

lm.binary et trie :

Pour créer un lm.binary :

...