PDA

View Full Version : سوال: تشخیص جنسیت و یا سن از روی صدا



My_LoVe_IRAN
سه شنبه 27 اسفند 1392, 10:21 صبح
سلام
من میخام برنامه ای بنویسم که از روی صدای کاربر تشخیص بده که سن کاربر چنده (به طور تغریبی)
همچنین جنسیت کاربر رو معلوم کنه (زن یا مرد)
اصلا نمدونم باید از کجا شروع کنم ،اگر کسی از دوستان میتونه راهنمایی کنه ،تشکر

Mousavmousab
سه شنبه 27 اسفند 1392, 13:47 عصر
این کار شما از اون کارایی است که کمتر ایرانی دنبالش میره.
ولی اگه کسی بتونه راهنمایی کنه ما هم استفاده می کنیم.
اساتید کمک کنید.

NASA's Spaceman
سه شنبه 27 اسفند 1392, 16:01 عصر
منم دوست دارم بدونم
اگه به دفاتر ماکروسافت زنگ بزنین سیستم های تلفنش همینجوری کار میکنن که با استفاده از هوش مصنوعی نوشته شده
ولی اگه بشه بدون هوش چنین کاری کرد منم منتظر جوابم
:لبخند:
با سپاس

Davidd
سه شنبه 27 اسفند 1392, 16:14 عصر
اين جور مسائل اكثرا نياز به روش هاي يادگيري ماشين دارند به اين صورت كه بايد از سيگنال صداي ضبط شده؛ feature استخراج بشه و همچنين يك ديتابيس واسه آموزش داشته باشي كه از صداهاي افراد مختلف feature استخراج شده و جنسيت و سن معلوم باشه. روش يادگيري ماشين (هوش مصنوعي) از روي اين ديتابيس آموزش؛ رابطه بين سيگنال و جنسيت و سن تقريب مي زنه و براي سيگنال هاي جديد پيش بيني انجام ميده.
اين كار يه كار تحقيقي و آكادميك هست مگه اينكه كتابخانه آماده براي اينكار پيدا كنيد.

CsharpNevisi
سه شنبه 27 اسفند 1392, 17:45 عصر
برای تشخیص جنسیت باید مقدار زیر و بمی صدا رو مشخص کنی ... !!!!
باید نمونه های صوتی رو تو بازه های زمانی کوتاه دریافت و فیلتر ها و توابع پنجره صاف و نهایت با الگوریتم هایی مثل FFT بررسی کنی ... !!!!
کار راحتی نیست .... !!!!
با به دست اوردن فاصله بین خطوط هارمونیک میتونیم جنسیت و میزان تقریبیه سن و سال را به دست اوریم ... !!!!
خودش مبحثیه برای خودش و باید خیلی تلاش کنی ... به این نمودار توجه کن :
http://www.xum.ir/images/2014/03/18/Picture1.png

NASA's Spaceman
سه شنبه 27 اسفند 1392, 18:52 عصر
دوست عزیز کد نویسیش چی میشه؟

Mousavmousab
سه شنبه 27 اسفند 1392, 20:55 عصر
فکر می کنم قبل از کد نویسی باید خیلی مفاهیم رو مورد بررسی قرار بدیم و با موضوع آشنا بشیم.
کم چیزی نیست !!!

NASA's Spaceman
سه شنبه 27 اسفند 1392, 21:12 عصر
خب حداقل درمورد اون مفاهیمش توضیح بدین

