Tujuan proyek adalah untuk menyaring penelitian pengenalan suara otomatis. Pada awalnya, Anda dapat memuat pipa siap pakai dengan model yang sudah terlatih. Manfaat dari TensorFlow 2.0 yang bersemangat dan secara bebas memantau bobot model, aktivasi atau gradien.
import automatic_speech_recognition as asr
file = 'to/test/sample.wav' # sample rate 16 kHz, and 16 bit depth
sample = asr . utils . read_audio ( file )
pipeline = asr . load ( 'deepspeech2' , lang = 'en' )
pipeline . model . summary () # TensorFlow model
sentences = pipeline . predict ([ sample ])Kami mendukung bahasa Inggris (terima kasih kepada Open SEQ2SEQ). Hasil evaluasi dari tolok ukur bahasa Inggris Librispeech Dev-Clean ada di meja. Untuk referensi, Deepspeech (Mozilla) mencapai sekitar 7,5%, sedangkan canggih (RWTH Aachen University) sama dengan 2,3% WER (hasil evaluasi terbaru dapat ditemukan di sini). Keduanya, gunakan model bahasa eksternal untuk meningkatkan hasil. Sebagai perbandingan, manusia mencapai 5,83% di sini (librispeech dev-clean)
| Nama model | Decoder | Wer-dev |
|---|---|---|
deepspeech2 | tamak | 6.71 |
Ternyata Anda perlu menyesuaikan pipa sedikit. Lihatlah pipa CTC. Pipa bertanggung jawab untuk menghubungkan model jaringan saraf dengan semua transformasi non-diferensial (fitur ekstraksi atau decoding prediksi). Komponen pipa independen. Anda dapat menyesuaikannya dengan kebutuhan Anda misalnya menggunakan ekstraksi fitur yang lebih canggih, augmentasi data yang berbeda, atau menambahkan dekoder model bahasa (statis N-gram atau transformator besar). Anda dapat melakukan lebih banyak seperti mendistribusikan pelatihan menggunakan strategi, atau bereksperimen dengan kebijakan presisi campuran.
import numpy as np
import tensorflow as tf
import automatic_speech_recognition as asr
dataset = asr . dataset . Audio . from_csv ( 'train.csv' , batch_size = 32 )
dev_dataset = asr . dataset . Audio . from_csv ( 'dev.csv' , batch_size = 32 )
alphabet = asr . text . Alphabet ( lang = 'en' )
features_extractor = asr . features . FilterBanks (
features_num = 160 ,
winlen = 0.02 ,
winstep = 0.01 ,
winfunc = np . hanning
)
model = asr . model . get_deepspeech2 (
input_dim = 160 ,
output_dim = 29 ,
rnn_units = 800 ,
is_mixed_precision = False
)
optimizer = tf . optimizers . Adam (
lr = 1e-4 ,
beta_1 = 0.9 ,
beta_2 = 0.999 ,
epsilon = 1e-8
)
decoder = asr . decoder . GreedyDecoder ()
pipeline = asr . pipeline . CTCPipeline (
alphabet , features_extractor , model , optimizer , decoder
)
pipeline . fit ( dataset , dev_dataset , epochs = 25 )
pipeline . save ( '/checkpoint' )
test_dataset = asr . dataset . Audio . from_csv ( 'test.csv' )
wer , cer = asr . evaluate . calculate_error_rates ( pipeline , test_dataset )
print ( f'WER: { wer } CER: { cer } ' )Anda dapat menggunakan PIP:
pip install automatic-speech-recognitionKalau tidak, klon kode dan buat lingkungan baru melalui Conda:
git clone https://github.com/rolczynski/Automatic-Speech-Recognition.git
conda env create -f=environment.yml # or use: environment-gpu.yml
conda activate Automatic-Speech-RecognitionRepositori fundamental:
Selain itu, Anda dapat menjelajahi github menggunakan frasa kunci seperti ASR , DeepSpeech , atau Speech-To-Text . Daftar Wer_are_we, upaya melacak status seni, dapat membantu juga.