กลับไปหน้าบทความ

อ่าน 5 นาที

เอฟเอ็มแอลแอลอาร์

ในด้าน การประมวลผลสัญญาณ การถดถอยเชิง เส้นความน่าจะเป็นสูงสุดในพื้นที่คุณลักษณะ ( feature space Maximum Likelihood Linear Regression หรือ fMLLR ) เป็นการแปลงคุณลักษณะแบบทั่วโลก...

เอฟเอ็มแอลแอลอาร์

ในด้านการประมวลผลสัญญาณ การถดถอยเชิง เส้นความน่าจะเป็นสูงสุดในพื้นที่คุณลักษณะ ( feature space Maximum Likelihood Linear RegressionหรือfMLLR ) เป็นการแปลงคุณลักษณะแบบทั่วโลก ซึ่งโดยทั่วไปจะนำไปใช้ในลักษณะที่ปรับให้เข้ากับผู้พูด โดย fMLLR จะแปลงคุณลักษณะทางเสียงไปเป็นคุณลักษณะที่ปรับให้เข้ากับผู้พูดโดยใช้การดำเนินการคูณกับเมทริกซ์การแปลงในเอกสารบางฉบับ fMLLR ยังเป็นที่รู้จักในชื่อ การถดถอยเชิงเส้นความน่าจะเป็นสูงสุดแบบมีข้อจำกัด ( Constrained Maximum Likelihood Linear RegressionหรือcMLLR )

ภาพรวม

การแปลง fMLLR นั้นได้รับการฝึกฝนในแง่ของความน่าจะเป็นสูงสุดบนข้อมูลการปรับตัว การแปลงเหล่านี้สามารถประมาณค่าได้หลายวิธี แต่ใน fMLLR จะพิจารณาเฉพาะการประมาณค่าความน่าจะเป็นสูงสุด (ML) เท่านั้น การแปลง fMLLR ได้รับการฝึกฝนบนชุดข้อมูลการปรับตัวเฉพาะชุดหนึ่ง เพื่อให้ได้ค่าความน่าจะเป็นสูงสุดของข้อมูลการปรับตัวนั้น เมื่อกำหนดชุดแบบจำลองปัจจุบัน

เทคนิคนี้เป็นแนวทางที่ใช้กันอย่างแพร่หลายสำหรับการปรับตัวของผู้พูดในการรู้จำเสียงพูดแบบHMM [ 1 ] [ 2 ] งานวิจัยในภายหลัง[ 3 ] ยังแสดงให้เห็นว่า fMLLR เป็นคุณลักษณะทางเสียงที่ยอดเยี่ยมสำหรับ โมเดลการรู้จำเสียงพูดแบบไฮบริด DNN/HMM [ 4 ]

ข้อดีของ fMLLR ได้แก่:

  • กระบวนการปรับตัวสามารถดำเนินการได้ในขั้นตอนการประมวลผลล่วงหน้า และเป็นอิสระจากกระบวนการฝึกฝนและการถอดรหัสASR
  • คุณลักษณะที่ปรับปรุงแล้วประเภทนี้สามารถนำไปใช้กับโครงข่ายประสาทเทียมเชิงลึก (DNN)เพื่อทดแทนเมลสเปกโตรแกรม ที่ใช้กันทั่วไป ในแบบจำลองการรู้จำเสียงพูดแบบครบวงจรได้
  • กระบวนการปรับตัวของผู้พูดของ fMLLR ส่งผลให้ประสิทธิภาพของ โมเดล ASR เพิ่มขึ้นอย่างมาก จึงมีประสิทธิภาพเหนือกว่าการแปลงหรือคุณลักษณะอื่นๆ เช่นMFCCs (Mel-Frequency Cepstral Coefficients) และFBANKs (Filter bank)
  • คุณสมบัติ fMLLR สามารถใช้งานได้อย่างมีประสิทธิภาพด้วยชุดเครื่องมือเสียงเช่นKaldi

ปัญหาและข้อเสียที่สำคัญของ fMLLR:

  • เมื่อปริมาณข้อมูลการปรับตัวมีจำกัด เมทริกซ์การแปลงมักจะเกิดการโอเวอร์ฟิตกับข้อมูลที่กำหนด ได้ง่าย

การคำนวณการแปลง fMLLR

