conformer
v1.0

Pytorch實施構象異構體:卷積調格的變壓器以進行語音識別。
變壓器模型擅長捕獲基於內容的全局交互,而CNNS有效利用本地功能。構象體將捲積神經網絡和變壓器結合在一起,以參數效率的方式對音頻序列的局部和全局依賴性進行建模。構象異構體的表現明顯優於先前的變壓器和基於CNN的模型,該模型可實現最先進的精度。

該存儲庫僅包含模型代碼,但是您可以在OpenSpeech上使用構象異構體訓練
該項目建議Python 3.7或更高。我們建議為該項目(使用Virtual Env或Conda)創建一個新的虛擬環境。
pip install numpy (請參閱此處的問題安裝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的風格對於生成文檔很重要。