اطلاعیه

Collapse
No announcement yet.

Speech Recognition

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    Speech Recognition

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

    #2
    پاسخ : Speech Recognition

    سلام .................

    ببینید مراحل کارتون تقریبا میتونه تشکیل بشه از اینکه ..
    ** صوت ورودی که به عنوان Tamplate دریافت میکنید رو Discrete کنید و به فضای دیجیتال ببرید .. البته در این مرحله باید بدونید که از چه فاکتورهایی باید بگذرید و در عمل نمونه برداری که باعث دیجیتایز شدن میشه به قدری مناسب باشه که روی کیفیت صدا تاثیر نذاره .. معمولا در این مرحله صوت ظبط شده رو با یه فیلتر صاف میکنن به این معنا که اثرات نویز و یا اون صدای HUM رو ازش میگیرن که میتونه هم سخت افزاری پیاده بشه و هم به صورت فیلتر های دیجیتال ..
    **بعد از ذخیره ی صوت، شما باید اطلاعات اون رو استخراج کنید به این معنا که بدونید هر قسمت سیگنالتون از چه خاصیتهایی برخورداره .. البته اگه شما صوتتون رو دیجیتال کنید بهره برداری از این اطلاعات خیلی راحت تر میشه ..
    **بعد از این مرحله شما باید صوت های ورودی دیگه رو با اون مقایسه کنید .. عمل مقایسه ی دو سیگنال هم راه های خاص خودش رو داره .. مثلا میتونید Correlation دو سیگنال رو حساب کنید و با این عمل هرچی این نتیجه پیک تر بشه نزدیکی دو سیگنال به هم بیشتره .. یه راه دیگه میتونه مقایسه ی طیف فرکانسی اونا باشه .. (من اینا رو دقیق نمیدونم .. )

    اما راه حل کلی شما همون Pattern Recognition هست و باید از الگوریتم ها و روش های اون استفاده کنید .. من توی زمینه ی صوت کار نکردم و نمیتونم از این بیشتر راهنماییتون کنم .. شرمنده .. راستی به لینک زیر هم یه سر بزنید .. دو تا فایل خوب اونجا هست که شاید براتون مفید باشه .. موفق باشید ..

    http://www.eca.ir/forum2/index.php?topic=22481.0
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : Speech Recognition

      بجای اینهمه زحمت به اون کارمند بگید اون کلمه رو دیگه تکرار نکنه. شاید عاقل باشه و گوش کنه

      راستی میکروسافت یه نرم افزار به نام Via Voice داره که کار باهاش بسیار ساده است و ممکنه نیاز به ساخت دستگاه نداشته باشید چون یه پروژه ی کامله و دردسرهای خاص خودشو داره. با اینکه الگوریتمهای تشخیص زیادی در دنیا هست اما بهترینهاش رو باید خرید و رایگان نیست.
      با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

      دیدگاه


        #4
        پاسخ : Speech Recognition

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

        این مطلب موضوع پروژمه... و وقت زیادی هم برای انجامش ندارم(3 هفته به صورت شبانه روزی!)... اگر بشه تا جای ممکن پیچیدگیش کمتر شه تا بشه ساختش، خیلی خوب میشه...
        میشه از یه میکرو AVR موجود استفاده کرد؟ دوستان اگر کسی می تونه برای طراحی و ساختش همکاری کنه لطفاً بگه...
        آدرسم: s.eftekharnoori@yahoo.com
        دوست ندارم یه پروژهء آماده بخرم :cry2:

        دیدگاه


          #5
          پاسخ : Speech Recognition

          سلام .................

          ببینید در مورد مطلبی که فرمودید باید بگم که کار نسبتا روتینی هست به این معنا که مشابهش زیاد انجام شده .. اکثرا در قالب پسورد های صوتی از این روش استفاده میکنن .. روش کار هم بر مبنای Pattern Recognition هست .. در مورد میکرو که فرمودید باید بگم که مطمئنا نمیشه با اونا این کار رو کرد .. یه تاپیک هست توی قسمت پردازش تصویر به نام پردازش تصویر با میکرو .. حتما اون تاپیک رو بخونید .. درسته که اونجا مبحث برای تصویر مطرح شده اما در کل پیاده سازی الگوریتم ها و پردازش اونها مهمه و محدودیت هایی که میکرو در قبال اونها داره .. اگه میخواید به صورت Portable این سیستم رو پیاده سازی کنید میتونید از FPGA ها استفاده کنید .. کدش رو هم میتونید با زبان توصیف سخت افزار HDL بنویسید .. فکر کنم یه نمونه کدش رو داشته باشم .. اگه خواستید براتون میذارم .. اما اگه میخواید به صورت سیمولیشن کار کنید میتونید از متلب استفاده کنید .. یه سری دستورات پردازشی صوت هم توی متلب پشتیبانی میشن که میتونید از اونها استفاده کنید .. اگه میخواید پیچیدگیش کمتر بشه بهتره که توی محیط سیمولیشن پیاده سازیش کنید .. یه میکروفون برای ورودی صوت داشته باشید و یه Pattern هم به عنوان معیار مقایسه .. فکر کنم مشکلات سیمولیشن خیلی کمتر از Implementation سخت افزاری باشه .. بستگی به محدودیت های تعریف شده برای شما داره .. موفق باشید ..
          دوستان! مدتی کمتر به سایت میام ..

          دیدگاه


            #6
            پاسخ : Speech Recognition

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

            نکته ی دیگه اینه که AVR ها چندان مناسب اینکار نیستند چون نیاز به پروسسورهای قویتری مثل DSP داره.

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

            با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

            دیدگاه


              #7
              پاسخ : Speech Recognition

              نوشته اصلی توسط ahmadmn
              اما اگه اصرار دارید. یه میکروفن بگیرید و با یه پ امپ مثل NE5534 تقویت و فیلترش کنید تا ولتاژ خروجیش بین صفر تا 5 ولت و فرکانس عبوریش از 100 هرتز تا مثلا 8 کیلوهرتز باشه. خروجی این پ امپ را به یکی از ورودی های ولتاژ AVR وصل کنید.
              سلام ...................

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

              دیدگاه


                #8
                پاسخ : Speech Recognition

                سلام دوستان
                بی نهایت از راهنماییتون سپاسگزارم، گویا بهترین گزینه شبیه سازیه...
                آقای حسام الدین میشه خواهش کنم نمونه کدی رو که در موردش صحبت کردید بفرستید؟
                شرمنده ام که این سوءال رو می پرسم، تا حالا با Proteus و modelsim کار کرده بودم، اما با MATLAB خیر.. کار سختیه؟ یا زود روش کار دستم می آد؟

                دیدگاه


                  #9
                  پاسخ : Speech Recognition

                  سلام ................

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

                  دیدگاه


                    #10
                    پاسخ : Speech Recognition

                    سلام
                    ببخشید لینک رو نگذاشتید...

                    دیدگاه


                      #11
                      پاسخ : Speech Recognition

                      نوشته اصلی توسط samira_e
                      سلام
                      ببخشید لینک رو نگذاشتید...
                      سلام ..................

                      من معذرت میخوام بابت دو قضیه .. یکی که فراموش کردم لینک رو بذارم .. یکی هم اینکه فایل رو دیر پیدا کردم ..

                      http://www.eca.ir/forum2/index.php?topic=3883.0

                      فایل های پیوست شده
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #12
                        پاسخ : Speech Recognition

                        سلام ...............

                        فایل زیر رو توی سیستمم داشتم گفتم بذارم شاید بتونه براتون مفید باشه .. موفق باشید ..

                        فایل های پیوست شده
                        دوستان! مدتی کمتر به سایت میام ..

                        دیدگاه


                          #13
                          پاسخ : Speech Recognition

                          سلام ................

                          من یه جای کارام مجبور شدم روی یه الگوریتم Matching کار کنم .. توی اینترنت بر حسب Application ای که داشتم سرچ کردم و به الگوریتم DTW رسیدم .. اساس این الگوریتم بر تطابق دینامیک سمپل های دریافتی از دو سیگناله .. توی Signature Matching فوق العاده خوب جواب داده بود ..(البته برای برخیFeature های خاص ..) .. موارد استفاده ی دیگش رو که بررسی کردم دیدم برای Speech Recognition هم کاربرد داره .. در حقیقت یکی از الگوریتم های Pattern Recognition هست که برای انواع Matching (البته با Accuracy های متفاوت ..) استفاده میشه .. گفتم شاید بتونید برای پروژتون از این الگوریتم هم استفاده کنید .. موفق باشید ..

                          http://www.cs.ucr.edu/~eamonn/KAIS_2004_warping.pdf

                          http://revistaie.ase.ro/content/46/S%20-%20Furtuna.pdf

                          http://www.cse.ust.hk/acl2000/Demo/05_nouza.pdf

                          http://www.jdl.ac.cn/doc/2004/DTW%20...Vocabulary.pdf
                          دوستان! مدتی کمتر به سایت میام ..

                          دیدگاه


                            #14
                            پاسخ : Speech Recognition

                            نوشته اصلی توسط حسام الدین

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

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

                            دیدگاه


                              #15
                              پاسخ : Speech Recognition

                              سلام ..................

                              حسام جان ، راجع به این قسمت منو روشن می کنی ؟ می خوام فقط همین یک قسمت رو بدونم که دقیقا چه طور می تونم شبیه ترین سیگنال رو پیدا کنم ؟؟ این قسمت که باید با تابع Correlation انجام بشه ، قسمت کوچکی از یک پروژه ام هست ، اگه کمی این قضیه رو باز کنی ممنون می شم ، ( هیچی نمی دونم که چرا باید اصلا از Correlation استفاده کنم و بعد باید چطور ادامه بدم ؟؟ )
                              شرمنده، یک مقدار دیر پاسخ دادم .. ببینید یکی از روش هایی که برای مقایسه ی تطابق سیگنال وجود داره؛ محاسبه ی همین Correlation برای اون سیگنال هست .. امــا منظور از Correlation چیه دقیقا؟ شما کانولوشن دو سیگنال رو خاطرتون هست؟ یکی رو سیگنال مبنا قرار میدادیم و دیگری رو هم سیگنال کرنل .. بعد به ازای رابطه ای که برای سیگنال کرنل تعریف میشد، اثر همپوشانی و Overlapping رو روی سیگنال اصلی بررسی میکردیم .. بازه هم که خاطرتون هست چطور تعیین میشد ..

                              رابطه ای که اونجا وجود داشت چی بود؟ سیگنال Main که با f نمایش داده میشد در شیفت یافته ی h به اندازه ی "تو" نسبت به محور y ضرب مید و از این رابطه انتگرال گرفته میشد (در فضای گسسته تعبیر سیگما رو با انتگرال جایگزین کنید..) در Correlation هم اتفاقی که میوفته تقریبا شبیه کانولوشن هست با این فرق که سیگنال حاصل از Correlation اطلاعاتی به ما میده که به قضاوت ما نسبت به تطابق کمک میکنه .. اولا رابطه ی اون چیه؟ درست مثل کانولوشن با دو فرق .. ائلیش که در شیفت نمونه ی کرنله که به سمت راست میره و از اونجا حرکت میکنه .. دوم هم در سیگنال f .. اینجا ما با Conjugate سیگنال Main کار میکنیم که اگه سیگنال ما در حوزه ی Real قرار بگیره این Conjugate با خود f برابر میشه ..

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

                              حالا سوالی که مطرح میشه اینه که کاربرد این رابطه تا چه حدی میتونه گسترده باشه .. از کاربرد هایی که در ظاهر از Application های رسمی اون استنباط میشه بحث Matching و قیاس این روال هست .. حالا اینا کجا کاربرد دارن؟ در Application های Pattern .. اونجا خیلی میشه از این ایده استفاده کرد .. امــا استقبال از این روش خیلی کم شده؛ میدونید چرا؟ مثال میزنم .. فرض کنید سیگنال کرنل شما که به عنوان یک Pattern خاص در دیتابیس لحاظ شده؛ توسط ورودی دریافت میشه .. Correlation قضاوت آماری میتونه بکنه از تطابق بین دو سیگنال .. امــا فرض کنید از بد ماجرا سیگنال ورودیتون کمی نویز پیدا کرده یا اینکه گونه هایی در اون هست که شباهت رو با Pattern حاصل میکنه امــا کلیت سیگنال زیاد با Pattern رابطه ای نداره .. خب اینجا نمیشه زیاد به Correlation اعتماد کرد هرچند که نمیشه زیاد هم به اون بد بین بود .. به هر حال باید دید دقت و کاربرد در اون زمینه؛ چه محدودیتهایی رو برای شما به وجود میاره .. موفق باشید ..
                              دوستان! مدتی کمتر به سایت میام ..

                              دیدگاه

                              لطفا صبر کنید...
                              X