
Implementação de Pytorch de Conformer: Transformador agitado por convolução para reconhecimento de fala.
Os modelos de transformadores são bons em capturar interações globais baseadas em conteúdo, enquanto o CNNS explora os recursos locais de maneira eficaz. O conformador combina redes e transformadores neurais de convolução para modelar dependências locais e globais de uma sequência de áudio de maneira eficiente em parâmetro. O conformador supera significativamente os modelos anteriores e baseados no transformador e na CNN, atingindo precisões de última geração.

Este repositório contém apenas código de modelo, mas você pode treinar com o conformador no OpenSpeech
Este projeto recomenda o Python 3.7 ou superior. Recomendamos a criação de um novo ambiente virtual para este projeto (usando o Virtual ENV ou o CONDA).
pip install numpy (consulte aqui o problema da instalação do Numpy).Atualmente, suportamos apenas a instalação do código -fonte usando o SetupTools. Confira o código -fonte e execute os seguintes 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 ) Se você tiver alguma dúvida, relatórios de bugs e solicitações de recursos, abra um problema no GitHub ou
contacts [email protected], por favor.
Agradeço qualquer tipo de feedback ou contribuição. Sinta -se à vontade para prosseguir com pequenos problemas, como correções de bugs, melhoria da documentação. Para grandes contribuições e novos recursos, discuta com os colaboradores em questões correspondentes.
Eu sigo o pep-8 para o estilo de código. Especialmente o estilo de Docstrings é importante para gerar documentação.