HW06_Solution.pdf

‫به نام خدا‬
‫پردازش گفتار‬
‫نیمسال اول ‪59-59‬‬
‫دکتر صامتی‬
‫دانشکده مهندسی کامپیوتر‬
‫تمرین سری ششم‬
‫مروری بر احتمال و پردازش سیگنال‬
‫زمان تحویل‪ 21 :‬دی ‪2359‬‬
‫لطفا موارد زیر را به خاطر بسپارید‪:‬‬
‫‪‬‬
‫در تمرینهای برنامهنویسی برای هر سوال یک پوشهی جداگانه با نام ‪ problem_xx‬بسازید و تمام کدهای مربوطه را‬
‫در آن پوشه قرار دهید (‪ xx‬شماره سوال است)‪.‬‬
‫‪‬‬
‫یک فایل گزارش به فرمت ‪ PDF‬آماده کنید و نتایج تمرینهای برنامه نویسی اعم از اعداد و نمودارها و تحلیلهای‬
‫خواسته شده را در آن بیاورید‪ .‬همچنین پاسخ تمرینهای تئوری را به صورت اسکن شده یا تایپ شده در همین فایل‬
‫گزارش قرار دهید‪.‬‬
‫‪‬‬
‫تمرینها به منظور حل تکنفره طراحی شده اند‪ .‬بنابراین لطفا در صورت نیاز‪ ،‬به مشورت مختصر اکتفا کنید و از حل‬
‫گروهی تمرینها خودداری کنید‪.‬‬
‫‪‬‬
‫فایل گزارش را به همراه تمام کدها در یک فایل فشرده به نام ‪( HW6_X‬به جای ‪ X‬شمارهی دانشجویی خود را‬
‫بگذارید) و با همین عنوان به آدرس ‪ sp.94.fall@gmail.com‬ایمیل کنید‪ .‬در صورت داشتن سوال از طریق‬
‫‪ tina.khajeh@gmail.com‬با خانم خواجه و یا ‪ seyyedij@gmail.com‬با آقای سیدی تماس بگیرید‪.‬‬
‫‪‬‬
‫زمان تحویل در تاریخ مشخص شده ساعت ‪ 21‬ظهر (قبل از کالس حل تمرین) برای تمرینهای تئوری و ‪ 21‬شب برای‬
‫تمرینهای برنامه نویسی است‪ .‬هر روز تاخیر باعث کسر ‪ %21‬از نمرهی تمرینهای برنامهنویسی خواهد شد‪ .‬لطفا‬
‫حتیاالمکان تمرین ها را حضوری تحویل ندهید بلکه ایمیل کنید‪.‬‬
‫تمرینهای تئوری‬
‫سوال ‪ .2‬همانطور که می دانید برای طراحی یک سیستم سنتز گفتار‪ ،‬در گام اول باید واحد آوایی مناسبی را انتخاب‬
‫نمایید‪ .‬توضیح دهید که چه انتخابهایی برای این مرحله میتوان داشت و چگونه از میان گزینههای مختلف بهترین را‬
‫برگزینیم؟( همراه با مثال برای کاربرد هر کدام) محدودیتها و چالشهای هر واحد را نیز مشخص نمایید‪.‬‬
‫برای انتخاب واحد مناسب در سیستم سنتز گفتار از نوع الحاقی می توان انتخاب هایی مانند زیر داشت ‪:‬‬
‫‪‬‬
‫پاراگراف ‪ :‬این واحد برای استفاده در جایی که تغییر نداریم و همواره یک یا چند پاراگراف محدود وجود‬
‫داشته و مورد استفاده قرار می گیرد‪ .‬همچون تلفن های گویای اداره ها و موارد مشابه‪ .‬در انتخاب این مورد به‬
‫عنوان واحد باید دقت کنیم که تنوع پایین است و امکان ایجاد پاراگراف جدید غیر از پاراگراف هایی که از قبل‬
‫داشته ایم غیر ممکن است‪.‬‬
‫‪‬‬
‫جمله ‪ :‬انتخاب جمله به عنوان واحد نیز در جاهایی که تعداد جمالتی که قرار است سیستم سنتز بیان کند‬
‫محدود می باشد کاربرد دارد‪ .‬این مورد نیز می تواند در سیستم های گویای تلفنی مشابه با باال استفاده گردد‪.‬‬
‫در این حالت تعداد جمالت محدود است اما از کنار هم گذاشتن آنها پاراگراف های متنوع تری می توان‬
‫داشت‪ .‬چالش در این حالت انتخاب توالی مناسب جمالت در صورتی که احتیاج به ساختن پاراگراف داشته‬
‫باشیم می باشد‪.‬‬
‫‪‬‬
‫کلمه ‪ :‬این واحد به عنوان واحد مناسب در حاهایی که کلمات مشخص تکرار می شوند و با در کنار هم قرار‬
‫گرفتن آنها منظور را می رسانیم کاربرد دارد‪ .‬از این واحد می توان در سیستم های تلفن بانک که تعداد کلمات‬
‫و اعدادی که بیان می شوند محدود است می توان استفاده نمود‪ .‬در این حالت با ذخیره و داشتن کلمات‬
‫محدود تری در دیتا بیس و کنار هم قرار دادن آنها می توان عبارات یا جمالت متنوعی ساخت‪ .‬چالشی که در‬
‫این روش با آن مواجه هستیم درست کردن پیوستگی بین کلمات می باشد‪ .‬باید به گونه ای بعد از انتخاب‬
‫کلمات مناسب پیوستگی را بوجود آوریم که طبیعی باشد‪.‬‬
‫‪‬‬
‫واحد هایی کوچک تر از کلمه همچون سیالب ی ا هجا ‪ :‬این واحد ها از نظر تعداد محدود تر هستند‪ ،‬نسبت‬
‫به کلمه و جمله و پاراگراف و از کنار هم قرار دادن آنها می توانیم کلمه مناسب و بعد عبارت و جمله بسازیم‬
‫و منظور را بیان کنیم‪.‬هنگامی که این واحد های کوچک را انتخاب می کنیم در کنار اینکه امکان ساخت کلمات‬
‫با تنوع های مختلفی را می دهند اما هزینه بسیاری برای در کنار هم قرار دادن این واحد های کوچک و ساخت‬
‫کلمه و دیگر واحد های بزرگ تر باید بپردازیم تا پیوستگی حفظ شده و کلمه درست ادا شود‪.‬‬
‫برای انتخاب از میان واحد های باال با توجه به کاربرد و متناسب با هزینه هایی که هر یک دارند باید انتخاب نماییم‪.‬‬
‫سوال ‪ .1‬درباره سیستمهای سنتز مبتنی بر ‪ ، KALTT‬اجزا و نحوه کارکرد آنها توضیح دهید‪ .‬فرض کنید یک سیستم‬
‫سنتز مبتنی بر ‪ KLATT‬برای زبان انگلیسی داشته باشیم و بخواهیم آن را به سیستم سنتز زبان فارسی تبدیل کنیم‪ ،‬به‬
‫طور کامل شرح دهید چه تغییراتی باید در سیستم ایجاد شود‪.‬‬
‫در مدل هیچ تغییری نباید داده شود‪ .‬تنها باید پارامتر های واج های فارسی بدست آید‪ .‬برای این کار ابتدا واج‬
‫های انگلیسی و فارسی را به هم ‪ map‬می کنیم‪ .‬برای آنهایی که عینا مشابه هستند از همان پارامتر های انگلیسی استفاده‬
‫می کنیم ‪ .‬برای آنهایی که در بعضی مشخصه ها شبیه هستند از پارامتر های انگلیسی شروع می کنیم و در آن تغییرات‬
‫الزم را می دهیم‪.‬‬
‫سوال ‪ . 3‬در نظر بگیرید از شما خواسته شده است تا طی انجام تستی قابلیت فهم واجهای سایشی در زبان فارسی را‬
‫ارزیابی کنید‪ .‬به طور دقیق مشخص کنید از کدامیک از روشهای ‪ Subjective‬و یا ‪ Objective‬به این منظور استفاده‬
‫میکنید؟ بعد از انتخاب روش‪ ،‬تست را طراحی کنید‪ ..‬به این منظور به طور دقیق شرایط آزمون‪ ،‬اجرای آن و روش‬
‫امتیازدهی را مشخص نمایید‪.‬‬
‫برای اندازه گیری قابلیت فهم به دلیل محدودیت هایی که در طراحی سیستم های ‪automatic speech recognition‬‬
‫وجود دارد‪ ،‬نمی توان از روش های ‪ objective‬استفاده نمود‪ .‬به همین دلیل به سراغ روش های ‪subjective‬می رویم‪.‬‬
‫برای انجام این تست می توان از روش های موجود ‪ subjective‬همچون ‪ DRT‬و‪ MRT‬استفاده کرد‪ .‬اگر ِ‪DRT‬‬
‫را در نظر بگیریم و براساس آن آزمون را طراحی نماییم‪ .‬کلماتی به صورت ‪ CVC‬را در نظر می گیریم که ‪ C‬اول آنها‬
‫دو سایشی متفاوت باشد اما قسمت بعد آنها که ‪ VC‬است مشابه همدیگر باشد‪ .‬مثل شام و سام‪ ،‬زار و سار و‪ ...‬تعدادی‬
‫زوج کلمه به این صورت تشکیل می دهیم‪ .‬بعد از آماده سازی زوج کلمات و توجیه شنونده با پخش هر کلمه شنونده‬
‫باید بین دو کلمه نوشته شده انتخاب نماید که کدامیک گفته شده است‪ .‬در انتها نیز معیار ارزیابی مشابه با معیار ‪DRT‬‬
‫به صورت زیر است‪:‬‬
‫𝑡𝑐𝑒𝑟𝑟𝑜𝑐𝑛𝑖𝑁 ‪𝑁𝑐𝑜𝑟𝑟𝑒𝑐𝑡 −‬‬
‫𝑡𝑠𝑒𝑡𝑁‬
‫= 𝑇𝑅𝐷‬
‫سوال ‪ . 4‬فرض کنید سیگنال گفتاری با پهنای باند ‪ 1‬تا ‪ 4‬کیلوهرتز به طول زمانی ‪ 4‬ثانیه و با انرژی کلی( ‪(global‬‬
‫‪ energy‬برابر با ‪ 211‬با دو نوع نویز دچار اعوجاج شده است‪:‬‬
‫الف) نویز سفید با انرژی کلی ‪ 211‬که در فاصله زمانی ‪ 2‬تا ‪ 2.1‬ثانیه(مدت ‪ 111‬میلی ثانیه) به سیگنال اعمال می‬
‫شود‪.‬‬
‫ب) نویز با پهنای باند ‪ 111‬هرتز که از ‪ 2111‬تا ‪ 2111‬هرتز را پوشش می دهد و در تمام مدت ‪ 4‬ثانیه سیگنال گفتار‬
‫وجود دارد و انرژی کلی آن ‪211‬است‪.‬‬
‫میزان ‪ Global SNR, Segmental SNR, Frequency weighted segmental SNR‬را برای هر یک از دو‬
‫حالت الف و ب بدست آورید‪.‬طول فریمها را ‪ 211‬میلی ثانیه و باند فرکانسی را به عرض ‪ 211‬هرتز و بدون همپوشانی‬
‫در نظر بگیرید‪ .‬وزن مولفههای فرکانسی در حالت ‪ frequency weighted‬برای باندهای بین ‪800‬تا ‪ 1800‬هرتز‬
‫برابر با ‪ ،3‬برای باندهای بین ‪ 2011‬تا ‪ 1011‬برابر با ‪ 1‬و برای بقیه باندها را برابر با ‪ 2‬در نظر بگیرید‪ .‬در مورد نتایج‬
‫بدست آمده ومنطقی بودن نتایج در هر یک از حاالت الف و ب بحث کنید‪.‬‬
‫سوال ‪ . 5‬از بین تئوریهای تشخیص گفتار دو تئوری تشخیص بر مبنای ‪ Articulatory‬و ‪ Motor‬را مقایسه کنید‪.‬‬
‫‪ :Articulatory‬این روش برپایهی سیستم تکلمی انسان است به این گونه که برای هر هجا سیستم تکلمی انسان را مدل‬
‫میکنیم و به ازای هر هجای ورودی هجای مورد نظر را با مدلهای مختلف مطابقت میدهیم و به هر کدام که نزدیکتر‬
‫بود آن واج بیان شده است‪.‬‬
‫‪ :Motor‬در این تئوری ما اعتقاد داریم که تشخیص از روی تنه ا صدا نیست‪ .‬بلکه مدلهایی که ما در ذهنمان از‬
‫گویندهها و از گفتار داریم فراتر از این است‪ .‬ما درواقع با گرفتن اطالعات صوتی و اطالعات دیگری مانند‪ :‬حرکت‬
‫دستها و تغییر در صورت یک الیه باالتری را تشخیص میدهیم و با تکرار آن ورودیها تشخیص میدهیم که چه‬
‫گفتاری بیان شده است‪.‬‬
‫سوال ‪ . 0‬گزارشگر فوتبال در ناحیهای از استادیوم قرار دارد که صدای تماشاچیان به راحتی میتواند برروی گزارش وی‬
‫تاثیر بگذارد و تشخیص گفتار گزارشگر را سخت نماید‪ .‬شما به عنوان صدابردار برنامه چه نوع عملیات پیشپردازشی‬
‫را برروی صدای ضبط شده پیشنهاد می دهید تا تماشاچیان در منزل بتوانند به راحتی صدای گزارشگر را بشنوند‪ .‬توجه‬
‫کنید که تا حدودی وجود صدای تماشاچیان داخل استادیوم می تواند به جذابیت بازی کمک کند‪ .‬به علل نامعلومی گاهی‬
‫الزم است که صدای تماشاچیان به طور کل حذف شود‪ .‬همچنین در نظر داشته باشید که صدای داخل استادیوم همیشه‬
‫یکنواخت نیست و مثال در هنگام زدن گل صدا چندین برابر میشود‪.‬‬
‫سوال ‪ . 7‬میخواهیم برای تراز کردن دو کلمه از الگوریتم ‪ DTW‬استفاده کنیم‪ .‬هر کلمه شامل سه فریم است‪ .‬در زیر‬
‫جدول فواصل بین فریمها نشان داده شده است که در آن )‪ d(i, j‬فاصله فریم ‪ i‬در کلمه ورودی و فریم ‪ j‬در کلمه معیار‬
‫است‪( .‬برای ‪ i‬و ‪ j‬که در این ماتریس نشان داده نشدهاند ∞ = )‪ d(i, j‬فرض کنید‪).‬‬
‫‪j=3‬‬
‫‪j=2‬‬
‫‪j=1‬‬
‫‪5‬‬
‫‪2‬‬
‫‪2‬‬
‫‪i=1‬‬
‫‪3‬‬
‫‪3‬‬
‫‪3‬‬
‫‪i=2‬‬
‫‪2‬‬
‫‪3‬‬
‫‪1‬‬
‫‪i=3‬‬
‫فرض کنید نقاط پایانی بر یکدیگر منطبق باشند و محدودیت شیب را لحاظ نکنید‪ .‬فاصله کل )‪ G(i, j‬با استفاده از این‬
‫فرمول محاسبه میشود‪:‬‬
‫)‪1) 𝐺 (1 , 1) = 𝑑 (1 , 1‬‬
‫)𝑗 ‪𝐺 (𝑖 , 𝑗 − 1) + 𝑑(𝑖,‬‬
‫)𝑗 ‪2) 𝐺 (𝑖 , 𝑗) = 𝑚𝑖𝑛 {𝐺 (𝑖 − 1 , 𝑗 − 1) + 𝑑(𝑖,‬‬
‫)𝑗 ‪𝐺 (𝑖 − 1 , 𝑗) + 𝑑(𝑖,‬‬
‫الف) فرمول فاصله را بهگونه ای تغییر دهید که تمایل حرکت به صورت قطری دو برابر حاالت سطری یا ستونی باشد و‬
‫سپس ماتریس فاصله کل )‪ G(i, j‬را برای ‪ i, j = 1, 2, 3‬تشکیل دهید‪.‬‬
‫ب) مسیر بهینه و هزینه آن را مشخص کنید‪.‬‬
‫هزینه ‪7 :‬‬
‫)‪1) 𝐺 (1 , 1) = 𝑑 (1 , 1‬‬
‫)𝑗 ‪𝐺 (𝑖 , 𝑗 − 1) + 2 ∗ 𝑑(𝑖,‬‬
‫)𝑗 ‪2) 𝐺 (𝑖 , 𝑗) = 𝑚𝑖𝑛 {𝐺 (𝑖 − 1 , 𝑗 − 1) + 𝑑(𝑖,‬‬
‫)𝑗 ‪𝐺 (𝑖 − 1 , 𝑗) + 2 ∗ 𝑑(𝑖,‬‬
‫‪j=3‬‬
‫‪j=2‬‬
‫‪j=1‬‬
‫‪11‬‬
‫‪6‬‬
‫‪2‬‬
‫‪i=1‬‬
‫‪9‬‬
‫‪5‬‬
‫‪8‬‬
‫‪i=2‬‬
‫‪7‬‬
‫‪11‬‬
‫‪10‬‬
‫‪i=3‬‬
‫سوال ‪ . 0‬در مورد کاربردهای ‪ deep learning‬در تشخیص گفتار تحقیق کنید و یکی از آنها را در کمتر از پنج سطر‬
‫توضیح دهید‪.‬‬
‫تمرینهای برنامهنویسی‬
‫سوال ‪ .2‬در این تمرین سعی در تبدیل گفتار یک فرد به فرد دیگر را داریم و با نرمافزار ‪ praat‬بیشتر آشنا خواهیم شد‪.‬‬
‫الف) تابعی بنویسید که با دریافت یک فایل صوتی از ورودی که حاوی گفتار است‪ ،‬کلمات به کار برده شده در آن را‬
‫تشخیص داده و هر کلمه را به صورت جداگانه ذخیره نماید‪ .‬کلمات را به ترتیب حضور در جمله به صورت یک عدد‬
‫چهاررقمی ذخیره کنید‪(.‬مثال‪)1112 :‬‬
‫ب) ابتدا با صدای خودتان جمله "پرواز در آسمان آبی" را ضبط کنید و سپس صدای ضبط شده و فایل ‪source.wav‬‬
‫را توسط تابع قسمت (الف) به کلمات به کار برده شده در آنها تقسیم کنید‪ .‬سپس کلمات ایجاد شده از صدای خود را‬
‫در پوشهای با عنوان ‪ filter‬و کلمات حاصل از فایل ‪ source‬را در پوشهای با نام ‪ source‬قرار دهید‪ .‬از نرمافزار ‪praat‬‬
‫استفاده کنید و فایل ‪ convert.pratt‬را اجرا نمایید تا صدای فرد منبع به صدای شما تغییر کند‪( .‬صدای تبدیل شده را‬
‫به عنوان خروجی نهایی ارسال کنید‪).‬‬
‫ج) در پایان توضیح دهید که برنامه نوشته شده در فایل ‪ convert.pratt‬چه عملی انجام میدهد(توابع مهم استفاده‬
‫شده و کارایی آنها ذکر شود‪ ).‬و به نظر شما دلیل نویزی بودن نتیجه نهایی چه میتواند باشد؟‬