یکی از کاربردهای مهم پردازش گفتار، یافتن کلمات کلیدی در گفتار است. به عنوان مثال یک پایگاه داده از صداهای ضبط شده را در نظر بگیرید. فرض کنید بخواهیم در این گفتارها به دنبال مجموعه ای از واژه های کلیدی بگردیم. در این صورت باید از الگوریتم های واژه‌یابی گفتار استفاده کنید. یکی از مقال هایی که این الگوریتم می تواند در آن جا مورد استفاده قرار گیرد، گفتارهای ضبط شده در یک کلاس درس است. مثلا فرض کنید که گفتارهای درس مدارهای الکتریکی_ضبط شده باشد و ما می خواهیم بدانیم در کدامیک از قسمت های این مجموعه در مورد کلمه کلیدی _دیود صحبت شده است.

۱. مقدمه

امروزه پردازش گفتار تقریبا در همه ی جنبه های زندگی ما نفوذ کرده. از گوشی و ساعت های هوشمند گرفته تا مباحث نظامی و امنیتی، همه جا نشانه ای از حضور تکنولوژی پردازش گفتار دیده می شود.
اما این مباحث دهه هاست که در حوزه ی دانشگاهی مورد بررسی هستند، پس چرا در سال های اخیر اسم آن اینقدر بر سر زبان ها افتاده است؟ دلیل آن این است که اخیرا شاخه ی جدید از هوش مصنوعی به نام یادگیری عمیق توانسته است پردازش گفتار را به اندازه ای دقیق کند که خارج از محیط های کنترل شده هم بتوان از آن استفاده کرد.
استاد دانشگاه استنفورد و بنیان گذار سایت کورسرا، Andrew Ng پیش بینی کرده است که تا زمانی که دقت پردازش گفتار از 95 درصد به 99 درصد می رسد، اصلی ترین راه برای ارتباط برقرار کردن با کامپیوتر می شود. این فاصله ی 4 درصدی ، در واقع تفاوت میان "به طور آزاردهنده ای غیرقابل اعتماد" و "بسیار مفید" است که به لطف هوش مصنوعی و خصوصا یادگیری عمیق، آنقدری طول نمی کشد که بشر به این دقت می رسد.
درین بخش ما انحصارا به استخراج و جستجوی کلمات کلیدی در گفتار می پردازیم. گفته می شود آژانش امنیت ملی آمریکا مکالمات افراد بسیار زیادی را شنود کرده و به کار رفتن عبارات خاصی در متن مکالمه را بررسی می کند! از کاربرد های امنیتی این موضوع که بگذریم این حوزه در جنبه های دیگر نیز کاربرد های فراوانی دارد.

۲. شرح مسئله و کارهای مرتبط

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

شکل1: چارت کلی مسئله

اولین راهی که به ذهن می رسد این است که یک بار صوت مختص به یک کلمه و کلمه معادل را به عامل هوشمند داد و از آن خواست که در صورت مشاهده چنین صوتی، کلمه ی معادل را خروجی دهد. اما به این سادگی نیست... مشکلات بسیار زیادی وجود دارد که باعث می شود این روش عملی نباشد، برای مثال اولین مشکل این است: فرض کنید در صوتی که ما آن را برای یادگیری به عامل هوشمند داده ایم در عرض 1 ثانیه کلمه ی "سلام" گفته شود. مشکلی که وجود دارد این است که اگر کسی کلمه ی سلام را زودتر یا دیرتر ادا کند برای مثال در عرض نیم ثانیه بگوید "سلام" یا 5 ثانیه آن را طول بدهد و عبارت را بکشد و بگوید "سسسسللللااااامممم!" عامل هوشمند ما دیگر قادر به شناسایی عبارات گفته شده نیست.
تبدیل صوت به داده ی دیجیتال:[1] اولین کاری که باید انجام داد تبدیل امواج صوتی به عدد و داده های دیجیتال قابل فهم برای کامپیوتر است. چونکه در نهایت تنها چیزی که کامپیوتر متوجه می شود 0 و 1 است نه امواج آنالوگ! برای مثال به موج صوتی زیر توجه کنید، درین شکل عبارت "Hello" گفته شده است:
شکل2: مدلی از سیگنال گفتاری

