اطلاعیه

Collapse
No announcement yet.

پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

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

    پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

    بسم الله الرحمن الرحیم









    پروژه پردازش صدایی که براتون قرار دادم ، حاصل 6 ماه تلاش برای پروژه کاردانیم بود
    اسم این پروژه کنترل صوتی تجهیزات بوده و قرار است با گفتن کلمه (باز) یک درب را باز یا یک LED را روشن و خاموش کنیم
    این پروژه به زبان بیسیک می باشد و اگر کسی همت کرد می تونه اونو به C تغییر بده
    در این پروژه از ATMEGA 16 با کریستال 16 مگاهرتز استفاده شده ، که اصلا برای کارهای پردازشی مناسب نمی باشد و بهتر از ARM با فرکانس حداقل 80 و حداکثر 180 استفاده کنید ، چون AVR برای میانگین گیری 12 ساعت و برای پردازش 20 دقیقه زمان نیاز داره
    تمام توضیحات داخل پایان نامه می باشد
    این فقط یک پروژه دانشجویی است
    امیدوارم بدردتون بخوره و بتونه سکوی پرتاب خوبی باشه برای انجام پروژه پردازش صدای کاملتر و بهتر
    باز اگر سوالی بود همین جا مطرح کنید تا جواب بدم
    ممنون
    دانلود از پرشین گیگ

    http://cdn.persiangig.com/download/4sA5YQkppy/Voice%20controler.rar/dl

    فیلم ها نیز اضافه شد به سایت پارات مراجه کنید و hexelectronic را جستجو کنید.
    هرچيزى‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش.
    امام صادق (ع)

    #2
    پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

    یعنی این مدار واقعا قابلیت تشخیص کلمات رو داره ؟ میشه بیشتر درباره نحوه عملکرد مدار توضیح بدین و لطفا تئوری ساختش رو هم توضیح بدین :wow:
    من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org

    دیدگاه


      #3
      پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

      بله
      شما بسته به اندازه حافظه ی میکرو sd می توانید به دستگاه کلمه بیاموزید از فارسی گرفته تا هر زبانی که بر روی این کره ی خاکی وجود دارد چون که صدای خودتان است یا صدای هر کس دیگر
      برای پردازش صدا شما نیاز دارید تا ابتدا کلمه مورد نظرتون مثلا ( خاموش ) را به avr یاد بدید ، اما می دونید که صدای شما هر بار شبیه صدای قبلیتون نیست ، یه بار ضعیفه ، یه بار تون صداتون بالاست ، یک بار تند حرف می زنید و یک بار کند . برای همین شما باید از صدای خودتون میانگین بگیرید تا دستگاه بتواند نسبت به اکثر کلمات شما واکنش نشان دهد . برای این کار ابتدا برنامه ضبط صدا رو در داخل میکرو پروگرام کنید ، حال در محیطی تقریبا آروم و به دور از سر و صدا قرار بگیرید ، سپس دکمه ضبط صدا بفشارید ، حال کلمه مورد نظر مثلا (خاموش) را در میکروفن بگویید ، دستگاه صدای شما را روی 30 سکتور اول کارت حافظه قرار می دهد ، سه ثانیه صبر می کند و دوباره شروع به ضبط می کند و شما باید دوباره کلمه (خاموش) را تکرار کنید این کار را تا 70 بار تکرار کنید (شما می توانید با دستکاری برنامه تعداد تکرار را کمتر و بیشتر کنید) دقت کنید که هر چه تعداد صدای ضبط شده بیشتر باشد بهتر است (به خاطر همون دلایلی که در بالا ذکر کردم) می تونیند با زدن دکمه PLAY صدای خودتون رو بشنوید و متوجه می شید که صداهایی که ضبط کردید دارای تون های متفاوتی است .
      اکنون برنامه میانگین را در avr پروگرام کنید . اکنون با فعال کردن اینتراپت یک (دکمه play) میانگین آغاز می شود
      روش میانگین کردن : حاصل جمع بایت های هر سکتور (به ترتیب )/ تعداد سیگنال

      عمل میانگین گرفتن تقریبا 12 ساعت طول
      دلایل:
      سرعت داغون avr
      تعداد سیگنال های ضبط شده ( هر چه بیشتر ضبط شده باشد ، عمل میانگین گرفتن بیشتر طول می کشد اما دقیق تر است )

      بعد برنامه پردازش را روی avr پروگرام کنید ( برای پردازش از الگوریتم اقلیدسی پیروی می کند)
      حال دکمه ضبط صدا را بزنید کلمه (خاموش ) را ضبط کنید و دکمه PLAY را بزنید . میکرو صدا ضبط شده را با صدای میانگین مقایسه می کند در صورت شبیه بودن LED یا هر چیز دیگر را خاموش می کند ( در این برنامه کلمه باز LED را روشن می کند)

      بری اطلاعات بیشتر حتما فایل را دانلود کنید

      این سیستم از هیچگونه فرمت fat و ... پیروی نمی کند و به صورت خام با میکرو sd کار می شود

      برای مشاهده فیلم ها و دانلود فایل های اصلی به وب سایت من مراجعه کنید
      WWW.HEXELECTRONIC.COM
      ممنون
      هرچيزى‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش.
      امام صادق (ع)

      دیدگاه


        #4
        پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

        در اولین فرصت میسازمش :agree:
        دمت گرم . چیز باحالیه :applause:
        نمرش از 20 یه کم بیشتره (طرفای 100) :mrgreen:

        دیدگاه


          #5
          پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

          سلام
          پروژه خوب و جالبیه.
          منظورم اینه که عالیه! :applause: :applause: :wow:
          ====
          ولی من یک عیب در کار میبینم
          اونم اینه که چرا پین های دیتای mmc را مستقیماً به میکرو متصل کردید؟
          آخه من یجا دیدم که یه نفر پین های mmc رو با مقاومت به میکرو وصل کرده بود!
          همانطور که میدانید هر پین I/O میکرو به اندازه ی ولتاژ پین VCC ،ولتاژ میده. که شما 5ولت به میکرو دادید.
          آیا mmc که در ولتاژ 3.3v کار میکند ،میتواند 5 ولت را روی پین های دیتا اش تحمل کند!؟

          راستش من اطلاعاتم درمورد mmc خیلی کمه ! (اصلا باهاش کار نکردم!) پس ممکنه که این عیبی که گفتم اصلا عیب نباشه! و اون ینفر بیخودی مقاومت گذاشته باشه!
          1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
          من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
          !Electronic On! Programming On
          هوشمندانه سوال بپرسیم!
          http://ir02x6.persiangig.com/logo/eca/tanks_01.png

          دیدگاه


            #6
            پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

            سلام، تبریک میگم پروژه جالبی بود.
            اینطور که من متوجه شدم سیگنال معیارتون رو از طریق میانگین گیری به دست میارید بعد با سیگنال های دیگه مقایسه میکنید و معیار مقایستون هم فاصله اقلیدسی دو سیگنال هست. سوالی که دارم اینه سیگنالی که قرار هست با سیگنال معیار مقایسه بشه از نظر زمانی طولش توسط کاربر و دکمه play مشخص میشه؟
            علاوه بر سرعت پایین AVR خود الگوریتمی هم که استفاده کردید بار پردازشی خیلی زیادی داره، الگوریتم های دیگه ای هم در مورد پردازش صدا هست مثل Hidden Markov Modeling که فکر کنم روش های بهینه تری هستن.
            موفق باشین

            دیدگاه


              #7
              پاسخ : پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

              نوشته اصلی توسط Mahan.Rafiee
              سلام
              پروژه خوب و جالبیه.
              منظورم اینه که عالیه! :applause: :applause: :wow:
              ====
              ولی من یک عیب در کار میبینم
              اونم اینه که چرا پین های دیتای mmc را مستقیماً به میکرو متصل کردید؟
              آخه من یجا دیدم که یه نفر پین های mmc رو با مقاومت به میکرو وصل کرده بود!
              همانطور که میدانید هر پین I/O میکرو به اندازه ی ولتاژ پین VCC ،ولتاژ میده. که شما 5ولت به میکرو دادید.
              آیا mmc که در ولتاژ 3.3v کار میکند ،میتواند 5 ولت را روی پین های دیتا اش تحمل کند!؟

              راستش من اطلاعاتم درمورد mmc خیلی کمه ! (اصلا باهاش کار نکردم!) پس ممکنه که این عیبی که گفتم اصلا عیب نباشه! و اون ینفر بیخودی مقاومت گذاشته باشه!
              با سلام
              اونچه که من در عمل دیدم و تجربه بدست آوردم ، چه مقاومت بزاری چه نذاری ، تاثیری ندارد
              ثانیا من از mmc استفاده نکردم و از میکرو sd استفاده کردم که شاید مقاوم تره
              هرچيزى‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش.
              امام صادق (ع)

              دیدگاه


                #8
                پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                نوشته اصلی توسط Gordany
                سلام، تبریک میگم پروژه جالبی بود.
                اینطور که من متوجه شدم سیگنال معیارتون رو از طریق میانگین گیری به دست میارید بعد با سیگنال های دیگه مقایسه میکنید و معیار مقایستون هم فاصله اقلیدسی دو سیگنال هست. سوالی که دارم اینه سیگنالی که قرار هست با سیگنال معیار مقایسه بشه از نظر زمانی طولش توسط کاربر و دکمه play مشخص میشه؟
                علاوه بر سرعت پایین AVR خود الگوریتمی هم که استفاده کردید بار پردازشی خیلی زیادی داره، الگوریتم های دیگه ای هم در مورد پردازش صدا هست مثل Hidden Markov Modeling که فکر کنم روش های بهینه تری هستن.
                موفق باشین
                خیر - وقتی دکمه ضبط زده شود (طبق تعریفی که من در برنامه انجام دادم ،یعنی 30 سکتور از SD به دریافت صدا از میکروفن اختصاص یافته ) باید کلمه را بگویید . سپس دکمه PLAY را می زنید و صدای ضبط شده با صدای میانگین مقایسه می شود و در غیر این صورت وقت صدای محیط ذخیره می گردد.

                در مورد سوال دوم : فاصله اقلیدسی الگوریتم خوبی است و نقطه به نقطه سیگنال رو مورد ارزیابی قرار می دهد و اگر کمتر از یک شد یک صدای ضبط شده بسیار نزدیک به میانگین است
                اگر ما این برنامه رو به C برگردونیم و از یک ARM مثلا AT91SAM9260 استفاده کنیم که فرکانس کاریش 180 مگاهرتزه نتیجه بی نظیر و فوق العاده است وکوچکترین مکسی رو در میانگین گرفتن و پردازش نداریم ، در حالی که میانگین گرفتن با AVR ، دوازده ساعت طول میکشه و پردازشش 20 دقیقه

                ان شاء الله وقتم آزاد شد همین پردازش را روی AT91SAM9260 انجام می دم :rolleyes:
                هرچيزى‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش.
                امام صادق (ع)

                دیدگاه


                  #9
                  پاسخ : پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                  نوشته اصلی توسط Mohammad - Salehi
                  با سلام
                  اونچه که من در عمل دیدم و تجربه بدست آوردم ، چه مقاومت بزاری چه نذاری ، تاثیری ندارد
                  ثانیا من از mmc استفاده نکردم و از میکرو sd استفاده کردم که شاید مقاوم تره
                  منظورم همون میکرو sd بود! :biggrin:
                  1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
                  من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
                  !Electronic On! Programming On
                  هوشمندانه سوال بپرسیم!
                  http://ir02x6.persiangig.com/logo/eca/tanks_01.png

                  دیدگاه


                    #10
                    پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                    نوشته اصلی توسط Mohammad - Salehi
                    خیر - وقتی دکمه ضبط زده شود (طبق تعریفی که من در برنامه انجام دادم ،یعنی 30 سکتور از SD به دریافت صدا از میکروفن اختصاص یافته ) باید کلمه را بگویید . سپس دکمه PLAY را می زنید و صدای ضبط شده با صدای میانگین مقایسه می شود و در غیر این صورت وقت صدای محیط ذخیره می گردد.

                    در مورد سوال دوم : فاصله اقلیدسی الگوریتم خوبی است و نقطه به نقطه سیگنال رو مورد ارزیابی قرار می دهد و اگر کمتر از یک شد یک صدای ضبط شده بسیار نزدیک به میانگین است
                    اگر ما این برنامه رو به C برگردونیم و از یک ARM مثلا AT91SAM9260 استفاده کنیم که فرکانس کاریش 180 مگاهرتزه نتیجه بی نظیر و فوق العاده است وکوچکترین مکسی رو در میانگین گرفتن و پردازش نداریم ، در حالی که میانگین گرفتن با AVR ، دوازده ساعت طول میکشه و پردازشش 20 دقیقه

                    ان شاء الله وقتم آزاد شد همین پردازش را روی AT91SAM9260 انجام می دم :rolleyes:
                    با افزایش فرکانس کاری از 16 به 180 مگا هرتز سرعت تقریبا باید 11.25 برابر بشه، یعنی طبق اون چیزی که فرمودین میانگین گیری حدود 1 ساعت و پردازش 1.2 دقیقه طول میکشه که بازهم سرعت پایینی به نظر میاد. یا من دارم اشتباه میکنم؟

                    دیدگاه


                      #11
                      پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                      نوشته اصلی توسط Gordany
                      با افزایش فرکانس کاری از 16 به 180 مگا هرتز سرعت تقریبا باید 11.25 برابر بشه، یعنی طبق اون چیزی که فرمودین میانگین گیری حدود 1 ساعت و پردازش 1.2 دقیقه طول میکشه که بازهم سرعت پایینی به نظر میاد. یا من دارم اشتباه میکنم؟
                      شما درست می گید ، اما با توجه به پردازنده های دمه دست بنظر بد هم نیست
                      یا بریم یه کوبی برد بگیریم و با اندروید یا لینوکس پردازش صدا انجام بدیم
                      یا بریم با LPC یا ST کار کنیم که اونم در حوزه تخصص من نیست ، من فقط با AVR و ARM اتمل کارکردم ، الان هم دارم روی کوبی برد کار می کنم ، شاید این بار روی کوبی برد انجام دادم.
                      هدف اینه که از یک پردازنده با سرعت بالا استفاده بشه ، چون چیزی که در این پروژه حرف اول رو می زنه سرعته ، حالا شما با هر پردازنده ای راحت ترید می تونید اونو گسترش بدید . وقت سرعت بالا باشه.

                      ممنون از نکته ای که یاد آور شدید.
                      هرچيزى‏زكاتى دارد و زكات دانش، آموختن آن است به اهلش.
                      امام صادق (ع)

                      دیدگاه


                        #12
                        پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                        نوشته اصلی توسط Gordany
                        با افزایش فرکانس کاری از 16 به 180 مگا هرتز سرعت تقریبا باید 11.25 برابر بشه، یعنی طبق اون چیزی که فرمودین میانگین گیری حدود 1 ساعت و پردازش 1.2 دقیقه طول میکشه که بازهم سرعت پایینی به نظر میاد. یا من دارم اشتباه میکنم؟
                        خیر دوست عزیز. مسائل دیگه ای از جمله MIPS , تعداد بیت ها و خیلی چیز های دیگه هم تغییر میکنه.
                        مهم ترینش اضافه شدن اینترفیس MMC هست
                        پس سرعت بیشتر میشه

                        دیدگاه


                          #13
                          پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                          نوشته اصلی توسط plasma
                          خیر دوست عزیز. مسائل دیگه ای از جمله MIPS , تعداد بیت ها و خیلی چیز های دیگه هم تغییر میکنه.
                          مهم ترینش اضافه شدن اینترفیس MMC هست
                          پس سرعت بیشتر میشه
                          در مورد MIPS سرچ کردم، خیلی متوجه نشدم. یه نوع معماری محسوب میشه؟ پردازنده های ARM از این معماری استفاده میکنند؟
                          درست اینترفیس MMC سرعت رو افرایش میده ولی چون به روش سکتوری داره روی MMC نوشته میشه فکر نمی کنم خیلی تاثیر گذار باشه.

                          دیدگاه


                            #14
                            پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                            میپس هم معماریه و هم یه واحد به اسم Million instructions per second
                            واحد mmc رو من زیاد بلد نیستم ولی حتما سرعتش از spi بیشتره

                            دیدگاه


                              #15
                              پاسخ : پردازش صدا با AVR ( با کلمات به AVR دستور دهید)

                              بسیار عالی بود. احسنت!
                              یه سوال :
                              اگه شبیه سازیش رو توی پروتئوس انجام بدیم و یک میکروفون به PC وصل کنیم میتونیم مدار رو تست کنیم و ببینیم LED روشن یا خاموش میشه؟

                              دیدگاه

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