การแปลงคุณลักษณะของ fMLLR สามารถคำนวณได้อย่างง่ายดายด้วยเครื่องมือเสียงโอเพนซอร์สKaldiสคริปต์ Kaldi ใช้แผนการประมาณค่ามาตรฐานที่อธิบายไว้ในภาคผนวก B ของเอกสารต้นฉบับ[ 1 ]โดยเฉพาะส่วนภาคผนวก B.1 "วิธีโดยตรงเหนือแถว"

ในสูตรของ Kaldi นั้น fMLLR เป็นการแปลงคุณลักษณะเชิงเส้นแบบแอฟฟินในรูปแบบ→ ซึ่งสามารถเขียนได้ในรูปแบบ→W โดยที่= คือคุณลักษณะทางเสียงที่มีเลข 1 ต่อท้าย โปรดสังเกตว่านี่แตกต่างจากเอกสารบางฉบับที่เลข 1 มาก่อนในรูป แบบ =

ข้อมูลสถิติที่เพียงพอที่จัดเก็บไว้มีดังนี้:

โดยที่คือเมทริกซ์ผกผันของความแปรปรวนร่วม

แล้วมิติของฟีเจอร์อยู่ ที่ไหน :

สำหรับการตรวจสอบอย่างละเอียดที่อธิบาย fMLLR และเทคนิคการประมาณค่าที่ใช้กันทั่วไป โปรดดูเอกสารต้นฉบับ "การแปลงเชิงเส้นความน่าจะเป็นสูงสุดสำหรับการรู้จำเสียงพูดแบบ HMM [ 1 ] "

โปรดทราบว่าสคริปต์ Kaldi ที่ทำการแปลงคุณลักษณะของ fMLLR แตกต่างจาก[ 1 ]โดยใช้คอลัมน์ของค่าผกผันแทนแถวโคแฟกเตอร์ กล่าวอีกนัยหนึ่งคือ ปัจจัยของดีเทอร์มิแนนต์จะถูกละเลย เนื่องจากไม่มีผลต่อผลลัพธ์การแปลงและอาจก่อให้เกิดอันตรายจากค่าตัวเลขต่ำกว่าหรือสูงกว่าที่กำหนดได้

เมื่อเปรียบเทียบกับคุณสมบัติหรือการแปลงอื่นๆ

ผลการทดลองแสดงให้เห็นว่า การใช้คุณลักษณะ fMLLR ในการรู้จำเสียงพูด ช่วยให้ได้ผลลัพธ์ที่ดีขึ้นอย่างต่อเนื่องเมื่อเทียบกับคุณลักษณะทางเสียงอื่นๆ บนชุดข้อมูลมาตรฐานที่ใช้กันทั่วไปหลายชุด ( TIMIT , LibriSpeechเป็นต้น)

โดยเฉพาะอย่างยิ่ง คุณสมบัติ fMLLR มีประสิทธิภาพเหนือกว่า ค่าสัมประสิทธิ์ MFCCและFBANKซึ่งเป็นผลมาจากกระบวนการปรับตัวของผู้พูดที่ fMLLR ดำเนินการเป็นหลัก[ 3 ]

ใน[ 3 ]อัตราข้อผิดพลาดของหน่วยเสียง (PER, %) ได้รับการรายงานสำหรับชุดทดสอบของTIMITด้วยสถาปัตยกรรมโครงข่ายประสาทเทียมต่างๆ:

ผลลัพธ์ PER ที่ได้จาก Pytorch-Kaldi [ 3 ]
รุ่น/คุณสมบัติ เอ็มเอฟซีซีเอฟบีแบงก์ เอฟเอ็มแอลแอลอาร์
เอ็มแอลพี 18.2 18.7 16.7
อาร์เอ็นเอ็น 17.7 17.2 15.9
LSTM 15.1 14.3 14.5
จีอาร์ยู 16.0 15.2 14.9
หลี่-กรู 15.3 14.9 14.2

ตามที่คาดไว้ คุณสมบัติของ fMLLR มีประสิทธิภาพเหนือกว่า ค่าสัมประสิทธิ์ ของ MFCCsและFBANKsแม้ว่าจะใช้โครงสร้างโมเดลที่แตกต่างกันก็ตาม

ในขณะที่MLP (multi-layer perceptron) ทำหน้าที่เป็นพื้นฐานที่เรียบง่าย แต่RNN , LSTMและGRUล้วนเป็นแบบจำลองแบบวนซ้ำที่เป็นที่รู้จักกันดี

