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

۱. مقدمه

برای دهه ها تشخیص خودکار کلمات کلیدی1 به عنوان یکی از موضوعات تحقیقات علمی مطرح شده و به دلیل افزایش سرعت محاسبه و دقت سیستمهای دیجیتال، پیاده سازی این سیستم ها رشد چشمگیری داشته است[3]. حوزه ی پردازش گفتار گستره ی وسیعی از مسائلی که مرتبط با پردازش و شناسایی گفتار است را در بر می گیرد که در هر مورد صورت مسئله با توجه به فرضیاتی که برای سادگی حل اعمال می شوند متفاوت است. برای نمونه در برخی مسائل فرض بر این است که ما در یک پایگاه داده ی از پیش مشخص به دنبال یافتن برخی از کلمات کلیدی هستیم در حالی که در دسته ای دیگر از مسائل می بایست تشخیص کلمات کلیدی2 بر روی یک جریان داده انجام گردد3. با همه این تفاوت ها هدف مشترک هر دو مسئله را می توان به شرح زیر تعریف نمود:
ساخت یک سیستم تشخیص کلمه، که قادر است تعداد محدودی از کلمات یا عبارات کلیدی از پیش تعیین شده را در گفتار گوینده تشخیص دهد در حالیکه از بقیه ی گفتار گوینده چشم پوشی می کند.
تعریف فوق هدف مشترک این دو دسته مسئله را بیان می کند در حالی که این دو دسته مسئله کاربردهای متفاوتی دارند. برای نمونه اگر هدف تشخیص کلمات کلیدی در یک جریان داده باشد و عمل تشخیص کلمات کلیدی به طور پیوسته انجام گردد کاربردهای زیادی(از جمله استفاده این سیستم ها در خانه ها هوشمند) را می توان برای آن متصور بود. اگر پایگاه داده از قبل مشخص باشد نیز کاربرد هایی چون جستجوی کلمات کلیدی در پایگاههای داده ی بزرگ را می توان برای آن برشمرد.
برای حل این دو دسته مسئله، دو نوع فیلتر مختلف طراحی و استفاده می گردد:

  1. فیلتر واجی: که وظیفه ی آن تشخیص واج های مختلفی است که گوینده ادا می کند. در این نوع فیلتر هر واج مختلف فیلتر مخصوص به خود را دارد که در صورت تشخیص واج مورد نظر خروجی مطلوب را تولید می کند.

  2. فیلتر بخشی: وظیفه ی این نوع فیلتر تشخیص بخش های کلمات کلیدی است و مانند فوق هر بخش دارای فیلترهای متعددی است که هر کدام وقوع بخش های مورد نظر خود را تشخیص می دهد.
    در پیاده سازی چون بخش ها از نظر مدت صدا بزرگتر از واج ها هستند؛ فیلترهای واجی عملکرد بهتری دارند[4].

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

