
Реализация Pytorch Confertermer: Convolution-Augment Transformer для распознавания речи.
Модели трансформаторов хороши в захвате глобальных взаимодействий на основе контента, в то время как CNN эффективно используют локальные функции. Confermer объединяют нейронные сети сверток и трансформаторы для моделирования как локальных, так и глобальных зависимостей аудио последовательности в соответствии с параметрами. Confermer значительно превосходит предыдущие модели трансформатора и CNN, достигающие современной точности.

Этот репозиторий содержит только код модели, но вы можете тренироваться с конформером в OpenSpeech
Этот проект рекомендует Python 3.7 или выше. Мы рекомендуем создать новую виртуальную среду для этого проекта (используя Virtual Env или Conda).
pip install numpy (см.В настоящее время мы поддерживаем установку только из исходного кода с помощью Setuptools. Осмотрите исходный код и запустите следующие команды:
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 ) Если у вас есть какие -либо вопросы, отчеты об ошибках и запросы на функции, откройте проблему на GitHub или
Контакты [email protected], пожалуйста.
Я ценю любые отзывы или вклад. Не стесняйтесь выполнять небольшие проблемы, такие как исправления ошибок, улучшение документации. Для основных вкладов и новых функций, пожалуйста, обсудите с сотрудниками в соответствующих вопросах.
Я следую PEP-8 для стиля кода. Особенно стиль DocStrings важен для создания документации.