Deepang Raval 1 | Vyom Pathak 1 | Muktan Patel 1 | Brijesh Bhatt 1
Dharmsinh Desai University, Nadiad 1
Nous présentons une nouvelle approche pour améliorer les performances d'un système de reconnaissance vocale de bout en bout pour la langue gujarati. Nous suivons une approche basée sur l'apprentissage en profondeur qui comprend un réseau neuronal convolutionnel (CNN), des couches de mémoire à court terme à long terme (BILSTM) bidirectionnelles, des couches denses et une classification temporelle connexe (CTC) en tant que fonction de perte. Afin d'améliorer les performances du système avec la taille limitée de l'ensemble de données, nous présentons une technique de décodage de préfixe basée sur le modèle de langue (WLM et CLM) Pour obtenir des informations clés de notre système de reconnaissance vocale automatique (ASR), nous avons proposé différentes méthodes d'analyse. Ces informations aident à comprendre notre système ASR basé sur une langue particulière (gujarati) et peuvent régir les systèmes ASR pour améliorer les performances des langues de ressources faibles. Nous avons formé le modèle sur le corpus de la parole Microsoft, et nous observons une diminution de 5,11% du taux d'erreur de mots (WER) par rapport au modèle de base WER.
Si vous trouvez ce travail utile, veuillez citer ce travail en utilisant le bibtex suivant:
@inproceedings { raval-etal-2020-end ,
title = " End-to-End Automatic Speech Recognition for {G}ujarati " ,
author = " Raval, Deepang and
Pathak, Vyom and
Patel, Muktan and
Bhatt, Brijesh " ,
booktitle = " Proceedings of the 17th International Conference on Natural Language Processing (ICON) " ,
month = dec,
year = " 2020 " ,
address = " Indian Institute of Technology Patna, Patna, India " ,
publisher = " NLP Association of India (NLPAI) " ,
url = " https://aclanthology.org/2020.icon-main.56 " ,
pages = " 409--419 " ,
abstract = "We present a novel approach for improving the performance of an End-to-End speech recognition system for the Gujarati language. We follow a deep learning based approach which includes Convolutional Neural Network (CNN), Bi-directional Long Short Term Memory (BiLSTM) layers, Dense layers, and Connectionist Temporal Classification (CTC) as a loss function. In order to improve the performance of the system with the limited size of the dataset, we present a combined language model (WLM and CLM) based prefix decoding technique and Bidirectional Encoder Representations from Transformers (BERT) based post-processing technique. To gain key insights from our Automatic Speech Recognition (ASR) system, we proposed different analysis methods. These insights help to understand our ASR system based on a particular language (Gujarati) as well as can govern ASR systems{'} to improve the performance for low resource languages. We have trained the model on the Microsoft Speech Corpus, and we observe a 5.11{%} decrease in Word Error Rate (WER) with respect to base-model WER.",
}git clone https://github.com/01-vyom/End_2_End_Automatic_Speech_Recognition_For_Gujarati.git
python -m venv asr_env
source $PWD /asr_env/bin/activateChanger le répertoire à la racine du référentiel.
pip install --upgrade pip
pip install -r requirements.txtChanger le répertoire à la racine du référentiel.
Pour former le modèle dans le papier, exécutez cette commande:
python ./Train/train.pyNote:
PathDataAudios et PathDataTranscripts pour pointer vers un chemin d'accès approprié vers les fichiers audio et le chemin du fichier Trascript, dans le fichier Train / Feature_extractor.py.currmodel dans le fichier Train / Train.py pour modifier le nom du modèle qui est enregistré.À l'inférence en utilisant le modèle formé, exécutez:
python ./Eval/inference.pyNote:
PathDataAudios et PathDataTranscripts pour pointer vers un chemin d'accès approprié vers les fichiers audio et le chemin du fichier Trascript pour les tests.model de variable et pour modifier le nom du fichier pour les tests, modifiez la variable test_data ..pickle de références et d'hypothèse avec un nom spécifique au modèle stocké dans le dossier ./Eval/ . Pour décoder la sortie induite, exécutez:
python ./Eval/decode.pyNote:
.pickle modifiez la variable model ../Eval/ , spécifique à un modèle avec tous les types de décodage et de texte réel. Pour le post-traitement de la sortie décodée, suivez les étapes mentionnées dans ce réadme.
Pour effectuer l'analyse du système, exécutez:
python ./System Analysis/system_analysis.pyNote:
Pour sélectionner un fichier .csv de décodage spécifique au modèle pour analyser, modifiez la variable model .
Pour sélectionner un type spécifique de colonne (type d'hypothèse) pour effectuer une analyse, modifiez la variable type . Les fichiers de sortie seront enregistrés dans ./System Analysis/ , spécifiques à un modèle et à un type de décodage.
Notre algorithme atteint les performances suivantes:
| Nom de technique | Réduction de wer (%) |
|---|---|
| Préfixe avec LMS ' | 2.42 |
| Préfixe avec LMS '+ Spell Corrector Bert | 5.11 |
Note:
Le code de décodage du préfixe est basé sur les implémentations 1 et 2 open source. Le code pour le correcteur de sorts basé sur Bert est adapté de cette implémentation open source
Licencié sous la licence du MIT.