برای تبدیل این سیگنال به داده ی دیجیتال، می توان هر چند میکرو ثانیه، مقدار سیگنال را با تقریب به نزدیک ترین عدد تعریف شده گرد کرد و آن را ذخیره نمود. اینکه هر چند میکروثانیه این کار را انجام دهیم یا مقدار سیگنال در واحد زمان را با چه دقتی تعریف کرده باشیم، دقت معادل دیجیتال این سیگنال را تعیین می کند که مشخص است هرچقد بخواهیم دقت را زیادتر کنیم داده ی بدست آمده حجیم تر می شود. البته نکته ی جالب این است که زیاد بودن نرخ نمونه برداری ما بیشتر از یک حدی باعث افزایش کیفیت نمی شود. بر اساس قضیه ی Nyquist ، اگر نرخ نمونه برداری ما دو برابر بزرگترین فرکانس به کار رفته در موج باشد، می توانیم از روی داده ها به طور کامل به سیگنال اولیه برسیم. برای همین نرخ نموداری 16KHz برای پردازش گفتار انسان کافی است!
اگر ما بخواهیم از روی این داده ها به صورت خام عامل هوشمند را آموزش دهیم، مسئله بسیار پیچیده و سخت می شود. برای همین مسئله را ساده تر میکنیم. داده های بدست آمده را به بخش های 20 میلی ثانیه ای تقسیم میکنیم و پردازش را روی آن ها انجام می دهیم.
اما مشکل اینجاست که حتی 20 میلی ثانیه از موج ماهم ترکیبی پیچیده از صوت هایی با فرکانس های مختلف است.شکل[3]
شکل3: شکل موج برای 20 میلی ثانیه از سیگنال صوتی

برای حل این مشکل ما با استفاده از تبدیل فوریه، سیگنال را به اجزای تشکیل دهنده اش تقسیم کرده و مشخص میکنیم هر جزء چقد انرژی دارد.
شکل4: میزان انرژی فرکانس های مختلف در یک نمونه صوتی 20 میلی ثانیه ای. همانطور که مشاهده می شود فرکانس های پایین انرژی بیشتری دارند پس این سیگنال نمایانگر صدای مردانه است

شکل5: نمونه ی کامل ساده شده برای سیگنال صوتی کلمه ی "Hello"

حال که سیگنال صوتی را ساده سازی کردیم می توانیم از داده های بدست آمده برای کار با عامل هوشمند استفاده کنیم.
عامل هوشمند پردازش گفتار می تواند بر اساس چندین مدل و متد مختلف ساخته شود. برای مثال مدل مخفی مارکوف ، Dynamic Time Warping ، شبکه های عصبی ، یادگیری عمیق و متد های دیگر که به شرح مهم ترین و پرکاربرد ترین آنها می پردازیم[1]

۲.۱. مدل مخفی مارکوف:

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

شکل6: پارامترهای احتمالاتی یک مدل پنهان مارکوف. x حالت‌ها _ y مشاهده‌های ممکن _ a احتمال‌های انتقال بین حالت‌ها _ b احتمال‌های خروجی‌ها

پارامترهای اصلی مدل مارکوف

  • مجموعه حالت‌هایی که ممکن است اتفاق بیفتد.

  • مجموعه تصمیماتی که می‌توان در حالت‌های مختلف گرفت.

  • مجموعه نتایجی که ممکن است متعاقب هر تصمیم‌گیری بدست آید.

  • منافع و ارزش افزوده این تصمیم‌گیری در مقایسه با تصمیمات ممکن دیگر
    با گرفتن مناسب‌ترین تصمیم, بهترین راه حل برای مسئله مطرح شده را تشخیص داده, و به بهترین حالت بعدی ممکن رسید. این راه حل, بصورت یک تابع ارزش
    نشان داده می شود که در هر حالت (موجود), بهترین حالت بعدی (مطلوب) توسط آن تعیین می‌شود.