สถาปัตยกรรม Li-GRU [ 5 ]ใช้เกตเดียว จึงช่วยประหยัดการคำนวณได้ 33% เมื่อเทียบกับโมเดล GRU มาตรฐาน Li-GRU จึงสามารถแก้ไขปัญหาการหายไปของเกรเดียนต์ของโมเดลแบบวนซ้ำได้อย่างมีประสิทธิภาพ

ดังนั้น ผลลัพธ์ที่ดีที่สุดจึงได้จากการใช้โมเดล Li-GRU กับคุณลักษณะ fMLLR

ดึงคุณลักษณะ fMLLR ด้วย Kaldi

สามารถสกัด fMLLR ได้ตามที่ระบุไว้ในสูตร s5 ของ Kaldi

สคริปต์ Kaldi สามารถดึงคุณลักษณะ fMLLR จากชุดข้อมูลต่างๆ ได้อย่างแน่นอน โดยด้านล่างนี้คือขั้นตอนตัวอย่างพื้นฐานในการดึงคุณลักษณะ fMLLR จากคลังข้อมูลเสียงแบบโอเพนซอร์ส Librispeech

โปรดทราบว่าคำแนะนำด้านล่างนี้ใช้สำหรับเซตย่อยtrain-clean-100, train-clean-360, dev-clean, และtest-clean,

แต่สามารถขยายเพื่อรองรับชุดอื่นๆ ได้อย่างง่ายดายdev-other, test-other, และtrain-other-500.

  1. คำแนะนำเหล่านี้อ้างอิงจากโค้ดที่ให้ไว้ในที่เก็บ GitHub นี้ ซึ่งประกอบด้วยสูตร Kaldi สำหรับชุดข้อมูล LibriSpeech เพื่อดำเนินการกระบวนการแยกคุณลักษณะ fMLLR โปรดแทนที่ไฟล์ภายใต้ $KALDI_ROOT/egs/librispeech/s5/ด้วยไฟล์ในที่เก็บดังกล่าว
  2. ติดตั้งKaldi
  3. ติดตั้งKaldiio
  4. หากใช้งานบนเครื่องเดียว ให้เปลี่ยนบรรทัดต่อไปนี้$KALDI_ROOT/egs/librispeech/s5/cmd.shเพื่อแทนที่queue.plด้วยrun.pl:
    export train_cmd = "run.pl --mem 2G"export decode_cmd = "run.pl --mem 4G"export mkgraph_cmd = "run.pl --mem 8G"
  5. เปลี่ยนdataพาธเป็นrun.shพาธข้อมูล LibriSpeech ของคุณ โดยไดเร็กทอรีLibriSpeech/ควรอยู่ภายใต้พาธนั้น ตัวอย่างเช่น:
    ข้อมูล= /media/user/SSD # ตัวอย่างเส้นทาง
  6. ติดตั้งflacด้วย:sudo apt-get install flac
  7. รันสูตร Kaldi run.shสำหรับ LibriSpeech อย่างน้อยจนถึงขั้นตอนที่ 13 (รวมอยู่ด้วย) เพื่อความสะดวก คุณสามารถใช้ไฟล์ run.sh ที่แก้ไขแล้ว ได้
  8. คัดลอกexp/tri4b/trans.*ไฟล์exp/tri4b/decode_tgsmall_train_clean_*/โดยใช้คำสั่งต่อไปนี้:
    mkdir exp/tri4b/decode_tgsmall_train_clean_100 && cp exp/tri4b/trans.* exp/tri4b/decode_tgsmall_train_clean_100/ 
  9. คำนวณคุณลักษณะ fMLLR โดยเรียกใช้สคริปต์ต่อไปนี้ ซึ่งสามารถดาวน์โหลดได้ที่นี่ :
    #!/bin/bash. ./cmd.sh ## คุณจะต้องเปลี่ยน cmd.sh เป็นชื่อไฟล์ที่ใช้งานได้บนระบบของคุณ. ./path.sh ## เรียกใช้เครื่องมือ/ยูทิลิตี้ (นำเข้า queue.pl)gmmdir = exp/tri4b สำหรับ chunk ใน dev_clean test_clean train_clean_100 train_clean_360 ; ทำซ้ำdir = fmllr/ $chunksteps/nnet/make_fmllr_feats.sh --nj 10 --cmd " $train_cmd " \--transform-dir $gmmdir /decode_tgsmall_ $chunk \$dir data/ $chunk $gmmdir $dir /log $dir /data || ทางออก1compute-cmvn-stats --spk2utt = ark:data/ $chunk /spk2utt scp:fmllr/ $chunk /feats.scp ark: $dir /data/cmvn_speaker.ark เสร็จแล้ว
  10. คำนวณการจัดแนวโดยใช้:
    # การจัดตำแหน่งบน dev_clean และ test_cleansteps/align_fmllr.sh --nj 10 data/dev_clean data/lang exp/tri4b exp/tri4b_ali_dev_clean steps/align_fmllr.sh --nj 10 data/test_clean data/lang exp/tri4b exp/tri4b_ali_test_clean steps/align_fmllr.sh --nj 30 data/train_clean_100 data/lang exp/tri4b exp/tri4b_ali_clean_100 steps/align_fmllr.sh --nj 30 data/train_clean_360 data/lang exp/tri4b exp/tri4b_ali_clean_360 
  11. ใช้CMVNและดัมพ์คุณสมบัติ fMLLR ไปยังไฟล์ .ark ใหม่ สคริปต์สามารถดาวน์โหลดได้ที่นี่ :
    #!/bin/bashdata = /user/kaldi/egs/librispeech/s5 ## คุณจะต้องเปลี่ยนเส้นทางนี้เป็นเส้นทางที่ใช้งานได้บนระบบของคุณrm -rf $data /fmllr_cmvn/ mkdir $data /fmllr_cmvn/ สำหรับส่วนต่างๆใน ​​dev_clean test_clean train_clean_100 train_clean_360 ; ทำซ้ำmkdir $data /fmllr_cmvn/ $part / apply-cmvn --utt2spk = ark: $data /fmllr/ $part /utt2spk ark: $data /fmllr/ $part /data/cmvn_speaker.ark scp: $data /fmllr/ $part /feats.scp ark:- | add-deltas --delta-order = 0 ark:- ark: $data /fmllr_cmvn/ $part /fmllr_cmvn.ark เสร็จแล้วdu -sh $data /fmllr_cmvn/* echo "เสร็จแล้ว!"
  12. ใช้สคริปต์ Python เพื่อแปลงฟีเจอร์ .ark ที่สร้างโดย Kaldi ให้เป็น .npy สำหรับตัวโหลดข้อมูลของคุณเอง โดยมีตัวอย่างสคริปต์ Pythonให้ดู:
    python ark2libri.py 

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=FMLLR&oldid=1359351537 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เอฟเอ็มแอลแอลอาร์

