الهدف من المشروع هو تقطير أبحاث التعرف على الكلام التلقائي. في البداية ، يمكنك تحميل خط أنابيب جاهز للاستخدام مع طراز تدريب مسبقًا. الاستفادة من TensorFlow 2.0 المتحمسين ومراقبة الأوزان النموذجية أو التنشيطات أو التدرجات بحرية.
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 ])نحن ندعم اللغة الإنجليزية (بفضل Open Seq2Seq). توجد نتائج التقييم للمعيار الإنجليزي Librispeech Dev-Clean في الجدول. للإشارة ، يحقق Deepspeech (Mozilla) حوالي 7.5 ٪ من WER ، في حين أن أحدث أحدث (جامعة RWTH Aachen) تساوي 2.3 ٪ (يمكن العثور على نتائج التقييم الحديثة هنا). كلاهما ، استخدم نموذج اللغة الخارجي لزيادة النتائج. بالمقارنة ، يحقق البشر 5.83 ٪ هنا (Librispeech dev-Clean)
| اسم النموذج | فك التشفير | وير ديف |
|---|---|---|
deepspeech2 | طماع | 6.71 |
بعد فترة وجيزة اتضح أنك تحتاج إلى ضبط خط الأنابيب قليلاً. ألق نظرة على خط أنابيب CTC. خط الأنابيب مسؤول عن توصيل نموذج الشبكة العصبية بجميع التحولات غير المتمايزة (ميزات استخراج أو فك تشفير التنبؤ). مكونات خط الأنابيب مستقلة. يمكنك ضبطها على احتياجاتك على سبيل المثال ، استخدم استخراج ميزة أكثر تطوراً ، أو زيادة البيانات المختلفة ، أو إضافة وحدة فك ترميز نموذج اللغة (n-grams ثابتة أو محولات ضخمة). يمكنك أن تفعل أكثر مثل توزيع التدريب باستخدام الاستراتيجية ، أو تجربة سياسة دقة مختلطة.
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 } ' )يمكنك استخدام PIP:
pip install automatic-speech-recognitionخلاف ذلك استنساخ الرمز وإنشاء بيئة جديدة عبر كوندا:
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-Recognitionالمستودعات الأساسية:
علاوة على ذلك ، يمكنك استكشاف github باستخدام عبارات رئيسية مثل ASR أو DeepSpeech أو Speech-To-Text . يمكن أن تكون القائمة WER_ARE_WE ، وهي محاولة لتتبع حالات الفن ، مفيدة أيضًا.