Deepang Raval 1 | Vyom Pathak 1 | Muktan Patel 1 | Brijesh Bhatt 1
Universidade Dharmsinsinh Desai, Nadiad 1
Apresentamos uma nova abordagem para melhorar o desempenho de um sistema de reconhecimento de fala de ponta a ponta para a língua Gujarati. Seguimos uma abordagem profunda baseada em aprendizado, que inclui a rede neural convolucional (CNN), camadas bidirecionais de memória de curto prazo de longo prazo (BILSTM), camadas densas e classificação temporal conexionista (CTC) como uma função de perda. Para melhorar o desempenho do sistema com o tamanho limitado do conjunto de dados, apresentamos uma técnica de decodificação baseada em modelo de linguagem combinada (WLM e CLM) e representações de codificador bidirecional da técnica de pós-processamento baseada em Transformers (BERT). Para obter informações importantes do nosso sistema de reconhecimento automático de fala (ASR), propusemos diferentes métodos de análise. Esses insights ajudam a entender nosso sistema ASR com base em um idioma específico (Gujarati), bem como pode governar os sistemas ASR 'para melhorar o desempenho de idiomas de baixo recurso. Treinamos o modelo no corpus da Microsoft Speech e observamos uma diminuição de 5,11% na taxa de erro de palavras (WER) em relação ao modelo de base.
Se você achar esse trabalho útil, cite este trabalho usando o seguinte 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/activateAltere o diretório para a raiz do repositório.
pip install --upgrade pip
pip install -r requirements.txtAltere o diretório para a raiz do repositório.
Para treinar o modelo no papel, execute este comando:
python ./Train/train.pyObservação:
PathDataAudios e PathDataTranscripts para apontar para o caminho apropriado para os arquivos de áudio e o caminho para o arquivo TRASCRIPT, no arquivo TRIN/PRESTEMENTE_EXTRATOR.PY.currmodel no arquivo de trem/trem.py para alterar o nome do modelo que está sendo salvo.Para inferência usando o modelo treinado, execute:
python ./Eval/inference.pyObservação:
PathDataAudios e PathDataTranscripts para apontar para o caminho apropriado para os arquivos de áudio e o caminho para o arquivo TRASCRIPT para teste.model variável e alterar o nome do arquivo para teste, altere a variável test_data ..pickle de referências e hipótese com um nome específico do modelo armazenado na pasta ./Eval/ . Para decodificar a saída inferida, execute:
python ./Eval/decode.pyObservação:
.pickle altere a variável model ../Eval/ , específico para um modelo com todos os tipos de decodificação e texto real. Para pós-processamento da saída decodificada, siga as etapas mencionadas nesta leitura.
Para executar a análise do sistema, execute:
python ./System Analysis/system_analysis.pyObservação:
Para selecionar um arquivo .csv de decodificação específico do modelo para analisar, altere a variável model .
Para selecionar um tipo específico de coluna (tipo de hipótese) para executar a análise, altere a variável type . Os arquivos de saída serão salvos em ./System Analysis/ , específico para um modelo e tipo de decodificação.
Nosso algoritmo atinge o seguinte desempenho:
| Nome da técnica | WER (%) redução |
|---|---|
| Prefixo com LMS ' | 2.42 |
| Prefixo com o corretor de feitiços do LMS + Bert | 5.11 |
Observação:
O código de decodificação do prefixo é baseado em 1 e 2 implementações de código aberto. O código para o corretor de feitiços baseado em Bert é adaptado a partir desta implementação de código aberto
Licenciado sob a licença do MIT.