مرتبه مدل مارکوف

  • مدل مارکوف مرتبه صفر
    مدل مارکوف از مرتبه صفر مانند یک توزیع احتمال چند جمله ای می باشد. چگونگی تخمین پارامترهای مدل مارکوف مرتبه صفر و همچنین پیچیدگی مدل مشخص و قابل حل است و در کتاب‌های آمار و احتمالات وجود دارد.

  • مدل مارکوف مرتبه اول
    احتمال یک وضعیت به احتمال وضعیت قبلی آن (از نظر زمانی) بستگی دارد, به بیان دیگر احتمال وضعیت‌های ممکن, مستقل نیستند.

  • مدل مارکوف مرتبه M
    مرتبه یک مدل مارکوف برابر است با طول حافظه ای که مقادیر احتمال ممکن برای حالت بعدی به کمک آن محاسبه می شود. برای مثال، حالت بعدی در یک مدل مارکوف از درجه ۲ (مدل مارکوف مرتبه دوم) به دو حالت قبلی آن بستگی دارد.

استفاده از مدل مخفی مارکوف در پردازش گفتار
در طول چندین سال گذشته این روش به عنوان موفقترین روش در شناسایی گفتار مورد استفاده قرار گرفته است. دلیل اصلی این مساله این است که مدل مخفی مارکوف قادر است به شکل بسیار خوبی خصوصیات سیگنال گفتار را در قالب ریاضی قابل فهم تعریف کند.
در یک سیستم پردازش گفتار مبتنی بر مدل مخفی مارکوف قبل از آموزش ، یک مرحله استخراج ویژگی انجام می گردد.

۲.۲. الگوریتم Dynamic Time Warping

در زمینه بررسی سری های زمانی، DTW یک الگوریتم برای یافتن مشابهت میان دو سری زمانی است که ممکن است در سرعت متفاوت باشند. برای مثال مشابهت در راه رفتن می تواند توسط DTW شناسایی شود حتی اگر فردی از فرد دیگر سریعتر حرکت کند یا حتی حرکتش شتاب دار باشد.

DTW

یکی از مهم ترین حوزه های کاربرد DTW حوزه ی پردازش گفتار است.همانطوری که بخش طرح مسئله اشاره شد، سرعت ادای کلمات هر بار ممکن است متفاوت باشد. با استفاده از الگوریتم DTW می توان مشابهت بین کلماتی که یکسان هستند اما با سرعت های مختلف ادا شده اند را شناسایی کرد.

۲.۳. شبکه های عصبی

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

شکل8: شمای کلی و ساده ی یک شبکه ی عصبی

۳. آزمایش‌ها

۴. کارهای آینده

۵. مراجع

