Konuşma tanıma düşündüğünüz kadar karmaşık bir örnek değildir.
İlk olarak, metin tanıma yapan bir Markov Zinciri (MC) oluşturmayı hayal edin. Programınız bir grup metni (kusursuz, hatasız) okur ve durumları (kelimeleri) ve durum değişikliklerini (sonraki kelimeler) hesaplar. Bunu indirmişsin gibi geliyor. Artık metin oluşturabilir veya MC'nizin durumlarını ve geçiş olasılıklarını kullanarak bir sonraki kelimeyi tahmin etmek için bazı metinler verebilirsiniz.
Şimdi MC'nizi konuşma ile kullanmak istediğinizi düşünün. İnsanların MC'nize benzer metinleri okumasını sağlayın ve hazırsınız, değil mi? Şey ... Kelimeleri farklı telaffuz edecekleri dışında: yazılı metnin "patates" dediği yerde, aslında "po-TAY-toh" ve "po-TAH-toh" ve "pu-TAY -to ", vb. Ve tersi:" yedi "ve" sekiz "metni iki farklı durumu temsil eder, ancak (genellikle) aynı şekilde telaffuz edilir.
Algoritmanız artık altta yatan durumları (kelimeler) görmüyor, her kelime için telaffuzların olasılık dağılımını görüyor. Orijinal MC'niz telaffuzların arkasında gizlidir ve şimdi modelinizin iki katmanlı olması gerekir.
Böylece, orijinal antrenmanınız için kullandığınız metni yüksek sesle okuyabilmeniz için birçok kişi alabilir, her kelimenin telaffuzları için bir dağıtım alabilir ve ardından orijinal modelinizi telaffuz modeliyle birleştirebilirsiniz ve bir Gizli Markov Modeliniz var ( bir HMM).
Gerçek dünya gürültülü olma eğiliminde olduğundan, gerçek dünyadaki sorunların çoğu bu şekilde olacaktır. Aslında bir şeyin hangi eyalette olduğunu bilemezsiniz. Bunun yerine, her eyalet için çeşitli göstergeler alırsınız: bazen farklı eyaletler için aynı gösterge ("yedi" ve "sekiz") ve bazen aynı eyalet için farklı göstergeler ("pu-TAY-toe" ve "pah-tah-TOE"). Bu nedenle, HMM'ler gerçek dünya problemleri için daha uygundur.
[İki yan not: 1) gerçek konuşma tanıma sözcük düzeyinde değil foneme düzeyinde çalışır ve 2) HMM'lerin konuşma tanıma için tepenin kralı olduğuna, ancak son zamanlarda derin sinir ağları tarafından tahttan indirildiğine inanıyorum.]