۱. مقدمه

امروزه لب خوانی 1 و تشخیص گفتار 2 از روی ویدئویی که حرکات لب را ثبت کرده است کاربردهای بسیاری دارد که عموما در راستای حذف فرمان های دستی برای کنترل دستگاه الکترونیکی، به کار میرود .
البته این سیستم در بخش های نظامی ، امنیتی ، توانبخشی به معلولین و... نیز کاربرد دارد.

این فرآیند پیچیده در مرحله اول به تشخیص محل لب و کانتور آن در فریم های ویدئو و تشکیل گراف (معمولا 12 یا 6 نقطه ) نیاز داشته و سپس به تحلیل سیر تغییر نقاط در دنباله ی گراف ها و در نهایت حدس لغت ادا شده می پردازد .

sequences

با توجه به زمان انجام پروژه ،هدف در بهترین حالت تشخیص یک حرف خاص، یا بصورت کلی تر ،مجموعه حروف صدا دار ، درنظر گرفته شده است که امید است تا پایان این زمان بندی به نتیجه برسد.

۲. خلاصه مراحل انجام کار

برای تحلیل گفتار از روی حرکات لب از الگوریتم HMM یا مدل مخفی مارکوف 3 استفاده میشود. سیگنال تصویری مربوط به گفتارهرلغت به صورت سری زمانی بردارهای ویژگی نمایش داده می شود.بنابراین برای هرلغت یک سری آموزشی وجود دارد که شامل تعدادی تکرار ازآن لغت توسط یک یاچند گوینده می باشد.

اولین قدم،ساخت مدل های لغت مجزااست؛ تاپارامتهای مدل هرلغت به صورت بهینه ای تخمین زده شوند.نهایتأ،هنگامی که مجموعه W مدل HMM طراحی شد،بازشناسی لغت مجهول صورت می گیردتاباداشتن سری مشاهدات مورد تست، نمره ای به مدل هرلغت داده شود ولغتی که نمره آن ازبقیه بالاتراست انتخاب شود.

برای تشخیص گفتار با استفاده از این مدل (HMM) الگوریتم های متفاوت پیشرو 4 ، پسرو 5 ، الگوریتم ویتربی 6 ، الگوریتم بالم-ولش یا الگوریتم پیشرو-پسرو 7 وهمچنین الگوریتم حداکثر سازی امید ریاضی 8 که نوع خاصی از بام- ولش میباشد و روش مبتنی بر گرادیان وجود دارد.
وظیفه یادگیری در HMM، یافتن بهترین احتمالات جابجایی‌ها بر اساس یک دنباله از خروجی هاست .میزان بهینگی مدل پنهان مارکوف در مرحله یادگیری ، در مسائل مختلف ،متفاوت می باشد . در اینجا معیار بهینگی به وسیله متد "بیشترین شباهت" 9 بر اساس خروجی داده شده تخمین زده می‌شوند .
ما در اینجا برای پیدا کردن maximum likelihood محلی، از الگوریتم پیشرو-پسرو استفاده میکنیم

1-ابتدا برای هر لغت که قرار است در دایره لغات ما برای تشخیص جای داشته باشد با الگوریتم Baum-Welch یک مدل HMM ساخته میشود.یعنی سه تایی مرتب\ \lambda=(A,B,\pi)برای هر لغت محاسبه میشود

استفاده از HMM در شناسایی کلمات جداگانه
در این مرحله که مرحله آموزش الگوریتم است فرض می‌کنیم که فاز پیش پردازش سیستم دنباله مشاهدات زیر را تولید نماید:

\ O=(o_{1},o_{2},.... ,o_{N})

پارامترهای اولیه تمام مدلهای HMM را با یک مجموعه از مقادیر مشخص مقدار دهی می‌نماییم.
\ \lambda_{i}, 1\le i\le N

از آنجایی که ما برای هر کلاس از واحدها(لغات مجموعه ) یک HMM داریم، می‌توانیم مدل\ \lambda_{i}از کلاس l را که دنباله مشاهدات فعلی به آن مربوط می‌شود، را انتخاب نماییم.
\ L_{tot}^{clamped}=\sum_{i \in \lambda_{i}} \alpha_{t} (i)B_{t} (i) =\sum_{i \in \lambda_{i}} \alpha_{T}(i)

