thresholding รุ่น Markov ที่ซ่อนอยู่


14

ฉันได้พัฒนาระบบแนวคิดสำหรับการรู้จำเสียงโดยใช้ mfcc และรุ่นมาร์คอฟที่ซ่อนอยู่ มันให้ผลลัพธ์ที่มีแนวโน้มเมื่อฉันทดสอบระบบด้วยเสียงที่รู้จัก แม้ว่าระบบเมื่อมีการป้อนข้อมูลเสียงที่ไม่รู้จักส่งคืนผลลัพธ์ด้วยการจับคู่ที่ใกล้เคียงที่สุดและคะแนนไม่ได้แตกต่างกันในการคิดค้นมันเป็นเสียงที่ไม่รู้จักเช่น:

ฉันได้ฝึกอบรมมาร์คอฟที่ซ่อนอยู่ 3 ตัวสำหรับการพูดหนึ่งสำหรับน้ำที่ออกมาจากก๊อกน้ำและอีกอันสำหรับเคาะบนโต๊ะ จากนั้นฉันจะทดสอบพวกเขาเกี่ยวกับข้อมูลที่มองไม่เห็นและรับผลลัพธ์ต่อไปนี้:

input: speech
HMM\knocking:  -1213.8911146444477
HMM\speech:  -617.8735676792728
HMM\watertap:  -1504.4735097322673

So highest score speech which is correct

input: watertap
HMM\knocking:  -3715.7246152783955
HMM\speech:  -4302.67960438553
HMM\watertap:  -1965.6149147201534

So highest score watertap which is correct

input: knocking
HMM\filler  -806.7248912250212
HMM\knocking:  -756.4428782636676
HMM\speech:  -1201.686687761133
HMM\watertap:  -3025.181144273698

So highest score knocking which is correct

input: unknown
HMM\knocking:  -4369.1702184688975
HMM\speech:  -5090.37122832872
HMM\watertap:  -7717.501505674925
Here the input is an unknown sound but it still returns the closest match as there is no system for thresholding/garbage filtering.

ฉันรู้ว่าในคำหลักที่สามารถได้ยินกรอง OOV (นอกคำศัพท์) โดยใช้แบบจำลองขยะหรือฟิลเลอร์ แต่มันบอกว่ามันได้รับการฝึกฝนโดยใช้ชุดคำศัพท์ที่ไม่รู้จักซึ่งไม่สามารถนำไปใช้กับระบบของฉันได้ ไม่รู้จักเสียงทั้งหมดที่ระบบอาจบันทึก

ปัญหาที่คล้ายกันได้รับการแก้ไขอย่างไรในระบบรู้จำเสียงพูด และฉันจะแก้ปัญหาได้อย่างไรเพื่อหลีกเลี่ยงผลบวกปลอม?

คำตอบ:


5

คำถามที่ดีมาก!

ดังที่คุณกล่าวถึงวิธีเดียวที่จะได้รับ HMM เพื่อให้คำตอบ "ฉันไม่รู้" (เรียกว่า OOV) คือการให้สถานะพิเศษเพราะมันจะแสดงสถานะที่มีโอกาสสูงสุดภายใต้โมเดลของคุณเสมอ ดังนั้นคุณต้องให้แน่ใจว่า OOV มีโอกาสสูงขึ้นภายใต้ทุกที่ไม่เข้ากันspeech, หรือwatertapknocking

คำตอบสั้น ๆ คือไม่สามารถทำได้ เนื่องจากHMM ไม่ใช่ตัวจดจำรูปแบบที่แน่นอน มันเปรียบเทียบความน่าจะเป็นของผลภายใต้รูปแบบของคุณและในบริบทที่ได้รับการฝึกฝน