[1] : Anusuya, M. A., and Shriniwas K. Katti. "Speech recognition by machine, a review." arXiv preprint arXiv:1001.2267 (2010

۶. پیوندهای مفید

تایید شده

سلام.
شما مطالعه خوبی بر مساله‌‌ای که انتخاب کرده‌اید داشتید، چند نمونه را ذکر کردید و ادبیات مساله را شفاف مطرح کردید ولی بهتر بود که اولا از منابع جدیدتری استفاده کنید و دوم این‌که مراحل روش‌های جدیدتری که انجام شده است را بررسی کنید؛ اگر نگاه کنید تقریبا در منابع‌تان مرجعی از سال 2010 به بعد را ندارید.شما فقط انواع عامل های هوشمند پردازش گفتار را بررسی کردید.بهتر بود تا علاوه بر بیان روش های دیگر آن ها را باهم مقایسه میکردید تا وقتی خواننده پروژه شما را میخواند در نهایت بداند که کدام روش برای حل این مساله پیشنهاد میشود وبهتر است و روش ها از نظر چه فاکتور هایی نسبت به هم ضعف یا قوت دارند واینکه استفاده از کدام یک از روش ها برای انواع عامل هوشمند پردازش گفتار مفیدتر خواهد بود.در هر متنی که مینویسید اگر جایی از متن،برداشتی از مقاله یا متنی بوده است ویا مستقیما ترجمه ونقل قول عبارات است باید همان جا به آن مطلب ارجاع دهید وباید قسمت مراجع را با دقت بیشتری تکمیل میکردید. کلمه ی HMM را هم متوجه نشدم که آیا مخفف کلمه ای است یا چیز دیگری است.(بنابراین ترتیب گرفته های ایجاد شده توسط HMM اطلاعاتی در رابطه با حالت توالی میدهد.=این قسمت در متن منظورم است.)جملاتی در متن هم غیر قابل فهم بود مثل جمله موجود در پرانتز(هر حالت یک توزیع احتمالات دارد برای خروجی ممکن که گرفته شود)بهتر بود قواعد فارسی را بهتر رعایت میکردید.بهتر بود الگوریتم Dynamic Time Warping را بهتر توضیح میدادید وشکلی که در قسمت DTW گذاشتید را توضیحی مختصر میدادید.همین طور در مورد تصویر مربوط به شبکه های عصبی این مشکل وجود دارد واین شکل هم توضیح دقیقی ندارد ومشخص نیست input و output وhidden چیست.امیدوارم پیشنهادات بنده به بهبود پروژه شما کمک کند.

رد شده

سلام
مطالب خوبی در مورد این موضوع بیان شده است.
چند نکته که به نظر من رسید:
1.با توجه به این که این پروژه تحقیقاتی می باشد،بهتربود از مراجع بیشتری استفاده می کردید.
2.در مورد الگوریتم شبکه های عصبی،باید توضیح داده می شد که چگونه از آن استفاده می شود و متناسب با موضوع پژوهش آن را توضیح می دادید.
3.سعی کنید قواعد نگارشی را رعایت نمایید.همچنین جمله بندی درست باعث خوانایی بهتر متن شما می شود.
4.می توانید با مطالعه مقالات ارایه شده در رابطه با این موضوع،نتایج آن ها را که با الگوریتم هایی که در اینجا بیان کرده اید،پیاده سازی شده اند،نشان دهید و آن ها را از نظر دقت با هم مقایسه و ارزیابی کنید.

محمد حسن سوهان آجینی

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

اما متن حاضر نیز ایرادات نسبتا زیادی دارد:
۱- در بخش ۲.۱ که مدل مخفی مارکوف را توضیح دادید، بهتر بود که اول مدل مارکوف را توضیح می‌دادید و سپس به سراغ مدل مخفی مارکوف می‌رفتید. ضمنا یک مثال ساده از مدل مارکوف بسیار به روشن شدن موضوع برای مخاطب ناآشنا کمک خواهد کرد.
۲- در بخش ۲.۱ جملات غیرقابل فهم وجود دارد. جملات «هر حالت یک توزیع احتمالات دارد برای خروجی ممکن که گرفته شود.» و «بنابراین ترتیب گرفته های ایجاد شده توسط HMM اطلاعاتی در رابطه با حالت توالی میدهد.» از این دست هستند.
۳- جای خالی یک مثال برای روش DTW احساس می‌شود. همچنین مثال و توضیحات این بخش بسیار سطحی و گذرا هستند و حقیقتا قابل قوبل نیستند.
۴- در بخش ۲.۳ نیز به توصیحات ابتدایی و اولیه در مورد شبکه‌های عصبی بسنده شده‌است و مانند بخش قبل، هیچ توضیحی در مورد نحوه‌ی استفاده از این مدل‌ها در جستجوی کلمات کلیدی نداده‌اید!
۵- در بخش شبکه‌ی عصبی، ترجمه‌ی «فوق العاده بهم پیوسته» برای عبارت fully connected مناسب نیست. ضمنا سیناپس‌ها «ارتباطاتت الکترومغناطیسی» نیستند، بلکه «اتصالات الکتروشیمیایی» هستند. به نظر می‌رسد این دست مشکلات با مطالعه‌ی مراجع مناسب‌تر از survey رفع خواهند شد.
۶- تنها مرجعی که در این کار استفاده کرده‌اید، نه تنها قدیمی است، بلکه مربوط به «بازشناسی گفتار» است که با زمینه‌ی تحقیقاتی شما (که «جستجوی کلمات کلیدی» یا "keyword spotting" است) تفاوت دارد.