که در آن\ L_{m}^{I}بیانگر میزان شباهت دنباله مشاهدات فعلی به کلاس l در مدل\ \lambda_{m}است.
هﺮ ﻳﮏ از ﻣﺪﻟﻬﺎی HMM، ، را ﺑﺎ ﻳﮑﻲ از دو روش ﺗﺼﺎدﻓﻲ ﻳﺎ ﺧﻮﺷﻪ ﺑﻨﺪی K-means ﻣﻘﺪاردهﻲ
اولیه میکنیم.
2) ﺑﺎ داﺷﺘﻦ دﻧﺒﺎﻟﻪ ﻣﺸﺎهدات
HMMﻣﻘﺎدﻳﺮ اﺣﺘﻤﺎل پیشرو و ﭘﺴﺮو هﺮ را ﺑﺎ اﺳﺘﻔﺎدﻩ از رواﺑط \ a_{t+1}(j)=b_j(O_{t+1}\sum_{i=1}^N)a_t(i)a_{ij}, 1\le j\le N, 1\le t\le T-1و \beta_t(i)=\sum_{i=1}^N \beta_{t+1}(j)a_{ij}b_j(O_{t+1}), 1\le i\le N, 1\le t\le T-1 ﻣﺤﺎﺳﺒﻪ ﻣﻲ کنیم.

-ﻣﻘﺪار ﻧﺴﺒﺖ ﺷﺒﺎهت را ﺑﺎ اﺳﺘﻔﺎدﻩ از رواﺑﻂ

\ L_{tot}^{clamped}=\sum_{i \in \lambda_{i}} \alpha_{t} (i) \Beta_{t} (i) =\sum_{i \in \lambda_{i}} \alpha_{T}(i)
و
\ L_{tot}^{free}= \sum_{m=1}^{N} L_{m}^{I}= \sum_{m=1}^{N}[\sum_{i \in \lambda_{m}} \alpha_{t} (i) \Beta_{t} (i)] \sum_{m=1}^{N} \sum_{i \in \lambda_{i}} \alpha_{T}(i)
ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﮐنیم.
ﺑﺎ ﮐﻤﮏ راﺑﻄﻪ \ \Theta^{new}=\Theta^{old}- \eta \left [ \frac{\partial j}{\partial \Theta} \right ] ﭘﺎراﻣﺘﺮهﺎی ﻣﺪل را ﺑﺮوز رﺳﺎﻧﻲ ﻣﻲ ﮐنیم.
-اﮔﺮ همه ﻧﻤﻮﻧﻪ هﺎی ﺁﻣﻮزﺷﻲ اﺳﺘﻔﺎدﻩ ﻧﺸﺪﻩ اﻧﺪ ﺑﻪ ﮔﺎم 2 ﺑﺮ ﻣﻲ ﮔﺮدﻳﻢ.

2 – در مرحله بعد برای بازشناسی هرلغت ناشناخته بردارویژگیهای گفتارمربوط به آن لغت به دست می آید.سپس احتمالات برای همه مدلهای موجود محاسبه می شود ونهایتأ ،لغتی که امکان مدل آن بیشترین است انتخاب می گردد.
این قسمت در مقایسه با یادگیری بسیار آسان تر است.
الگوریتم ،دنباله مشاهدات مورد نظر را دریافت می‌کند:

\ I^*\ \arg max L_{m} ^{I}
\ 1\le m\le N

در این حالت نرخ شناسایی بصورت نسبت بین واحدهای شناسایی صحیح به کل واحدهای آموزشی حساب می‌شود.(به هر مدل یک نمره تعلق میگیرد)
diag

۲.۱. کارهای مرتبط

مدل پنهان مارکوف برای هر لغت شامل 3 مؤلفه میباشدکه احتمال بردارهای ویژگی مجموعه آموزشی مربوط به لغت V را بیشینه می نمایند:

ماتریس انتقال حالت:یک مجموعه از احتمالات در بین حالت‌ها \ A={a_{ij}} و \ a_{ij}=p(q_{t+1}=j|q_{t}=i),\qquad i\ge 1,N\ge j
که در آن\ q_{t}بیانگر حالت فعلی می‌باشد .