My_LoVe_IRAN
سه شنبه 27 اسفند 1392, 21:50 عصر
برای تشخیص جنسیت باید مقدار زیر و بمی صدا رو مشخص کنی ... !!!!
باید نمونه های صوتی رو تو بازه های زمانی کوتاه دریافت و فیلتر ها و توابع پنجره صاف و نهایت با الگوریتم هایی مثل FFT بررسی کنی ... !!!!
کار راحتی نیست .... !!!!
با به دست اوردن فاصله بین خطوط هارمونیک میتونیم جنسیت و میزان تقریبیه سن و سال را به دست اوریم ... !!!!
خودش مبحثیه برای خودش و باید خیلی تلاش کنی ... به این نمودار توجه کن :
http://www.xum.ir/images/2014/03/18/Picture1.png
حرف شما رو تایید میکنم ،تا جایی که خودم هم تحقیق کردم همین بوده ،اما خب ،بحث تئوریش یه طرفه و کدنویسیش یه طرف دیگه ،اصلا نمیدونم چطور میشه تشخیص صدا داد !! چطور باید زیر و بم و ... رو نشخیص داد ؟!!! اگر بشه چنین کاری کرد اونوقت میشه گفت با تئوری شبیه به تئوری شما باید قضیه حل بشه !!!!
اگر کسی از دوستان در این مورد چیزی میدونه بگه ،خیلی ممنون

My_LoVe_IRAN
چهارشنبه 28 اسفند 1392, 10:28 صبح
کسی از دوستان نظری نداره ؟ یعنی هیچی ؟

zayens
چهارشنبه 28 اسفند 1392, 11:01 صبح
برنامه اول باید بتونه صدای مثلا در قابلمه را :لبخند:با صدای انسان تمیز بده
این فاز اوله ...
توی اینترنت مقاله در موردش هست
گوگل کنین...Detection Human Voice

zayens
چهارشنبه 28 اسفند 1392, 11:05 صبح
یه نگاه هم به اینجا بندازین بد نیست
http://stackoverflow.com/questions/7955041/voice-detection-in-android-application

CsharpNevisi
چهارشنبه 28 اسفند 1392, 13:35 عصر
خب ببین ... شما اول باید مفاهیم تئوری را یاد بگیری ... برای تشخیص صدای در قابلمه با صدای انسان هم باید فرکانس های سازنده و فرکانس های پایه رو مد نظر بگیرید ولی یه مشکلی که هست اینه که ممکنه این فرکانس ها توی صدای قابلمه باشه که اونم باید با توابع پنجره که یه سری فورمول ریاضی هست برطرف کنید .. !!!
چدتا از توابع معروف پنجره : پنجره هان ، پنجره همینگ ، پنجره تاکی ، پنجره گاوسشن ، پنجره های بلکمن و ... هستن .. !!!
شما اول باید با نمودار اسپکتروم و اسپکتروگرام اشنا بشی .... !!!!
باید تئوری تشخیص صوت رو به خوبی یاد بگیری ... بعدش بری سمت کد نویسی ... !!!!
اینم یه نمونه از window filter
using System;using System.Collections.Generic;


using System.Text;


namespace SoundAnalysis.Filters
{
// بصورت پیشفرض تبدیل فوریه بصورت مستطیلی محاسبه میشود
// جهت اجتناب از پخش شدن قدرت از فرمول بلکمن استفاده نمودیم
public class WindowFilter : IFreqFilter
{
int _frameSize=1024;
double _dPi;
double _dTwoPi;
double _dTemp;


public WindowFilter(int frameSize)
{
_frameSize = frameSize;
_dPi = 4 * Math.Atan(1);
_dTwoPi = _dPi + _dPi;
}


public void ProcessData(double[] spec, double[] data)
{


for (int i = 0; i < data.Length; i++)
{
_dTemp = _dTwoPi * i / _frameSize;
data[i] = data[i] * (0.42 - 0.5 * Math.Cos(_dTemp) + 0.08 * Math.Cos(2 * _dTemp));


}
}
}
}

Mousavmousab
چهارشنبه 28 اسفند 1392, 19:50 عصر
اینجار را هم ببینید بد نیست.

http://stackoverflow.com/questions/227140/c-sharp-speech-recognition-is-this-what-the-user-said

فقط محظ یاد آوری باید using System.Speech.Recognition;

را صدا بزنید. البته قبلش هم Speech.Recognition
را هم باید AddReference کنید.

NASA's Spaceman
چهارشنبه 28 اسفند 1392, 19:53 عصر
********را صدا بزنید. البته قبلش هم Speech.Recognition******
********را هم باید AddReference کنید.*******
اینی که گفتی از کجا باید انجامش بدم؟