คิดเกี่ยวกับการป้อนข้อมูลที่จะเป็นspeechและknockingในเวลาเดียวกัน ส่วนใหญ่แล้ว HMM จะ "ลังเล" ระหว่างสองสถานะนี้เนื่องจากข้อมูลนี้มีคุณลักษณะของแต่ละรัฐ ในที่สุดมันก็จะเอาท์พุทหนึ่งในนั้น แต่ก็ไม่น่าเป็นไปได้ที่มันจะออก OOV ในกรณีของการระบุคำหลักการเดาของฉันคือคุณสามารถค้นหาอินพุตที่ชาญฉลาดซึ่งจะหลอก HMM ของพวกเขาอย่างสม่ำเสมอ อย่างไรก็ตามผู้เขียนอาจจะรู้ว่าสิ่งที่ท่านคาดหวังและพวกเขาได้เลือกรายการคำศัพท์ที่ไม่ทราบแน่ชัดเพื่อให้อินพุตที่เป็นพิษเหล่านี้เป็นเรื่องแปลก

ฉันแนะนำให้คุณทำเช่นเดียวกัน คิดเกี่ยวกับสถานการณ์ที่คุณจะใช้ HMM และฝึกอบรมสถานะ OOV กับอินพุตที่คุณต้องการกำจัด คุณสามารถนึกได้ว่ามีสถานะ OOV หลายสถานะ


2
แต่วิธีการเกี่ยวกับอืมตามรูปแบบเกณฑ์สำหรับการรับรู้ท่าทางอธิบายไว้ที่นี่: herin.kaist.ac.kr/Publication/PS/hklee_PAMI_i09611.pdf พวกเขาสร้างแบบจำลองเกณฑ์ซึ่งเป็นอืม ergodic ที่มีสถานะของแต่ละอืมรวมกัน "รูปแบบขีด จำกัด ทำหน้าที่เป็นพื้นฐานบรรทัดรูปแบบลายเส้นผู้สมัครพบเมื่อแบบจำลองรูปแบบลายเส้นเฉพาะสูงกว่าขีด จำกัด " แต่ปัญหาของฉันคือฉันใช้จาวาและไลบรารี jahmm และฉันไม่คิดว่ามันมีตัวเลือกสำหรับ ergodic อืมม
Radek

เหมือนที่กล่าวไว้ในชื่อนี่เป็นอัลกอริทึมที่ใช้ HMM ดังนั้นจึงไม่ใช่ HMM สำหรับฉันดูเหมือนว่า HMM บริสุทธิ์ไม่ตรงกับความต้องการของคุณและตัวแยกประเภทตามเกณฑ์นั้นเหมาะสมกว่าจริง ๆ
gui11aume

5

นี่เป็นเรื่องปกติในด้านการรู้จำท่าทาง คำตอบคือการสร้างแบบจำลองเกณฑ์ตามที่อธิบายไว้ในบทความโดยLee และ Kim (1999)

มันมีบทบาทเหมือนกับฟิลเลอร์หรือโมเดลขยะ แต่ไม่จำเป็นต้องฝึกแยกต่างหากตามที่คุณพูด คุณสามารถสร้างแบบจำลองขีด จำกัด ได้โดยเชื่อมต่อสถานะการเปลี่ยนภาพตัวเองทั้งหมดจากแบบจำลองอื่น ๆ ของคุณและเริ่มต้นการเปลี่ยนภาพด้วยความน่าจะเป็นแบบเดียวกัน โปรดดูบนกระดาษเพื่อดูว่ามันสามารถทำได้จริง ๆ

แม้ว่าไลบรารี่ของคุณจะไม่รองรับโมเดลเออร์โกดิค แต่ก็ไม่ควรป้องกันคุณจากการสร้างโมเดลที่มีขนาดตามต้องการและตั้งค่าสถานะตามต้องการ จริงๆถ้าคุณต้องการห้องสมุดที่แล้วการใช้งานสำหรับซ่อนมาร์คอฟแนกรูปแบบรวมถึงการสนับสนุนรูปแบบเกณฑ์ที่มีอยู่ในAccord.NET กรอบยกตัวอย่างเช่น

คำเตือน: ฉันเป็นผู้เขียนของห้องสมุดนี้


