
Pytorch Mise en œuvre du conformère: transformateur augmenté en convolution pour la reconnaissance de la parole.
Les modèles de transformateurs sont bons pour capturer les interactions globales basées sur le contenu, tandis que CNNS exploite efficacement les caractéristiques locales. CONFORMER COMBINE Les réseaux neuronaux de convolution et les transformateurs en modéliser à la fois les dépendances locales et globales d'une séquence audio de manière économe en paramètres. Le conformère surpasse significativement les modèles de transformateur et de CNN précédents atteignant des précisions de pointe.

Ce référentiel ne contient que du code de modèle, mais vous pouvez vous entraîner avec le conformère à OpenSpeech
Ce projet recommande Python 3,7 ou plus. Nous vous recommandons de créer un nouvel environnement virtuel pour ce projet (en utilisant Virtual Env ou Conda).
pip install numpy (reportez-vous ici pour l'installation de Numpy).Actuellement, nous prenons uniquement l'installation à partir du code source à l'aide de setuptools. Découvrez le code source et exécutez les commandes suivantes:
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 vous avez des questions, des rapports de bogues et des demandes de fonctionnalités, veuillez ouvrir un problème sur GitHub ou
contacts [email protected] s'il vous plaît.
J'apprécie tout type de rétroaction ou de contribution. N'hésitez pas à résoudre de petits problèmes tels que les corrections de bogues, l'amélioration de la documentation. Pour les contributions majeures et les nouvelles fonctionnalités, veuillez discuter avec les collaborateurs dans les questions correspondantes.
Je suis PEP-8 pour le style de code. En particulier, le style des docstrings est important pour générer de la documentation.