اطلاعیه

Collapse
No announcement yet.

پردازش صدا روی میکرو

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

    پردازش صدا روی میکرو

    سلام.
    من میخواستم یه پردازش صوت راه بندازم.بعضی جا ها بحث آی سی hm2007 بود که انگار توی ایران گیر نمیاد.
    میخوام روی میکرو کار کنم.
    برای مثال ببینید:

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

    #2
    پاسخ : پردازش صدا روی میکرو

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

    دیدگاه


      #3
      پاسخ : پردازش صدا روی میکرو

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

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

      http://download.eca.ir/?p=658
      اخبار فناوری - راز روز

      http://razerooz.com

      دیدگاه


        #4
        پاسخ : پردازش صدا روی میکرو

        سلام.
        از جوابتون ممنون.
        میشه یکم بیشتر درباره ی الگوریتم DTW توضیح بدید؟من تا حالا اصلا روی بحث تحلیل سیگنال کار نکردم.
        مشکل اصلی من با برسی تطابق دو تا سیگنال،اینه که اولا طولشون برابر نیست،اول و آخر مشخصی ندارن و ممکنه بعضی قسمت های کلمه کشیده تر گفته بشه یا صدا کم و زیاد بشه.
        تعداد فرمان های صوتی که باید دستگاه بلد باشه خیلی زیاد نیست.
        در ضمن،AVR برای استفاده از این الگوریتم ها کلاک کم نمیاره؟
        نکته ی دیگه این که میشه دستگاه همیشه در حال گوش کردن باشه؟ یا نویز محیط اونقدر تاثیر داره که باید دستگا بعد از شنیدن یه شیگنال مثل Voice command آماده ی شنیدن دستور باشه؟
        از جوابتون ممنون.

        دیدگاه


          #5
          پاسخ : پردازش صدا روی میکرو

          AVR ها فکر نکی کنم مناسب این کار باشن ؛ هم از لحاظ قدرت پردازش و هم از لحاظ محاسبات ریاضی... پیدا سازی برخی توابع لازم برای کار به صورت سخت افزاری
          به خاطر همین DSP یا شاه پروسسور ها FPGA باید استفاده بشه
          اخبار فناوری - راز روز

          http://razerooz.com

          دیدگاه


            #6
            پاسخ : پردازش صدا روی میکرو

            نوشته اصلی توسط apcog
            سلام.
            از جوابتون ممنون.
            میشه یکم بیشتر درباره ی الگوریتم DTW توضیح بدید؟من تا حالا اصلا روی بحث تحلیل سیگنال کار نکردم.
            مشکل اصلی من با برسی تطابق دو تا سیگنال،اینه که اولا طولشون برابر نیست،اول و آخر مشخصی ندارن و ممکنه بعضی قسمت های کلمه کشیده تر گفته بشه یا صدا کم و زیاد بشه.
            تعداد فرمان های صوتی که باید دستگاه بلد باشه خیلی زیاد نیست.
            در ضمن،AVR برای استفاده از این الگوریتم ها کلاک کم نمیاره؟
            نکته ی دیگه این که میشه دستگاه همیشه در حال گوش کردن باشه؟ یا نویز محیط اونقدر تاثیر داره که باید دستگا بعد از شنیدن یه شیگنال مثل Voice command آماده ی شنیدن دستور باشه؟
            از جوابتون ممنون.
            در مورد پیدا کردن شروع و پایان کلمه باید از روشهای پردازش صوت استفاده کنید. سیگنال صحبت رو میشه به قسمت های سکوت (Silence)، صدادار (Vowel) و بی صدا (Consonants) تقسیم کرد. کلمه گفته شده قسمتی هست که بین دو قسمت سکوت با فاصله زمانی کافی قرار داره. میتونید این فایل رو بخونید امیدوارم کمک کنه.

            طول نامساوی و کشیدگی و فشردگی متفاوت با الگوریتم Dynamic Time Warping حل میشه. این فایل که قسمتی از پایان نامه من هست میتونه بهتون کمک کنه.

            قراره دستگاه چند تا کلمه کلیدی رو تشخیص بده؟ ممکنه کلماتی غیر از فرمان های ذخیره شده هم به دستگاه گفته بشه؟ یعنی باید این موارد رو هم تشخیص بده که جزو کلمات کلیدی نیستن؟

            من پردازش صدا با AVR کار نکردم و در مورد ظرفیت AVR نمیتونم اظهار نظر کنم. ولی برای افزایش دقت و کاهش محاسبات (حافظه و زمان پردازش) معمولاً از سیگنال صوت، ویژگی استخراج میشه مثلاً ویژگی PLP یا MEL. الان برای ویژگی ها چیزی آماده ندارم که بذارم ولی کلیت کار اینه که سیگنال فریم بندی میشه به این شکل که از هر 10 میلی ثانیه سیگنال که با فرکانس نمونه گیری 22 کیلوهرتز دارای 220 نمونه است با PLP میشه مثلاً 13 تا مقدار استخراج کرد که معرفی کننده ویژگی های کل اون 220 نمونه است و به این ترتیب حجم محاسبات کمتر بشه.

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

            دیدگاه


              #7
              پاسخ : پردازش صدا روی میکرو

              خیلی ممنون.
              یعنی به نظر شما AVR برای الگوریتم های تطابق سیگنال کلاک کم میاره؟؟
              منظورتون از روش دومی این بود که مثلا کلمه رو به 10 قسمت تقسیم کنیم و میانگین یکی از ویژگی های نمونه های هر قسمت رو بگیریم.اینجوری یه کد به دست میاد.و اون رو با بقیه مقایسه کنیم ببینیم به کدوم شبیه تره؟
              کلماتی که به دستگاه گفته میشن همه از قبل روی دستگاه برنامه ریزی شدن.اما مشکل اینجاست که دستگاه نباید صدای محیط و صدای حرف زدن با کس دیگه ای رو به عنوان دستور بگیره.پس تنها راه اینه که دستگاه همیشه فقط منتظر شنیدن دستور voice command باشه.اینو که شنید بره روی حالت گرفتن دستور.تا مدت 1 دقیقه بعد گفتن هر دستور هم اگه صدایی نشنید دوباره بره روی حالت sleep .
              میرم فایل ها رو مطالعه میکنم میام برای ادامه ی بحث.
              ممنون.

              دیدگاه


                #8
                پاسخ : پردازش صدا روی میکرو

                میکروکنترلرهای dspic رو ببینید این قابلیت رو فکر کنم داشته باشن

                دیدگاه


                  #9
                  پاسخ : پردازش صدا روی میکرو

                  نوشته اصلی توسط apcog
                  خیلی ممنون.
                  خواهش می کنم. برای تشکر فقط کلید تشکر را بزنید.
                  یعنی به نظر شما AVR برای الگوریتم های تطابق سیگنال کلاک کم میاره؟؟
                  این پروژه رو ببینید. یک پروژه کامل تشخیص صوت با کلمات محدود با استفاده از Mega32 با تمام فایلهای لازم.
                  منظورتون از روش دومی این بود که مثلا کلمه رو به 10 قسمت تقسیم کنیم و میانگین یکی از ویژگی های نمونه های هر قسمت رو بگیریم.اینجوری یه کد به دست میاد.و اون رو با بقیه مقایسه کنیم ببینیم به کدوم شبیه تره؟
                  فایلها رو بخونید متوجه میشید.
                  کلماتی که به دستگاه گفته میشن همه از قبل روی دستگاه برنامه ریزی شدن.اما مشکل اینجاست که دستگاه نباید صدای محیط و صدای حرف زدن با کس دیگه ای رو به عنوان دستور بگیره.پس تنها راه اینه که دستگاه همیشه فقط منتظر شنیدن دستور voice command باشه.اینو که شنید بره روی حالت گرفتن دستور.تا مدت 1 دقیقه بعد گفتن هر دستور هم اگه صدایی نشنید دوباره بره روی حالت sleep .
                  فکر می کنم بهترین کاریه که میشه کرد.
                  میرم فایل ها رو مطالعه میکنم میام برای ادامه ی بحث.
                  موفق باشید.
                  لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                  لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                  با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
                  اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
                  یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

                  دیدگاه


                    #10
                    پاسخ : پردازش صدا روی میکرو

                    فایل ها رو خوندم.
                    استفاده از DTW روی AVR تقریبا غیر ممکنه.
                    بهتره از همون روش مشخصه های موج استفاده کنم.از مشخصه های انرژی و گذر از صفر.
                    فریم ها رو میگیرم 25 میلی ثانیه.
                    برای تشخیص دادن کلمه ی voice command باید دستگاه هر 25 میلی ثانیه فریم ریکورد شده رو با 25 میلی ثانیه ی اول voice مقایسه کنه؟که اگه مطابقت داشت بقیه رو هم مقایسه کنه؟ یا بهتره که کل voice رو بگیریم یه فریم.گفتن این کلمه حدود 40 میلی ثانیه طول میکشه.این دستگاه هم هر 40 میلی ثانیه فریم ریکورد شده رو با کل کلمه ی voce مطابقت بده.اگه درست بود برای کلمه ی command با فریم های 25 میلی ثانیه ای کار کنه.اما در این صورت باز هم ممکنه 40 میلی ثانیه ای که دستگاه شروع به ریکورد میکنه با 40 میلی ثانیه ای که من کلمه ی voice رو میگم همزمان شروع نشن!
                    چکار کنم؟

                    دیدگاه


                      #11
                      پاسخ : پردازش صدا روی میکرو

                      نوشته اصلی توسط apcog
                      فایل ها رو خوندم.
                      استفاده از DTW روی AVR تقریبا غیر ممکنه.
                      بهتره از همون روش مشخصه های موج استفاده کنم.از مشخصه های انرژی و گذر از صفر.
                      این مشخصه ها فقط برای تشخیص محل شروع و پایان کلمه مناسب هستند نه برای تشخیص.
                      فریم ها رو میگیرم 25 میلی ثانیه.
                      پیشنهاد من اینه که اول با Matlab شبیه سازی کنید و هر مقداری که نتیجه بهتری میده بگیرید.
                      برای تشخیص دادن کلمه ی voice command باید دستگاه هر 25 میلی ثانیه فریم ریکورد شده رو با 25 میلی ثانیه ی اول voice مقایسه کنه؟که اگه مطابقت داشت بقیه رو هم مقایسه کنه؟ یا بهتره که کل voice رو بگیریم یه فریم.گفتن این کلمه حدود 40 میلی ثانیه طول میکشه.این دستگاه هم هر 40 میلی ثانیه فریم ریکورد شده رو با کل کلمه ی voce مطابقت بده.اگه درست بود برای کلمه ی command با فریم های 25 میلی ثانیه ای کار کنه.اما در این صورت باز هم ممکنه 40 میلی ثانیه ای که دستگاه شروع به ریکورد میکنه با 40 میلی ثانیه ای که من کلمه ی voice رو میگم همزمان شروع نشن!
                      چکار کنم؟
                      میتونید امتحان کنید ولی فکر می کنم اگه کل کلمه رو مقایسه کنی نتیجه بهتری بگیری. در ضمن طول کلمه voice باید 400 میلی ثانیه باشه (40 میلی ثانیه خیلی کمه).

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

                      دیدگاه


                        #12
                        پاسخ : پردازش صدا روی میکرو

                        دوستان این لینک ها منقضی شده . کسی این پروژه رو نداره ؟

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

                        دیدگاه

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