بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
تشخیص گفتار با استفاده از روش های هوشمند در پردازش صوت
چکیده
در این رساله،به بررسی روشهای هوشمند جهت تشخیص الفبای انگلیسی در پردازش صوت پرداخته شده است.روشهای هوشمند در استخراج ویژگی ،مانند تبدیل WAVELET ، ضرایب MFCC،تبدیل FFT روشهای هوشمند در دسته بندی سیگنال های صوتی،مانند روش ماشین بردار پشتیبان (SVM) ، روش شبکه عصبی پرسپترون چند لایه (MLP)،روشهای هوشمند کاهش بعد ،مانند روش PCA و روشهای نرمالایز سازی مورد بررسی قرار گرفته است.
نحوه عملکرد به این صورت است که در ابتدا به پیش پردازش داده ها می پردازیم یعنی حذف قسمتهای اضافی از داده ها را انجام می دهیم ،سپس توسط یکی از روشهای هووشمند استخراج ویژگی به استخراج ویژگی می پردازیم ،تا بتوانیم از این ویژگی ها در دسته بندی استفاده کنیم،حال دراین بین فرایند های دیگری از قبیل نرمالایز سازی و کاهش بعد نیز وجود دارند که نیز می توان از آنها استفاده کرد ، اینکه چه عملی و در کجا نتیجه بهتری دارد ،در این رساله تمام موارد بررسی شده است و ،بعد از این که ویژگی ها ی مناسب را استخراج کردیم نوبت به دسته بندی ویزگی ها میرسد که توسط روش ماشین بردار پشتیبان (SVM) و همچنین روش شبکه عصبی پرسپترون چند لایه (MLP)، مورد بررسی قرار گرفته است.البته روشهایی نیز برای بهبود این روشهای دسته بندی نیز صورت گرفته است مانند اینکه می توان پارامترهای روش ماشین بردار پشتیبان (SVM) را توسط الگوریتم بهینه سازی ژنتیک تعیین کرد.
در نهایت از نتایج بدست امده به این نتیجه می رسیم که استفاده از روش ضرایب MFCC در استخراج ویژگی واستفاده از روش ماشین بردار پشتیبان (SVM)،در روش دسته بندی جواب مطلوب تری نسبت به سایر روشهای بررسی شده دارد.
واژه های کلیدی: MFCC،WAVELET،FFT ،MLP ،. PCA
-1 مقدمه گفتار برای بشر طبیعی ترین و کارآمدترین ابزار مبادله اطلاعات است. کنترل محیط و ارتباط با ماشین بوسیله گفتار از آرزوهای او بوده است.طراحی و تولید سیستم های تشخیص گفتار هدف تحقیقاتی مراکز بسیاری در نیم قرن اخیر بوده است.یکی از اهداف انسانها در تولید چنین سیستم هایی سلماً توجه به این نکته بوده است که ورود اطلاعات به صورت صوتی،اجرای دستورات علاوه بر صرفه جویی در وقت و هزینه،به طرق مختلف کیفیت زندگی ما را افزایش می دهند.امروزه دامنه ای از نرم افزارها (که تحت عنوان Speech Recognition Systemsمعرفی می شوند) وجود دارند که این امکان را برای ما فراهم کرده اند.با استفاده از این تکنولوژی می توانیم امیدوار باشیم که چالش های ارتباطی خود را با محیط پیرامون به حداقل برسانیم.
قبل از پرداختن به به سیستم های تشخیص گفتار لازم است که فناوری تولید گفتار و تشخیص گفتار با تعریفی ساده از هم متمایز شوند: فناوری تولید گفتار((Text To Speech تبدیل اطلاعاتی مثل متن یا سایر کدهای رایانه ای به گفتاراست.مثل ماشین های متن خوان برای نابینایان،سیستم های پیغام رسانی عمومی. سیستم های تولید گفتار به خاطر سادگی ساختارشان زودتر ابداع شدند. فناوری تشخیص گفتار(( Speech Recognition System نوعی فناوری است که به یک کامپیوتر این امکان را می دهد که گفتار و کلمات گوینده ای را که از طریق میکروفن یا پشت گوشی تلفن صحبت می کند،بازشناسی نماید. به عبارت دیگر در این فناوری هدف خلق ماشینی است که گفتار را به عنوان ورودی دریافت کند و آنرا به اطلاعات مورد نیاز (مثل متن)تبدیل کند.
تشخیص الفبا یکی از زیر شاخه های تشخیص الگو وتشخیص گفتاراست که در متون علمی بیشتر با نام بازشناسی گفتار شناخته شده است. طی این سالها تلاش زیادی روی تشخیص گفتار صوت صورت گرفت. اما با توجه به عوامل زیادی که در این الگوریتم موثر هستند، همواره عملیات تشخیص با خطا روبه رو بوده است. تارهای صوتی انسان خصوصیاتی غیر خطی دارند و از طرف دیگر عملیات آنها کاملا در اختیار نیست، بلکه عوامل مختلفی از جنسیت تا حالت عاطفی فرد در آن تاثیرگذار است. در نتیجه تلفظ صوتی میتواند به لهجه، طرز تلفظ، طرز گفتار و میزان شمرده بودن آن، درشتی صدا، تودماغی حرف زدن، زیر و بمی صدا، درجه صدا (بلندی) و سرعت ادای کلمات بستگی داشته باشد. علاوه بر اینها از آنجا که معمولا افراد در محیطی صحبت میکنند که صداهای محیطی نیز وجود دارد، این مسئله پیچیدهتر میشود به شکلی که تشخیص گفتار حتی از تولید گفتار سخت تر و پیچیده تر میشود.
در زمینه تشخیص الگوی صوت توسط شبکه عصبی تا کنون در ایران کار زیادی صورت نگرفته و مقاله های محدودی که وجود دارد بیشتر به این موضوع از دید عمومی و معرفی تکنیک پرداخته شده است. نتایج این تحقیق کاملا عملی و حاصل کار،یک نرم افزار به زبان برنامه نویسی مطلب میباشد ونتایج بصورت نمودار ها و جداول در پایان ارائه شده.در مقاله های خارجی از روشهای مختلف شبکه عصبی استفاده شده و عموما نمونه های صوت را بدون تغییر به عنوان دیتای ورودی به شبکه در نظر گرفته اند و این موضوع باعث حجیم شدن شبکه ،طولانی شدن مراحل آموزش شبکه، وابستگی شدید نتایج به دامنه سیگنال وحساسیت زیاد نتایج به نویز میباشد.
به طور کلی میتوان مراحل انجام این پروژه از ابتدا تا پایان را به قسمتهای زیر تقسیم بندی نمود
.1 تهیه دیتا شبکه
.2 اصلاح دیتای خام جهت ارائه به استخراج ویژگی
.3 ایجاد یک شبکه مناسب
.4 آموزش شبکه
-2 پیش پردازش:
دادههای به کار گرفته شده در این رساله به صورت فایل های صوتی با پسوند (*.wav) با فرکانس نمونهبرداری 16000 HZ که هر فایل متشکل از دو بخش سکوت و بخش ادای کلمات میباشد. بخش سکوت تاثیری در بهبود تشخیص ندارد و یا حتی باعث پایین آمدن درصد تشخیص می شود، بنابر این در و اولین مرحله احتیاج به حذف قسمتهای مربوط به سکوت داریم.
برای این منظور میتوانیم از انرژی سیگنال استفاده کنیم، به این صورت که معمولا در قسمت ادای کلمات انرژی سیگنال نسبت به قسمتهای سکوت خیلی بیشتر میباشد، برای بهتر دیدن تفاوت بین انرژیها میتوانیم در ابتدا انرژی سیگنال را در یک عدد بزرگ (در این رساله 10000 در نظر گرفته شده) ضرب کنیم تا تفاوت محسوستر شود و عمل جدا سازی بهتر و سادهتر انجام شود.
فرمول محاسبه انرژی به صورت زیر می باشد :
معادله: 1
قبل از محاسبه انرژی، باید سیگنال را به قابهایی با طول 16 میلی ثانیه و همپوشانی %50 تقسیم نمود. قابهایی که انرژی آنها صفر است یا از محدوده خاصی کمتر باشد را سکوت در نظر گرفته و حذف مینمایم.
مسأله اساسی در تشخیص حروف الفبای انگلیسی کار با مجموعه E-set میباشد . که این مجموعه از حروف B, C, D, E, G, P, T, V و Z تشکیل شده است. مشکل این مجموعه وجود واجآوایی E در همه این حروف میباشد، چرا که در ادا این حروف حجم بیشتر سیگنال روی واجآوایی E است. که باعث مشکل شدن تشخیص این مجموعه شود. برای رفع این مشکل باید واجآوایی E را که در همه حروف این مجموعه مشابه میباشند را حذف کنیم. تا فقط قسمت مربوط به واج اوایی حرف مربوطه باقی بماند. البته باید توجه داشت که این فرایند برای خود حرف E انجام نمیشود.
برای این کار مانند مرحله قبل از انرژی سیگنال استفاده می کنیم، تفاوتی که این قسمت با مرحله قبل دارد این است که برای این 8 حرف باید بصورت جداگانه این عمل را انجام داد، زیرا انرژی هر کدام از حروف تفاوت میباشد که باید با رسم هر کدام و با توجه به انرژی سیگنال قسمت اضافی را حذف نماییم.
همانطور که در شکلها دیده میشود. سیگنال حرف B از پنج قسمت تشکیل شده که قسمت اول سکوت، قسمت دوم واجآوایی B ، قسمت سوم دوباره سکوت خیلی کوتاه، قسمت چهارم واجآوایی E و قسمت پنجم سکوت انتهای میباشد، در حالی که در حرف A این چنین نیست. در شکلهای بعدی میتوان جدا سازی قسمتهای سکوت و قسمت مربوط به واجآوایی را مشاهده کرد.
-3 نرمالایز پیش از استخراجویژگی:
این مرحله قبل از استخراجویژگی داده ها انجام میشود، نرمالایز کردن یعنی آوردن تمامی مولفهها در یک رنج خاص. هدف از این کار از بین بردن وابستگی مجموعه، از مقدار عددی آن میباشد. این مرحله بخصوص زمانی که با روشهای هوشمند(عصبی، ژنتیک، ...) سروکار داریم کاربرد فراوانی دارد. در مباحث پردازش-گفتار دو روش برای نرمالیزهکردن در اکثر تحقیقات استفاده شده است که روش اول نرمالیزهکردن اندازه بردارهای ویژگی به یک اندازه ثابت و روش دوم صفر کردن میانگین و یک کردن واریانس هر مولفه بردار ویژگی روی کل بردارهای ویژگی میباشند. در این رساله روش دوم بکار گرفته شده که برای این منظور در مرحله آموزش و تست، هر مولفه از بردارهای ویژگی را از میانگین آن مولفه در کل بردارهای ویژگی کم کرده و بر انحراف معیار آن مولفه تقسیم میشود. رابطه 2-4 نرمالیزکردن هر مولفه را نشان میدهد.
x j x j
در رابطه مولفه i ام j امین بردار ویژگی قبل از نرمالیز کردن، مولفه i ام j امین بردار ویژگی پس از نرمالیزهکردن، µi میانگین این مولفه روی کل بردارهای ویژگی و σi واریانس این مولفه روی کل بردارهای ویژگی است.
البته باید بیان شود که این روش در این برنامه نتایج خوبی به همراه نداشت که نتایج ان را مشاهده خواهید کرد.حال که داده ها اماده شدند نوبت به استخراج ویزگی می رسد .
-4 استخراج ویژگی همانطور که در فصل قبل به طور مفصل شرح داده شد روش های زیادی برای استخراج ویژگی وجود دارد.
در این رساله ما به آزمایش روشهای ضرایب MFCC و ضرایب Wavelet در استخراج ویژگی میپردازیم و نتایج حاصل از آنها را مشاهده خواهیم کرد.
-5 ضرایب Wavelet
این روش در فصل قبل به صورت مبسوت توضیح داده شده است. در اینجا به کاربرد این روش در رساله خواهیم پرداخت.
ویژگیهای به کار رفته در این رساله مینیمم، ماکزیمم، میانگین، انحرافمعیار، واریانس، میانگین مربعات، آنتروپی، مجموعمربعات استفاده شده است همانطور که گفته شد میتوان ویژگیهای دیگری به این مجموعه اضافه کرد. همانطور که قبلا نیز تاکید شد قابهایی با طول 16 میلی ثانیه و درصد همپوشانی %50 در نظر گرفته شده است.
-6 ضرایب MFCC
روش دیگر برای استخراج ویژگی استفاده از ضرایب MFCC میباشد، در این روش به محاسبه ضرائب کپسترال مبتنی بر معیار مل جهت استخراج ویژگی می-پردازیم، پارامترهای مورد استفاده بصورت زیر است این ضرایب نوع بهبود یافته از ضریب cepstral میباشند. روند کلی اجرا روش : MFCC
پس از ایجاد فریم ها از سیگنال ورودی تبدیل فوریه گسسته بر روی هر یک از این فریمها اعمال شده و حاصل به filterbank داده میشود.این فیلتر بر روی دامنه فرکانسها اعمال شده و آن را یکنواخت میسازد.
یک راه برای تولید Mel-frequency درونیابی بر روی فرکانس گسسته اصلی میباشد. پس از اعمال فیلتر و سپس تبدیل cosine گسسته (DCT) MFCC بدست آمده است. مقیاس مورد استفاده در فرکانس Mel به صورت زیر محاسبه می شود
معادله: 3
ضرایب MFCC به صورت زیر میباشد :
):Pre-emphasis -1 مرحله پیش تاکید) : در این مرحله سیگنال صحبت S(n) از یک فیلتر بالا گذر عبور داده می شود .
معادله: 4
که s2 (n) خروجی فیلتر می باشد. و مقدار a بین 0/9 تا 1 می باشد . تبدیل z فیلتر به صورت زیر می باشد
معادله: 5
هدف پیش تاکید جبران بخش فرکانس بالا که در مکانیسم تولید صدا توسط انسان تضعیف شده است میباشد. ضمنا ، این کار همچنین باعث تقویت مشتقات فرکانس بالا نیز می شود .
-2 تقسیم بندی به : frame سیگنال صحبت در مرحله بعد به فریمهای 16 میلی ثانیه ای با فریم شیفت 8 میلی ثانیه تبدیل می شود . نرخ نمونه برداری 16 کیلو هرتز می باشد .
-3 پنجره همینگ : هر فریم باید در یک پنجره همینگ ضرب شود به منظور پیوستگی نقاط ابتدایی و انتهایی آن. W(n) پنجره همینگ و سیگنال خروجی s(n)*w(n) می باشد N. تعداد فریمها
معادله: 6
در عمل مقدار a را برابر با 0/46 می گیرند .
-4 تبدیل فوریه سریع :( FFT) برای بدست آوردن اندازه پاسخ فرکانسی هر سیگنال استفاده می کنیم.
-5 فیلترهای میانگذر مثلثی: بعد از تبدیل فوریه نمونه های بدست آمده از فیلترهای میانگذر عبور داده می شوند تا لگاریتم انرژی هر فیلتر بدست آید . محل قرارگیری این فیلترها از فرمول زیر بدست می آید .
معادله: 7
که f فرکانس واقعی است .
:(DCT) Discrete cosine transform -6 در این مرحله ما DCT را به 20log E انرژی ای که از فیلترهای بالا بدست آمده اعمال می کنیم . و 12 ثابت mel را بدست می آوریم . فرمول DCT به صورت زیر می باشد :
معادله: 8
N تعداد فیلترها می باشد. L تعداد ثابتهای mel که در اینجا 12 عدد در نظر گرفته می شوند. حال ما MFCC سیگنال را بدست آورده ایم .
البته به این 12 ثابت یک ثابت دیگر افزوده می شود که همان log energy در یک فریم می باشد و در مجموع 13 ثابت می شوند .
: Delta cepstrum -7 افزودن مشتقهای زمانی (energy+ MFCC) نیز که نشان دهنده سرعت و شتاب می باشد به ثوابت بالا بسیار مفید است . در این صورت با افزودن این ثوابت در مجموع 39 ثابت میشود . این ثوابت از فرمول زیر محاسبه می شوند :
معادله: 9
مقدار M معمولا 2 در نظر گرفته می شود
همانطور که در بالا گفته شد می توان تعداد ضرایب را مشخص کرد.با 12 ضریب Mel-frequency با 13 ضریب Mel-frequency و همینطور با 39 ضریب Mel-frequency که 13 تای ان همان ضرایب 13 Mel-frequency تای ان مشتقات مرتبه اول و 13 تای دیگر مشتقات مرتبه دوم انها هستند که مجموع ان 39 تا می شود. در این رساله ما جواب ها را با حالات مختلفی از تعداد ضرایب مل کپسترال سنجیده ایم و نتایج گفته خواهند شد.
-7 لیفترینگ
برای تاثیر دادن بیشتر ضرایب مهمتر Mel-frequency ضرایب را در وزنهایی ضرب می کنند به این عمل liftering گفته میشود. انواع مختلفی از liftering وجود دارد. که ما در اینجا با آزمایش به این نتیجه رسیدیم که liftering sin و liftering exp نسبت سایر دیگر نتایج بهتری دارد. بعد از استخراج ویژگی توسط Mel-frequency میتوان ضرایب را liftering کرد. یعنی برای هر یک از ضرایب وزنی در نظر گرفت که به صورت زیر اعمال میشود. برای liftering sin
معادله: 10
برای liftering exp
معادله: 11
بعد از بدست آوردن وزنها آنها را در ضرایب ضرب میکنیم و برای دستهبندی بکار میبریم، نتایج در فصل بعد نشان داده خواهد شد.
-8 هم سایز کردن دادهها دارای سایزهای مختلفی هستند به همین دلیل در مرحله دسته بندی ممکن است باعث کاهش نتیجه شود. به همین دلیل با در نظر گرفتن کوچکترین مقدار یک داده ساز بقیه داده ها را با آن برابر قرار میدهیم تا نابرابر بودن سایز داده ها باعث اشتباه نشود. البته این عمل همیشه جواب نخواهد داد و در بعضی موارد ناهم سایز بودن داده ها باعث بهتر شدن جواب ها می شود، در این پژوهش نیز این چنین بوده و این عمل تاثیری در بهبود نداشته است در نتیجه از آن صرفه نظر شد.
-9 نرمالایز پس از استخراج ویژگی در این مرحله پس از استخراج ویژگی دادهها را نرمالایز می نمایم چند روش برای این کار پیشنهاد شده که در زیر به بررسی بعضی از آنها میپردازیم روش اول: بدین شکل که ابتدا مینیمم و ماکزیمم داده ها را بدست آورده سپس به صورت زیر عمل می کنیم.