ฉันได้พัฒนาระบบแนวคิดสำหรับการรู้จำเสียงโดยใช้ 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 (นอกคำศัพท์) โดยใช้แบบจำลองขยะหรือฟิลเลอร์ แต่มันบอกว่ามันได้รับการฝึกฝนโดยใช้ชุดคำศัพท์ที่ไม่รู้จักซึ่งไม่สามารถนำไปใช้กับระบบของฉันได้ ไม่รู้จักเสียงทั้งหมดที่ระบบอาจบันทึก
ปัญหาที่คล้ายกันได้รับการแก้ไขอย่างไรในระบบรู้จำเสียงพูด และฉันจะแก้ปัญหาได้อย่างไรเพื่อหลีกเลี่ยงผลบวกปลอม?