ในด้าน การประมวลผลสัญญาณ การถดถอยเชิง เส้นความน่าจะเป็นสูงสุดในพื้นที่คุณลักษณะ ( feature space Maximum Likelihood Linear Regression หรือ fMLLR ) เป็นการแปลงคุณลักษณะแบบทั่วโลก...

ภาพรวม

การแปลง fMLLR นั้นได้รับการฝึกฝนในแง่ของความน่าจะเป็นสูงสุดบนข้อมูลการปรับตัว การแปลงเหล่านี้สามารถประมาณค่าได้หลายวิธี แต่ใน fMLLR จะพิจารณาเฉพาะการประมาณค่าความน่าจะเป็นสูงสุด (ML) เท่านั้น การแปลง fMLLR ได้รับการฝึกฝนบนชุดข้อมูลการปรับตัวเฉพาะชุดหนึ่ง...

การคำนวณการแปลง fMLLR

การแปลงคุณลักษณะของ fMLLR สามารถคำนวณได้อย่างง่ายดายด้วยเครื่องมือเสียงโอเพนซอร์ส Kaldi สคริปต์ Kaldi ใช้แผนการประมาณค่ามาตรฐานที่อธิบายไว้ในภาคผนวก B ของเอกสารต้นฉบับ [ 1 ] โดยเฉพาะส่วนภาคผนวก B.1 "วิธีโดยตรงเหนือแถว"

เมื่อเปรียบเทียบกับคุณสมบัติหรือการแปลงอื่นๆ

ผลการทดลองแสดงให้เห็นว่า การใช้คุณลักษณะ fMLLR ในการรู้จำเสียงพูด ช่วยให้ได้ผลลัพธ์ที่ดีขึ้นอย่างต่อเนื่องเมื่อเทียบกับคุณลักษณะทางเสียงอื่นๆ บนชุดข้อมูลมาตรฐานที่ใช้กันทั่วไปหลายชุด ( TIMIT , LibriSpeechเป็นต้น)