راه حل هایی که برای تشخیص کلمات کلیدی به طور پیوسته ارائه شده به شرح زیر است:

  1. تطبیق الگو4. در این روش با استفاده از تکنیک های برنامه نویسی پویا؛ در هر لحظه از زمان یک فاصله نسبت به الگوی صدای هر کلمه ی کلیدی محاسبه می شود و بر اساس این فاصله ی محاسبه شده: وقوع یا عدم وقوع کلمه ی کلیدی تعیین می گردد[10].

  2. مدل مخفی مارکوف5. در این روش شباهت صحبت گوینده با کلمات کلیدی یا زیربخش های کلمات کلیدی طبق مدل مخفی مارکوف آن کلمه یا زیربخش سنجیده می شود. در گام بعدی؛ امتیاز شباهت بدست آمده توسط رویه ی امتیاز دهی مدل مارکوف با یک حد آستانه مقایسه می گردد و با توجه به نتیجه مقایسه روخداد یا عدم رخداد کلمه ی کلیدی تشخیص داده می شود[5,8,9].

  3. شبکه عصبی6. اخیرا نوع خاصی از شبکه های عصبی در حل مسئله ی تشخیص کلمات کلیدی به کار گرفته شده اند. شبکه های عصبی با تاخیر زمانی7 نوعی شبکه عصبی هستند که قادر به تشخیص رویدادن کلمات کلیدی هستند[6]. همچنین از شبکه های عصبی چند لایه نیز برای حل این مسئله استفاده گردیده[2].

  4. روش های ترکیبی: برای نمونه مدلی مرکب ارائه گردیده که مرکب از مدل مخفی مارکوف و یک شبکه ی عصبی مصنوعی با توابع شعاعی8 است و قادر است با عملکرد خوبی کلمات کلیدی مورد نظر را تشخیص دهد. در این روش ها سعی بر آن است که از مزایای هر کدام از روش ها استفاده گردد تا عملکرد کلی سیستم بهتر از به کارگیری جداگانه هر یک از این روش ها باشد.
    از راه های ارائه شده برای حل مسئله ی تشخیص کلمات کلیدی در گفتار، مدل مخفی مارکوف بیشتر توسعه پیدا کرده و در اغلب سیستم های پردازش پیوسته ی گفتار بکار گرفته می شود. برای نمونه مخفی مارکوف در سیستمی که علاوه بر تشخیص کلمات کلیدی، توانایی تشخیص کلمات غیر کلیدی را نیز دارد به کار گرفته می شود[7]. این کار به کمک مدل کردن واج های مختلف با فیلترهایی که از مدل مخفی مارکوف بهره می برند قابل پیاده سازی می باشد.
    واج ها کوچکترین جزء زبان هستند که با کنار هم قرار گرفتن آنها کلمات تشکیل می شوند و تغییر دادن آنها موجب تغییر معنی کلمات هستند. نکته ی مورد توجه در مورد واج ها این است که هر زبان بسته به ذات خود و چگونگی تحلیل آن، تعداد واج های متفاوتی دارد. برای نمونه زبان فارسی بسته به چگونگی تحلیل آن دارای 29 تا 45 واج مختلف است در حالیکه زبان انگلیسی 31 تا 64 واج دارد. هر چندکه فیلتر های واجی بهتر از فیلتر های بخشی عمل می کنند، اما باید آنها را به طور جداگانه و برای هر زبان به صورت منحصر به فرد تعریف کرد[4].

۳. آزمایش‌ها

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

۵. مراجع

[1] Mandal, Anupam, KR Prasanna Kumar, and Pabitra Mitra. "Recent developments in spoken term detection: a survey." International Journal of Speech Technology 17.2 (2014): 183-198.
[2] Chen, Guoguo, Carolina Parada, and Georg Heigold. "SMALL-FOOTPRINT KEYWORD SPOTTING USING DEEP NEURAL NETWORKS."
[3] Yong Ling. "keyword spotting in continous speech utterance." school of computer science, McGill university, 1999
[4] Javier Tejedor, Dong Wang, Joe Frankel, Simon King, Jose´ Cola´s. "A comparison of grapheme and phoneme-based units
for Spanish spoken term detection." speech communication, 2008
[5] David Grangier, Joseph Keshet, Samy Bengio. "Discriminative Keyword Spotting." speech communication, 2009
[6] Richard C. Rose. "Word Spotting from continuous speech utterance." 1996
[7] Richard C. Rose, Douglas B. Paul. "A hidden markov model based keyword recognition system." bell laboratories 1990
[8] T. Kawabata, T. Hanazawa, and K. Shikano. Word spotting method based on hmm phoneme recognition. Journal of the Acoustical Society of America (JASA), 1(84), 1988.
[9] L. Rabiner and B.H. Juang. "Fundamentals of Speech Recognition." Prentice-Hall, Upper Saddle River, NJ, USA, 1993
[10] J. S. Bridle. "An efficient elastic-template method for detecting given words in running speech. In Proceedings of the British Acoustic Society Meeting." British Acoustic Society, 1973.

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


  1. ASR: Automatic Speech Recognition

  2. KWS: Keyword Spotting

  3. CSR: Continous Speech Recognition

  4. Template Matching

  5. Hidden Markov Model

  6. Neural Network

  7. TDNN: Time Delay Neural Network

  8. Radial Basis Function

تایید شده

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

امین جولا

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