Speech Emotion Recognition

چکیده

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

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

مقدمه

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

تشخیص احساسات از روی گفتار 

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

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


مراحل انجام کار 

سیستم های تشخیص احساس از روی گفتار شامل 3 قسمت استخراج ویژگی ، انتخاب ویژگی و آموزش مدل می باشد .

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


جمع آوری داده 

در این پروژه جمع آوری داده از چالش های اصلی طراحی این سیستم بوده است . مجموعه داده های مورد استفاده شامل دیتاهای به زبان فرانسوی و انگلیسی است که در 4 کلاس خشمگین ، خوشحال ، ناراحت و خنثی در قالب صدای افراد پیر ، جوان و کودک ( زن و مرد ) جمع آوری شده اند ، هر یک از این کلاس ها بین 300 تا 400 داده ی مختلف را در خود جای داده اند .

مراحل آماده سازی داده ها 

برای آموزش مدل و تشخیص 4 کلاس گفته شده نیاز است تا مجموعه داده ی واحدی از لحاظ فرمت ، sampling rate ، bit resolution و تعداد کانال ( mono – stereo ) و … داشته باشیم .

بر این اساس داده های موجود را به شکلی واحد ، مطابق زیر درآوردیم :

  •  32 bit resolution
  •   16KHz sampling rate
  •  256kbps bitrate
  •  Mono audio chanells
  •   wav format

استفاده از سری دیتاست های مختلف (فرانسوی ، انگلیسی ، فرانسوی و انگلیسی ) 

به منظور دست یابی به بهترین کارایی ممکن با استفاده از داده های موجود در ابتدا تنها با استفاده از دیتاهای فرانسوی به آموزش مدل پرداختیم و به کارایی 96.2% و خطای 0.02 رسیدیم ، همین روند را برای دیتای انگلیسی پیش گرفتیم و نتایج 91.2% کارایی و 0.02 خطا مشاهده نمودیم . در آخر با استفاده از هردو سری دیتاهای انگلیسی و فرانسوی مدل را آموزش دادیم و به 92.7% و 0.006 رسیدیم .

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


استخراج ویژگی ها 

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

روش MFCC

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

تحقیقات انجام شده نشان دهنده ی این هستند که روش استخراج ویژگی MFCC مناسب ترین روش برای سیگنال های صوتی به ویژه گفتار می باشند

MFCC مطابق روال زیر محاسبه می شود :

ورودی: یک فریم از سیگنال گفتار

1-  یک تابع پنجره ی مناسب مانند پنجره ی همینگ روی فریم های موجود اعمال می کنیم.

2- روی خروجی مرحله ی قبل تبدیل فوریه ی گسسته (DFT) اعمال می کنیم .

3- خروجی مرحله قبل را در یک بانک فیلتر که اصطلاحا بانک فیلتر mel نامیده می شود، ضرب می کنیم.

4- خروجی های مرحله ی قبل را با هم جمع می کنیم.

5- از حاصل جمع مرحله ی قبل لگاریتم می گیریم .

6- سپس با استفاده از تبدیل DCT یعنی Discrete cosine transform می گیریم .


معماری مدل های مورد استفاده 

در ابتدای کار به پیاده سازی یک مدل کانولوشنی مطابقق با معماری شکل زیر پرداختیم و به نتیجه ی مطلوب نرسیده و درصد 87 را دریافت کردیم .

 

سپس به پیاده سازی یک مدل با استفاده از Recurrent neural network پرداختیم و نتایجی بهتر مطابق قسمت قبلی رسیدیم .

 

با توجه به نتایج بدست آمده در این مرحله با مدل RNN پیش رفتیم و در انتهای لایه های موجود ،  با استفاده از Dense (چهار تایی)  و تابع فعال ساز Softmax به تفکیک 4 کلاس موجود پرداختیم .

در انتها موفق به تفکیک صداهایی در 4 احساس مختلف عصبانی ، خوشحال ، غمگین و خنثی شدیم .


پروژه ی تشخیص احساسات از روی گفتار                                                                                               محیا مهدیان _ نفیسه داوری