توزیع احتمال مشاهدات: یک توزیع احتمال برای هر یک از حالتها

\ B={b_{j}(k)}
\ b_{j}(k)=p{o_{t}=v_{k}|q_{t}=j},\qquad 1\le j\le N,\qquad 1\le k\le M

که در آن \ v_{k}بیانگرth"k" سمبل مشاهده شده در الفبا است و \ o_{t} بیانگر بردار پارامترهای ورودی فعلی می‌باشد.

توزیع احتمال حالت آغازین:

\ \pi=(\pi_{i})
\ \pi_{i}=p(q_{1}=i),\qquad 1\le i\le N

به این ترتیب یک سه تایی مرتب برای HMM، با توزیع احتمال گسسته خواهیم داشت :
\ \lambda=(A,B,\pi)

فرضیات مدل مخفی مارکوف
برای اینکه مدل مخفی مارکوف از لحاظ ریاضی و محاسباتی قابل بیان باشد فرضهای زیر در مورد آن در نظر گرفته می‌شود.

۱- فرض مارکوف

با داشتن یک مدل مخفی مارکوف، احتمال انتقال از حالت i به حالت j به صورت زیر تعریف می‌شود:

\ a_{ij}=p(q_{t+1}|q_{t}=i)

به بیان دیگر فرض می‌شود که حالت بعدی تنها به حالت فعلی بستگی دارد. مدل حاصل از فرض مارکوف یک مدل HMM مرتبه صفر می‌باشد.
در حالت کلی، حالت بعدی می‌تواند با k حالت قبلی وابسته باشد. این مدل که مدل HMM مرتبه k ام گفته می‌شود، با استفاده از احتمالات انتقال به صورت زیر تعریف می‌گردد.

\ a_{i1}a_{i2}a_{i3}a{i4}... =p(q_{t+1}=j|q_{t}=i_{1},q_{t-1}=i_{2}.... ,q_{t-k+1}=i_{k} ,1\le i_{1},i_{2},...i_{k},j\le N))

به نظر می‌رسد که یک مدل HMM از مرتبه بالاتر باعث افزایش پیچیدگی مدل می‌شود. علی‌رغم اینکه مدل HMM مرتبه اول متداول ترین مدل است، برخی
تلاشها برای استفاده از مدلهای دارای مرتبه بالاتر نیز در حال انجام می‌باشد.

2 -فرض ایستایی

در اینجا فرض می‌شود که احتمال انتقال در بین حالات از زمان واقعی رخداد انتقال مستقل است. در این صورت می توان برا ی هرt_{۱},t_{۲}نوشت

