
Implementasi Pytorch dari Conformer: Transformator Augmented Convolution untuk pengenalan suara.
Model Transformer pandai menangkap interaksi global berbasis konten, sementara CNNS mengeksploitasi fitur lokal secara efektif. Conformer Combine Convolution Neural Networks dan Transformers untuk memodelkan ketergantungan lokal dan global dari urutan audio dengan cara yang efisien parameter. Konformer secara signifikan mengungguli model transformator dan CNN sebelumnya yang mencapai akurasi canggih.

Repositori ini hanya berisi kode model, tetapi Anda dapat berlatih dengan konformer di openspeech
Proyek ini merekomendasikan Python 3.7 atau lebih tinggi. Kami merekomendasikan membuat lingkungan virtual baru untuk proyek ini (menggunakan Virtual Env atau Conda).
pip install numpy (lihat di sini untuk masalah menginstal Numpy).Saat ini kami hanya mendukung instalasi dari kode sumber menggunakan setuptools. Periksa kode sumber dan jalankan perintah berikut:
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 ) Jika Anda memiliki pertanyaan, laporan bug, dan permintaan fitur, silakan buka masalah di GitHub atau
Kontak [email protected] Tolong.
Saya menghargai segala jenis umpan balik atau kontribusi. Jangan ragu untuk melanjutkan dengan masalah kecil seperti perbaikan bug, peningkatan dokumentasi. Untuk kontribusi besar dan fitur baru, silakan diskusikan dengan kolaborator dalam masalah yang sesuai.
Saya mengikuti PEP-8 untuk gaya kode. Terutama gaya Docstrings penting untuk menghasilkan dokumentasi.