
Implementación de Pytorch del conformador: transformador acuático con convolución para el reconocimiento de voz.
Los modelos de transformadores son buenos para capturar interacciones globales basadas en contenido, mientras que CNNS explota las características locales de manera efectiva. Conformador Combine las redes neuronales de convolución y los transformadores para modelar dependencias locales y globales de una secuencia de audio de una manera eficiente de parámetros. El conformador supera significativamente los modelos anteriores basados en transformadores y CNN que logran precisiones de última generación.

Este repositorio contiene solo código de modelo, pero puede entrenar con conformador en OpenSpeech
Este proyecto recomienda Python 3.7 o superior. Recomendamos crear un nuevo entorno virtual para este proyecto (utilizando env o condemos virtuales).
pip install numpy (consulte aquí para obtener problemas para instalar Numpy).Actualmente solo admitemos la instalación del código fuente utilizando SetupTools. Consulte el código fuente y ejecute los siguientes comandos:
pip install -e .
import torch
import torch . nn as nn
from conformer import Conformer
batch_size , sequence_length , dim = 3 , 12345 , 80
cuda = torch . cuda . is_available ()
device = torch . device ( 'cuda' if cuda else 'cpu' )
criterion = nn . CTCLoss (). to ( device )
inputs = torch . rand ( batch_size , sequence_length , dim ). to ( device )
input_lengths = torch . LongTensor ([ 12345 , 12300 , 12000 ])
targets = torch . LongTensor ([[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 5 , 6 , 2 ],
[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 5 , 2 , 0 ],
[ 1 , 3 , 3 , 3 , 3 , 3 , 4 , 2 , 0 , 0 ]]). to ( device )
target_lengths = torch . LongTensor ([ 9 , 8 , 7 ])
model = Conformer ( num_classes = 10 ,
input_dim = dim ,
encoder_dim = 32 ,
num_encoder_layers = 3 ). to ( device )
# Forward propagate
outputs , output_lengths = model ( inputs , input_lengths )
# Calculate CTC Loss
loss = criterion ( outputs . transpose ( 0 , 1 ), targets , output_lengths , target_lengths ) Si tiene alguna pregunta, informes de errores y solicitudes de funciones, abra un problema en GitHub o
Contactos [email protected] por favor.
Aprecio cualquier tipo de retroalimentación o contribución. No dude en proceder con pequeños problemas como correcciones de errores, mejora de la documentación. Para contribuciones importantes y nuevas características, discuta con los colaboradores en los temas correspondientes.
Sigo PEP-8 para el estilo de código. Especialmente el estilo de las documentos es importante para generar documentación.