Mousavmousab
چهارشنبه 28 اسفند 1392, 20:00 عصر
توی پروژه خودت روی references باید راست کلیک کنی و بعد AddReference را بزنی

طبق تصویر انتخاب و OK کنید.

117160

Mousavmousab
چهارشنبه 28 اسفند 1392, 20:01 عصر
اینم نوشته های مکتوب مایکروسافت :
http://msdn.microsoft.com/en-us/library/hh361683%28v=office.14%29.aspx

Mousavmousab
چهارشنبه 28 اسفند 1392, 20:51 عصر
دانلود پایان نامه تشخیص صوت و گفتار در سی شارپ (http://persianit.net/%d9%be%d8%a7%db%8c%d8%a7%d9%86-%d9%86%d8%a7%d9%85%d9%87-%d8%aa%d8%b4%d8%ae%db%8c%d8%b5-%d8%b5%d9%88%d8%aa-%d9%88-%da%af%d9%81%d8%aa%d8%a7%d8%b1-%d8%af%d8%b1-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be.html)



http://persianit.net/wp-content/uploads/2013/09/VoiceRecognition-300x246.jpg (http://persianit.net/wp-content/uploads/2013/09/VoiceRecognition.jpg)





اینجا را کلیک کنید (http://persianit.net/%D9%BE%D8%A7%DB%8C%D8%A7%D9%86-%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%B5%D9%88%D8%AA-%D9%88-%DA%AF%D9%81%D8%AA%D8%A7%D8%B1-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE.html)

My_LoVe_IRAN
چهارشنبه 13 فروردین 1393, 22:27 عصر
دانلود پایان نامه تشخیص صوت و گفتار در سی شارپ (http://persianit.net/%d9%be%d8%a7%db%8c%d8%a7%d9%86-%d9%86%d8%a7%d9%85%d9%87-%d8%aa%d8%b4%d8%ae%db%8c%d8%b5-%d8%b5%d9%88%d8%aa-%d9%88-%da%af%d9%81%d8%aa%d8%a7%d8%b1-%d8%af%d8%b1-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be.html)





http://persianit.net/wp-content/uploads/2013/09/VoiceRecognition-300x246.jpg (http://persianit.net/wp-content/uploads/2013/09/VoiceRecognition.jpg)





اینجا را کلیک کنید (http://persianit.net/%D9%BE%D8%A7%DB%8C%D8%A7%D9%86-%D9%86%D8%A7%D9%85%D9%87-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%B5%D9%88%D8%AA-%D9%88-%DA%AF%D9%81%D8%AA%D8%A7%D8%B1-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE.html)
با تشکر
خب تا اینجاش قبول ،اما به قول دوستمون حالا از کجا باید تشخیص داد این صدا دای انسانه یا قابلمه ؟!
علاوه بر اون ،چطور تشخیص داد این صدا چند سالشه یا زن یا مرد ؟؟!!!
اینطور میخام بگم ،مثلا ما میدونیم صدای بم ماله مرد هست ،حالا ایا این صدای بم از یه انسان در اومده یا نه از یه ساز ؟! همه ی اینا ملاکه !!!
اینا رو باید چه کرد ؟

Mousavmousab
پنج شنبه 14 فروردین 1393, 18:07 عصر
موضوع موصوع خیلی خوب و حرفه ای و کارآمدی است ولی نیاز به علم زیادی داره و باید به صوت پایه ای تحقیق بشه
فعلاٌ توی این سایت هم اطلاع زیادی در این مورد نداریم و فک نمیکنم به این زودیا چیزی دستگیرت بشه

باید تحقیق کنی بعید بدونم منابع فارسی خوبی گیرت بیاد.

zayens
شنبه 23 فروردین 1393, 14:48 عصر
خودتونو خسته نکنید!
همه ی چیزای دنیا را که نمیشه برنامه نویسی کرد که !! :لبخند:
تکنولوژیش رو ایرانیا هنوز ندارن!!

Mousavmousab
شنبه 23 فروردین 1393, 21:33 عصر
انشا الله جور میشه !!!