Deepang Raval 1 | Vyom Pathak 1 | Muktan Patel 1 | Brijesh Bhatt 1
Universidad Dharmsinh Desai, Nadiad 1
Presentamos un enfoque novedoso para mejorar el rendimiento de un sistema de reconocimiento de voz de extremo a extremo para el idioma gujarati. Seguimos un enfoque basado en el aprendizaje profundo que incluye la red neuronal convolucional (CNN), las capas bidireccionales a largo plazo a corto plazo (BILSTM), las capas densas y la clasificación temporal conexionista (CTC) como una función de pérdida. Para mejorar el rendimiento del sistema con el tamaño limitado del conjunto de datos, presentamos una técnica de decodificación de prefijo basada en el modelo de lenguaje combinado (WLM y CLM) y las representaciones del codificador bidireccional de la técnica de postprocesamiento basada en Transformers (BERT). Para obtener información clave de nuestro sistema de reconocimiento de voz automático (ASR), propusimos diferentes métodos de análisis. Estas ideas ayudan a comprender nuestro sistema ASR basado en un lenguaje particular (gujarati), así como pueden gobernar los sistemas ASR 'para mejorar el rendimiento de los bajos lenguajes de recursos. Hemos entrenado el modelo en el Microsoft Speech Corpus, y observamos una disminución del 5.11% en la tasa de error de palabras (WER) con respecto al modelo base WER.
Si encuentra útil este trabajo, cita este trabajo usando el siguiente bibtex:
@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/activateCambiar directorio a la raíz del repositorio.
pip install --upgrade pip
pip install -r requirements.txtCambiar directorio a la raíz del repositorio.
Para entrenar el modelo en el documento, ejecute este comando:
python ./Train/train.pyNota:
PathDataAudios y PathDataTranscripts para señalar a la ruta apropiada a los archivos de audio y a la ruta al archivo Trascript, en el archivo Train/Featu_Extractor.py.currmodel en el archivo Train/Train.py para cambiar el nombre del modelo que se está guardando.A inferencia utilizando el modelo entrenado, ejecute:
python ./Eval/inference.pyNota:
PathDataAudios y PathDataTranscripts para señalar a la ruta apropiada a los archivos de audio y a la ruta al archivo de Trascript para las pruebas.model de variable y para cambiar el nombre del archivo para pruebas, cambie la variable test_data ..pickle de referencias e hipótesis con un nombre específico de modelo almacenado en la carpeta ./Eval/ . Para decodificar la salida inferida, ejecute:
python ./Eval/decode.pyNota:
.pickle Cambio de retroceso la variable model ../Eval/ , específica para un modelo con todo tipo de decodificación y texto real. Para el procesamiento posterior a la salida decodificada, siga los pasos mencionados en este ReadMe.
Para realizar el análisis del sistema, ejecute:
python ./System Analysis/system_analysis.pyNota:
Para seleccionar un archivo .csv de decodificación específico del modelo para analizar, cambie la variable model .
Para seleccionar un tipo específico de columna (tipo de hipótesis) para realizar el análisis, cambie la variable type . Los archivos de salida se guardarán en ./System Analysis/ , específico para un modelo y tipo de decodificación.
Nuestro algoritmo logra el siguiente rendimiento:
| Nombre de la técnica | Reducción (%) |
|---|---|
| Prefijo con LMS ' | 2.42 |
| Prefijo con LMS ' + Corrector de hechizos Bert | 5.11 |
Nota:
El código de decodificación de prefijo se basa en 1 y 2 implementaciones de código abierto. El código para el corrector de hechizos basado en Bert se adapta de esta implementación de código abierto
Licenciado bajo la licencia del MIT.