เป้าหมายของโครงการคือการกลั่นการวิจัยการรู้จำเสียงพูดอัตโนมัติ ในตอนแรกคุณสามารถโหลดไปป์ไลน์พร้อมใช้งานด้วยรุ่นที่ผ่านการฝึกอบรมมาแล้ว ได้รับประโยชน์จาก Eager 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 ])เราสนับสนุนภาษาอังกฤษ (ขอบคุณ SEQ2SEQ แบบเปิด) ผลการประเมินผลของเกณฑ์มาตรฐานภาษาอังกฤษ librispeech dev-clean อยู่ในตาราง ในการอ้างอิง DeepSpeech (Mozilla) ประสบความสำเร็จประมาณ 7.5% WER ในขณะที่ State-of-the-Art (RWTH Aachen University) เท่ากับ 2.3% (ผลการประเมินล่าสุดสามารถพบได้ที่นี่) ทั้งสองใช้โมเดลภาษาภายนอกเพื่อเพิ่มผลลัพธ์ จากการเปรียบเทียบ มนุษย์ จะได้รับ 5.83% ที่นี่ (Librispeech Dev-Clean)
| ชื่อนางแบบ | ตัวถอดรหัส | wer-dev |
|---|---|---|
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มิฉะนั้นโคลนรหัสและสร้างสภาพแวดล้อมใหม่ผ่าน 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-Recognitionที่เก็บพื้นฐาน:
ยิ่งกว่านั้นคุณสามารถสำรวจ gitHub โดยใช้วลีสำคัญเช่น ASR , DeepSpeech หรือ Speech-To-Text รายการ wer_are_we ความพยายามในการติดตามสถานะของศิลปะก็มีประโยชน์เช่นกัน