\ p(q_{t_{1}+1}=j|q_{t_{1}}=i)=p(q_{t_{2}+1}=j|q_{t_{2}}=i

۳ -فرض استقلال خروجی

در این حالت فرض می‌شود که خروجی (مشاهدات) فعلی به صورت آماری از خروجی قبلی مستقل است. می توان این فرض را با داشتن دنباله‌ای از خروجی‌ها مانند بیان نمود:

\ O=o_{1},o_{2},....o_{T}

آنگاه مطابق با این فرض برای مدل HMM با نام\ \lambda خواهیم داشت:

\ p(O|q_{1},q_{2},..q_{T},\lambda)=\begin{matrix} \prod_{t=1}^T p(O_{t}|q_{t},\lambda)\end{matrix}

اگر چه بر خلاف دو فرض دیگر این فرض اعتبار کمتری دارد. در برخی حالات این فرضیه چندان معتبر نیست و موجب می‌شود که مدل HMM با ضعفهای
عمده‌ای مواجه گردد.

ﺑﺮای اﻳﻨﮑﻪ ﻣﺪل HMM در دنیای واﻗﻌﻲ ﻗﺎﺑﻞ اﺳﺘﻔﺎدﻩ ﺑﺎﺷﺪ ﺑﺎﻳﺪ ﺳﻪ ﻣﺴﺎﻟﻪ ﻣﻬﻢ ﺣﻞ ﺷﻮد. اﻳﻦ ﺳﻪ ﻣﺴﺎﻟﻪ ﺑﻪ ﻗﺮار زﻳﺮﻧﺪ:

1- ارزﻳﺎﺑﻲ ﻣﺴﺎﻟﻪ 10
ﺑﺎ داﺷﺘﻦ دﻧﺒﺎﻟﻪ ﻣﺸﺎهﺪات\ O=(o_{1},o_{2},.... ,o_{t}) و ﻣﺪل \ \lambda=(A,B,\pi) ﭼﮕﻮﻧﻪp(O|Q,\lambda) ، اﺣﺘﻤﺎل ﺗﻮﻟید دﻧﺒﺎﻟﻪ ﻣﺸﺎهدات ﺗﻮﺳﻂ\lambda را ﻣﺤﺎﺳﺒﻪ ﻧﻤﺎییم

2- ﮐﺪﮔﺸﺎﻳﻲ ﻣﺴﺎﻟﻪ 11

ﺑﺎ داﺷﺘﻦ دﻧﺒﺎﻟﻪ ﻣﺸﺎهﺪات\ O=(o_{1},o_{2},.... ,o_{t}) و ﻣﺪل\ \lambda=(A,B,\pi) ﭼﮕﻮﻧﻪ دﻧﺒﺎﻟﻪ ﺣﺎﻻت بهینه\ Q=(q_{1},q_{2},.... ,q_{t}) ﺑﺮای ﺗﻮلید \ O=(o_{1},o_{2},.... ,o_{t})را ﺑﺪﺳﺖ ﺁورﻳﻢ؟

3-ﺁﻣﻮزش ﻣﺴﺎﻟﻪ 12

ﭼﮕﻮﻧﻪ ﭘﺎراﻣﺘﺮهﺎی ﻣﺪل A,B,\pi را ﺑﺪﺳﺖ ﺁورﻳﻢ؟

ارزیابی

در ﺷﻨﺎﺳﺎﻳﻲ ﮔﻔﺘﺎر، ﻣﺴﺎﻟﻪ ارزﻳﺎبی ﺑﺮای ﺷﻨﺎﺳﺎیی ﮐﻠﻤﺎت ﺟﺪا 13 اﺳﺘﻔﺎدﻩ ﻣﻲ ﺷﻮد و رواﻟﻬﺎی پیشرو و ﭘﺴﺮو پیشنهاد ﺷﺪﻩاﻧﺪ. در اﻳﻦ روش ﺗﻤﺎم دﻧﺒﺎﻟﻪ ﺣﺎﻟﺘﻬﺎی ﺑﺎ ﻃﻮل t در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﻣﻲ ﺷﻮد ﺑﺮای ﻣﺜﺎل اﺣﺘﻤﺎل ﺗﻮﻟید "دﻧﺒﺎﻟﻪ ﻣﺸﺎهﺪات"\ O=(o_{1},o_{2},.... ,o_{t}) از "دﻧﺒﺎﻟﻪ ﺣﺎﻻت" \ Q=(q_{1},q_{2},.... ,q_{t}) از ﻣﺪل\lambda ، ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﺷﻮد.

\ p(O|Q_{1},\lambda)=\begin{matrix} \prod_{i=1}^t p(O_{i}|q_{i},\lambda)\end{matrix}

ﮐﻪ ﻣﻲ ﺗﻮان ﺁن را ﺑﻪ ﺷﮑﻞ زﻳﺮ نیز ﻧﻮﺷﺖ:
p(O|Q_{1},\lambda)= b_{q1}(O1),b_{q2}(O2),....,b_{qt}(Ot)

کدگشایی

ﻣﺴﺄﻟﻪ دوم ﮐﻪ ﺑﺪﺳﺖ ﺁوردن رﺷﺘﻪ ﺣﺎﻻت بهینه اﺳﺖ ﺗﻮﺳﻂ اﻟﮕﻮرﻳﺘﻢ ﺟﺴﺘﺠﻮی وﻳﺘﺮﺑﻲ اﻧﺠﺎم ﻣﻲﺷﻮد و در ﻓﺎز ﺑﺎزﺷﻨﺎﺳﻲ ﺑﻜﺎر ﻣﻲﺁﻳﺪ
در این حالت می‌خواهیم با داشتن دنباله مشاهداتO=\{O_1,... ,O_t\} و مدل lambda=\{A,B,\pi\}دنباله حالات بهینهQ=\{q_1,... ,q_t\}برای تولید O=\{O_1,... ,O_t\}را بدست آوریم.
یک راه حل این است که محتمل ترین حالت در لحظه t را بدست آوریم و تمام حالات را به این شکل برای دنباله ورودی بدست آوریم. اما برخی مواقع این روش به ما یک دنباله معتبر و با معنا از حالات را نمی‌دهد به همین دلیل باید راهی پیدا نمود که یک چنین مشکلی نداشته باشد.
در این روش که با نام الگوریتم ویتربی شناخته می‌شود، دنباله حالات کامل با بیشترین مقدار نسبت شباهت پیدا می‌شود. در این روش برای ساده کردن محاسبات متغیر کمکی زیر را تعریف می‌نماییم.

\delta_t(i)=max p\{q_1,q_2,... ,q_{t-1},q_t=t,o_1,o_2,... ,o_{t-1}|\lambda\}

که در شرایطی که حالت فعلی برابر با i باشد، بیشترین مقدار احتمال برای دنباله حالات و دنباله مشاهدات در زمان t را می‌دهد. به همین ترتیب می توان روابط بازگشتی زیر را نیز بدست آورد.

\delta_{t+1}(j)=b_j(o_{t+1})[max \delta_t(i)a_{ij}],\qquad 1\le i\le N,\qquad 1\le t\le T-1

که در آن

\delta_1(j)=\pi_j b_j (o_1),\qquad 1\le i\le N

به همین دلیل روال پیدا کردن دنباله حالات با بیشترین احتمال از محاسبه مقدار\delta_j(i), i\le j\le N و با کمک رابطه فوق شروع می‌شود. در این روش در هر زمان یک اشاره گر به حالت برنده قبلی خواهیم داشت. در نهایت حالت\ j^*را با داشتن شرط زیر بدست می‌آوریم.

\ j^*=arg max \delta_T(i),

و با شروع از حالت\ j^*، دنباله حالات به شکل بازگشت به عقب و با دنبال کردن اشاره گر به حالات قبلی بدست می‌آید. با استفاده از این روش می توان مجموعه حالات مورد نظر را بدست آورد. این الگوریتم را می توان به صورت یک جستجو در گراف که نودهای آن برابر با حالتها مدل HMM در هر لحظه از زمان می‌باشند نیز تفسیر نمود

ﺷﻨﺎﺳﺎﻳﻲ ﻣﺒﺘﻨﻲ ﺑﺮ اﻟﮕﻮرﻳﺘﻢ وﻳﺘﺮﺑﻲ

در اﻟﮕﻮرﻳﺘﻢ وﻳﺘﺮﺑﻲ، امتیاز وﻳﺘﺮﺑﻲ، ، ﺑﺮای هﻤﻪ ﺣﺎﻟﺘﻬﺎی ﻣﺪل زﺑﺎﻧﻲ در زﻣﺎن t ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﺷﻮد و آنگاه ﻣﺤﺎﺳﺒﻪ امتیاز وﻳﺘﺮﺑﻲ
در زﻣﺎن t+1 ﺑﺎ ﮐﻤﮏ راﺑﻄﻪ زیر اداﻣﻪ ﻣﻲ ﻳﺎﺑﺪ.

\bar b_j(k)=\frac{\sum_{t=1}^T\gamma_t(j)}{\sum_{t=1}^T\gamma_t(j)},\qquad 1\le j\le N,\qquad 1\le k\le M

اﻳﻦ روال از ﺁن ﺟﻬﺖ ﮐﻪ ﭘﺮدازش را در زﻣﺎن t ﮐﺎﻣﻼ اﻧﺠﺎم ﻣﻲ دهﺪ و ﺁﻧﮕﺎﻩ ﺑﻪ زﻣﺎن t+1 ﻣﻲ رود، ﺗﺤﺖ ﻋﻨﻮان ﺟﺴﺘﺠﻮی وﻳﺘﺮﺑﻲ هﻤﮕﺎم ﺑﺎ زﻣﺎن 14 ﺷﻨﺎﺧﺘﻪ ﻣﻲ ﺷﻮد. در ﻧﻬﺎﻳﺖ ﺑﺮﮔﺸﺖ ﺑﻪ ﻋﻘﺐ در ﺟﻬﺖ ﺣﺎﻟﺘﻬﺎی دارای بیشترﻳﻦ امتیاز، دﻧﺒﺎﻟﻪ ﺣﺎﻻت بهینه را ﻧتیجه ﻣﻲ دهد. اﻟﺒﺘﻪ اﮔﺮ ﺗﻌﺪاد ﺣﺎﻻت زﻳﺎد ﺑﺎﺷﺪ
ﺟﺴﺘﺠﻮی وﻳﺘﺮﺑﻲبسیار ﭘﺮ هﺰﻳﻨﻪ ﺧﻮاهد ﺑﻮد. در اﻳﻦ ﺣﺎﻟﺖ ﺗﻨﻬﺎ ﺗﻌﺪادی از ﺣﺎﻻت ﮐﻪ دارای بیشترﻳﻦ امتیاز هﺴﺘﻨﺪ ﻧﮕﻬﺪاری ﻣﻲ ﺷﻮﻧﺪ و
از ﻧﮕﻬﺪاری بقیه ﺣﺎﻻت ﺻﺮف ﻧﻈﺮ ﻣﻲ ﮔﺮدد. اﻳﻦ روال ﺟﺴﺘﺠﻮ ﺑﺎ ﻧﺎم ﺟﺴﺘﺠﻮی ﭘﺮﺗﻮﻳﻲ 15 نیز نامیده ﻣﻲ ﺷﻮد.

یادگیری

ﻣﺴﺄﻟﻪ ﺳﻮم نیز ﻣﺴﺄﻟﻪ ﺗﺨمین بهینه ﭘﺎراﻣﺘﺮهﺎی ﻣﺪل ﻳﺎ همان ﻣﺴﺄﻟﻪ ﺁﻣﻮزش ﻣﺪل ﻣﺎرکف ﻣﻲﺑﺎﺷﺪ که معمولا ﺑﻪ ﻳﻜﻲ از دو روش وﻳﺘﺮﺑﻲ و ﻳﺎ ﺑﺎم-ولش اﻧﺠﺎم ﻣﻲﮔﺮدد.
وظیفه یادگیری در HMM، یافتن بهترین احتمالات جابجایی‌ها بر اساس یک دنباله از خروجی هاست .میزان بهینگی مدل پنهان مارکوف در مرحله یادگیری ، در مسائل مختلف ،متفاوت می باشد . در اینجا معیار بهینگی به وسیله متد maximum likelihood بر اساس خروجی داده شده تخمین زده می‌شوند .
ما در اینجا برای پیدا کردن maximum likelihood محلی، از الگوریتم Baum-Welch استفاده میکنیم .

در معیار ML ما سعی داریم که احتمال یک دنباله ورودی \ O^w که به کلاس w تعلق دارد را با داشتن مدل HMM همان کلاس بدست آوریم. این میزان احتمال برابر با نسبت شباهت کلی دنباله مشاهدات است و به صورت زیر محاسبه می‌شود.

\ L_{tot}=p\{O^w|\lambda_w\}

با توجه به رابطه فوق در حالت کلی معیار ML به صورت زیر تعریف می‌شود :

\ L_{tot}=p\{O|\lambda\}

اگر چه هیچ راه حل تحلیلی مناسبی برای مدل\lambda=\{A,B,\pi\} وجود ندارد که مقدار\ L_{tot} را ماکزیمم نماید، لیکن می‌توانیم با استفاده از یک روال بازگشتی پارامترهای مدل را به شکلی انتخاب کنیم که مقدار ماکزیمم بدست آید. روش Baum-Welch و یا روش مبتنی بر گرادیان از جمله این روشها هستند.

الگوریتم بام- ولش

این روش را می توان به سادگی و با محاسبه احتمال رخداد پارامترها و یا با محاسبه حداکثر رابطه زیر بر روی\bar \lambda تعریف نمود.

\ Q(\lambda,\bar \lambda)=\sum_q p\{q|O,\lambda\}log[p\{O,q,\bar \lambda\}]

یکی از ویژگیهای مخصوص این الگوریتم این است که همگرایی در آن تضمین شده‌است. برای توصیف این الگوریتم که به الگوریتم پیشرو- پسرو نیز معروف است، باید علاوه بر متغیرهای کمکی پیشرو و پسرو که قبلاً تعریف شده‌اند، متغیرهای کمکی بیشتری تعریف شود. البته می توان این متغیرها را در قالب متغیرهای پیشرو و پسرو نیز تعریف نمود.
اولین متغیر از این دست احتمال بودن در حالت i در زمان t و در حالت j در زمان t+1 است، که بصورت زیر تعریف می‌شود.

\xi_t(i,j)=p\{{q_t}=i,q_{t+1}=j|O,\lambda\}

این تعریف با تعریف زیر معادل است :

\xi_t(i,j)=\frac{p\{q_t=i,q_{t+1}=j,O|\lambda\}}{p\{O|\lambda\}}

می توان این متغیر را با استفاده از متغیرهای پیشرو و پسرو به صورت زیر تعریف نمود.

\xi_t(i,j)=\frac{\alpha_t(i)a_{ij}\beta_{t+1}(j)b_j(o_{t+1})}{\sum_{i=1}^N\sum_{j=1}^N \alpha_t(i)a_{ij}\beta_{t+1}(j)b_j(o_{t+1})}

متغیر دوم بیانگر احتمال پسین حالت i با داشتن دنباله مشاهدات و مدل مخفی مارکوف می‌باشد و به صورت زیر بیان می‌شود.

\gamma_t(i)=p\{q_t=i|O,\lambda\}

این متغیر را نیز می توان در قالب متغیرهای پیشرو و پسرو تعریف نمود :

\gamma_t(i)=\left[\frac{\alpha_t(i)\beta_t(i)}{\sum_{i=1}^N \alpha_t(i)\beta_t(i)}\right]

رابطه بین دو متغیر فوق بصورت زیر بیان می‌شود :

\gamma_t(i)=\sum_{i=1}^N \xi_t(i,j),\qquad 1\le i\le N,\qquad 1\le t\le M

اکنون می توان الگوریتم آموزش بام – ولش را با ماکزیمم کردن مقدار بدست آورد. اگر مدل اولیه ما باشد، می‌توانیم متغیرهای پسرو و پیشرو و متغیرهای \xi و \gamma را تعریف نمود. مرحله بعدی این است که پارامترهای مدل را با توجه به روابط بازتخمین زیر بروزرسانی نماییم :

\bar \pi_i=\gamma_1(i),\qquad 1\le i\le N
\bar a_{ij}=\frac{\sum_{t=1}^{T-1} \xi_t(i,j)}{\sum_{t=1}^{T-1} \gamma_t(i)},\qquad 1\le i\le N,\qquad 1\le j\le N
\bar b_j(k)=\frac{\sum_{t=1}^T\gamma_t(j)}{\sum_{t=1}^T\gamma_t(j)},\qquad 1\le j\le N,\qquad 1\le k\le M

۲.۲. مراجع

  • C. Bregler and Y. Konig, ““Eigenlips” for robust speech recognition
    in Proceedings of IEEE International Conference on
    Acoustics, Speech, and Signal Processing (ICASSP ’94), vol. 2,
    pp. 669–672, Adelaide, SA, Australia, April 1994.

  • A tutorial on hidden Markov models and selected application in speech recognition,lawrence r.rabiner,Fellow,IEE

  • S. and Luettin, J., “Audio-visual speech modeling
    for continuous speech recognition,” IEEE Trans. Multimedia,
    vol.2, no.3, pp.141–151, 2000.

  • Potamianos, G., Neti, C., Gravier, G., Garg, A., Senior, A.: Recent advances in
    the automatic recognition of audiovisual speech. Proceedings of the IEEE 91(9)
    (2003) 1306–1326

  • S. Tamura, K. Iwano, and S. Furui, “Multi-modal speech
    recognition using optical-flow analysis for lip images,” Journal
    of VLSI Signal Processing—Systems for Signal, Image, and
    Video Technology, vol. 36, no. 2-3, pp. 117–124, 2004.

  • T. Yoshinaga, S. Tamura, K. Iwano, and S. Furui, “Audio-visual
    speech recognition using new lip features extracted from sideface
    images,” in Proceedings of COST278 and ISCA Tutorial and
    Research Workshop (ITRW) on Robustness Issues in Conversational
    Interaction (Robust ’04), Norwich, UK, August 2004.

  • C. J. Leggetter and P. C. Woodland, “Maximum likelihood
    linear regression for speaker adaptation of continuous density
    hidden Markov models,” Computer Speech and Language,
    vol. 9, no. 2, pp. 171–185, 1995.

  • G. Potamianos and H. P. Graf, “Discriminative training of
    HMMstream exponents for audio-visual speech recognition,”
    in Proceedings of IEEE International Conference on Acoustics,
    Speech, and Signal Processing (ICASSP ’98), vol. 6, pp. 3733–
    3736, Seattle,Wash, USA, May 1998.


  1. lip syncing

  2. speech recognition

  3. Hidden Markov Model

  4. forward Algorithm

  5. backward Algorithm

  6. Viterbi Algorithm

  7. Baum-Welch Algorithm

  8. Expectation Maximization

  9. Maximum Likelihood

  10. Evaluation Problem

  11. Decoding problem

  12. Learning problem

  13. isolated word recognition

  14. time synchronous Viterbi search

  15. beam search

رد شده

با سلام
به نظرم پروژتون کامله به غیر از اینکه یکم شلوغ بود ولی تمامی مفاهیم توضیح داده شده و اشکالی نمیبینم .
موفق باشید.

محمد غضنفری

در مسیر پیاده سازی و گزارش نتایج که هدف اصلی این فاز بوده کار زیادی انجام نداده اید. هیچ خروجی مشخصی از کارتان ارائه نداده اید و پیاده سازی کاملی ندارید.
متن شما شلوغ و نامرتب است. شاید بهتر بود در بعضی قسمتها کمتر وارد جزئیات می شدید.

رد شده

قرار بود لینک کد ها در github باشد، نه جای دیگر.
پروژه بسیار سختی به نظر میرسد و به نظرم به یک سری علوم نیاز دارد که یک مهندس کامپیوتر الزاما در آن ها تسلط ندارد.
مجموعه W صرفا استفاده شده است و تعریفی از آن نیامده است.
الگوریتم ها ، خیلی خوب و به شکل مجزا و گام به گام آورده شده است.
فرمول های ریاضی به خوبی بیان شده اند و روند بدست آوردن پارامتر ها به خوبی نوشته شده اند .
استفاده از یک عکس مفهومی که روند کار الگوریتم را نشان میدهید بسیار به جا بوده است.
در تیتر بندی فکر میکنم بی دقتی شده است ، بخش آزمایشات و نتایج و ارزیابی ها ، خیلی کوچک (با فونت کوچک)آورده شده است و نتایج حاصل از الگوریتم ها آورده نشده است .
هیچ نمونه کدی قرار داده نشده است . به نظرم اگر مهمترین قسمت های کد آورده میشد بهتر بود
نتایج اجرای الگوریتم ها در هیچ جایی قرار داده نشده است ! عدم استفاده از هرگونه نمودار و جدول و داده عددی که روند حل مسئله را نشان دهد آزار دهنده است . ای کاش میتوانستم 4.5 ستاره بدهم چون فکر میکنم خیلی از این اشکالات در آینده حل خواهد شد و به خاطر فراموشی بوده است. ولی از آن جا که نمیشه ! فکر میکنم 5 ستاره به خاطر سختی بیش از حد پروژه و در عوض کاربردی بودن و ارزشی بودن آن برای زبان عزیز فارسی و همچنین بررسی الگوریتم ها ی پیچیده ریاضی و کامپیوتری، امتیاز عادلانه ای باشد. به شرطی که اشکالات گفته شده در فاز بعد تا حد امکان بر طرف شود :دی . ممنون.