ขวาฉันสามารถสร้างแบบจำลองเกณฑ์ด้วยตนเอง สมมุติว่าฉันมีสองโมเดล hmm ชื่อ: sound1 และ sound2 ทั้งสองมี 2 สถานะ จากนั้นฉันจะสร้างแบบจำลองเกณฑ์ที่มี 4 สถานะ แต่ละรัฐมีค่าเริ่มต้นเหมือนกันซึ่งก็คือ 0.25 จากนั้นฉันตั้งค่าการกระจายแบบสม่ำเสมอสำหรับการเปลี่ยนที่เป็นไปได้ทั้งหมดดังนั้นการเปลี่ยนสถานะที่เป็นไปได้ทั้งหมด (0,0), (0,1), (1,0), (1,1), (1,2), (2,1), (2,2) ฯลฯ ได้รับการกระจายที่เหมือนกันคือ 0.0625 จากนั้นสำหรับสถานะ 1 และ 2 ของรุ่นขีด จำกัด ฉันตั้งค่า opdf ของสถานะ 1 และ 2 จาก sound1 และสำหรับสถานะ 3 และ 4 ของขีด จำกัด ฉันตั้งค่า opdf ของสถานะ 1 และ 2 จาก sound2
Radek

วิธีการที่อธิบายไว้ข้างต้นถูกต้องหรือไม่
Radek

1
ไม่มาก ... บางทีฉันอาจจะหลวมไปหน่อยในรายละเอียด องค์ประกอบแนวทแยงของเมทริกซ์การเปลี่ยนแปลงของคุณสำหรับโมเดลเกณฑ์จะได้รับความน่าจะเป็นในการเปลี่ยนแปลงตัวเองจากโมเดลอื่นของคุณ ช่วงการเปลี่ยนภาพจากสถานะหนึ่งไปอีกสถานะหนึ่งจะเริ่มต้นด้วยความน่าจะเป็นแบบเดียวกัน ฉันรู้ว่ามันอาจจะดูเหมือนว่าขี้เกียจที่จะชี้ออกรหัส แต่บางครั้งรหัสคือการเข้าใจง่ายกว่าสูตร
Cesar

อย่างไรก็ตามถ้าคุณอ่านบทความโดย Lee และ Kim และตีความมันต่างกันหรือเชื่อว่าการนำไปใช้ของฉันไม่ถูกต้องโปรดแจ้งให้เราทราบ
Cesar

3

ดังนั้นสิ่งที่ฉันทำคือฉันสร้างรูปแบบฟิลเลอร์ที่ง่ายขึ้น แต่ละอืมแสดงเสียง watertap เคาะเสียงและเสียงพูดเป็นแยก 6 รัฐ hmm ฝึกโดยเสียงจากชุดฝึกอบรมของ 30, 50, 90 เสียงตามลำดับความยาวต่าง ๆ 0.3 วินาทีถึง 10 วินาที จากนั้นฉันก็สร้างแบบจำลองฟิลเลอร์ซึ่งเป็น 1 รัฐอืมประกอบด้วยชุดฝึกอบรมทั้งหมดที่มีเสียงเคาะเคาะแทปและคำพูด ดังนั้นหากคะแนนของโมเดล hmm นั้นดีกว่าสำหรับเสียงที่กำหนดมากกว่าคะแนนของฟิลเลอร์ - เสียงจะได้รับการยอมรับเป็นอย่างอื่นนั่นคือเสียงที่ไม่รู้จัก ฉันไม่ได้มีข้อมูลขนาดใหญ่จริงๆ แต่ฉันได้ทำการทดสอบต่อไปนี้สำหรับการปฏิเสธผลบวกปลอมและการปฏิเสธบวกจริงสำหรับเสียงที่มองไม่เห็น

true positives rejection
knocking 1/11 = 90% accuracy
watertap 1/9 = 89% accuracy
speech 0/14 = 100% accuracy


false positives rejection
Tested 7 unknown sounds
6/7 = 86% accuracy

ดังนั้นจากการทดสอบด่วนนี้ฉันสามารถสรุปได้ว่าวิธีการนี้ให้ผลลัพธ์ที่สมเหตุสมผลแม้ว่าฉันจะมีความรู้สึกแปลก ๆ แต่ก็อาจไม่เพียงพอ


+1 นี่น่าสนใจมาก หากคุณยังไม่ลืมเกี่ยวกับงานนี้วิธีการนี้ใช้ได้ผลหรือไม่ มันเพียงพอแล้วในฐานะรุ่น 'เติม / อื่น ๆ ' หรือไม่? ถ้าไม่คุณทำอะไรอย่างอื่นในที่สุด?
Zhubarb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.