هوش مصنوعی, اینترنت اشیاء, پروژه, توصیه شده

راه اندازی ماژول تشخیص گفتار آفلاین VC 02

ماژول تشخیص گفتار VC01

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

 

ماژول AI Thinker VC-02

اول از همه باید بگم که ماژول های تشخیص گفتار آفلاین شرکت ai thinker دو مدل هستند VC-01 و VC-02. اینطور که در مشخصات ارائه شده توسط این شرکت مشخصه این دوتا ماژول تفاوت خاصی ندارند، فقط VC 02 جدیدتر هست و از نظر ابعادی تقریبا نصف VC 01، ما هم در این آموزش از ماژول VC 02 استفاده میکنیم.

در ادامه مشخصات این ماژول رو میتونید بررسی کنید.

Kernel •
32bit RISC core, running at 240MHz
Support DSP instruction set and FPU floating-point operation Unit
FFT Accelerator: Support 1024-point complex FFT/IFFT operations, or 2048-point real
FFT/IFFT operations
Unisound customized speech algorithm operator
Storage
Built-in 242KB high-speed SRAM
Built-in 2MB FLASH
Audio input and output
Supports 1 analog Mic input, SNR ≥ 94dB
Support 4-channel digital Mic input
Support dual-channel DAC output
Supports I2S input/output
Power supply and clock
Support 3.6 V-5V Range Power Input
Built-in 5V to 3.3V,3.3V to 1.2V LDO power the chip
RC 12MHz clock source and PLL locked loop clock source
Built-in POR(Power on Reset), low voltage detection and watchdog
Peripheral
All GPIOs can be configured as external interrupt input and wake-up source
1 full-duplex UART with a maximum rate of 3Mbps.
Support SPI, I2C, ADC, PWM interface

این تصویر خود ماژول هست.

پشت و روی ماژول VC-02

و این هم برد توسعه ای که توسط خود ai thinker ارائه شده.

برد توسعه VC-02

شما میتونید تا 150 دستور رو در این ماژول ذخیره کنید که زیادم هست.

 

ساخت SDK

برای ساخت sdk باید از سایت voice ai-thinker استفاده کنیم، اول از همه یک حساب کاربری توی سایت میسازیم، بعد از اون از منوی کناری گزینه create product رو انتخاب میکنیم. این قسمت دسته بندی تا اونجا که متوجه شدم تاثیری توی خروجی کار نداره و خیلی مهم نیست که چی انتخاب میکنید،‌ اما ما اینجا lamps -> cw light رو انتخاب میکنیم.

شاید برای شما مفید باشد: آموزش الکترونیک از 0 تا 100

حالا دسته offline و سپس ماژول VC 02 رو انتخاب میکنیم.

ساخت SDK در سایت voice ai-thinker

 

بعد هم اسم دلخواه و زبان رو انتخاب کنید و save کنید.

در ابتدای مرحله بعد باید وضعیت پین ها رو مشخص کنید که ما تغییری در اون نمیدیم.

مشخص کردن وضعیت پین ها

 

حالا در قسمت Wake-up word customization باید جملاتی که میخواید ماژول با اونها بیدار بشه و شروع به دریافت دستورات صوتی بکنه رو مشخص کنید.

مشخص کردن متن wake up

 

در قسمت Customize offline command words and response words جملاتی که میخوایم به عنوان یه دستور شناخته بشند رو مشخص میکنیم، قسمت behavior برای این هست که بعدا داخل کد بتونیم مشخص کنیم برای هر دستور چه کاری انجام بده، قسمت command word هم متن دستور ما هست، البته میتونیم برای هر دستور چند جمله مختلف مشخص کنیم که همه اونها یک کار رو انجام بدند، اینکار با اضافه کردن ” | ” بین جملات انجام میشه.

Customize offline command words and response words

 

در قسمت Wake-up-free command words میتونید یکسری دستورات رو مشخص کنید که نیازی به wake up نداشته باشند و خود دستور رو هر موقع گفتید عمل کنه.

Wake-up-free command words

در قسمت boot broadcast هم میتونیم یک جمله رو مشخص کنیم که تا ماژول روشن شد بگه.

بخش boot broadcast

حالا دکمه make new version رو میزنیم و بعد از اون دکمه build sdk رو میزنیم و بعد چند دقیقه میتونیم sdk رو دانلود کنیم.

 

کامپایل SDK

برای کامپایل sdk لازمه که از لینوکس استفاده کنید. من از ubuntu18.04 استفاده میکنم

اول از همه این پکیج ها رو نصب میکنیم.

اگر دستور آخر به ارور خورد از این دستور استفاده کنید.

بعد از اون باید فایل های این ریپازیتوری رو دانلود کنیم و در پوشه /opt/Andestech بریزیم که با این دستور انجام میشه.

 

حالا فایل sdk رو که از سایت دانلود کردیم توسط یک ادیتور باز میکنیم.

فایل SDK

بعد از اون باید فایل hb_auto_gpio.c رو که در مسیر uni_hb_m_solution/unione_lite_app_hb_m/user/src/examples هست به صورت زیر تغییر بدیم.

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

بعد از اون به پوشه /uni_hb_m_solution/unione_lite_app_hb_m میریم و این دستور رو میزنیم تا پروژه کامپایل بشه.

فایل خروجی ما در این مسیر قابل دسترسی هست.

 

حالا برای پروگرام باید از ویندوز و نرم افزار  UART burning tool  استفاده کنیم.

UART burning tool vc-01

بعد از انتخاب فریمور، با زدن اون دکمه چینی پایین سمت راست صفحه منتظر ریست شدن ماژول میشه و بعد که ماژول رو به‌صورت دستی ریست کردیم فریمور شروع به آپلود شدن میکنه.

این هم از فیلم تست ماژول

فروشگاه امبدد تک

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

41 دیدگاه در “راه اندازی ماژول تشخیص گفتار آفلاین VC 02

  1. Avatar for مصطفی غم خوار مصطفی غم خوار گفت:

    سلام ۲تا سوال :
    ۱. اگر تو sdk ( فک کنم سایت تازه این امکان رو اضافه کرده) معلوم کنیم بعد کدوم حرف کدوم پایه رو فعال کنه(از بخش کنترل ) آیا بازم نیازه که کلی با این و اون باز کنیم و تغییر بدیم یا فقط با نرم افزارUART burning tool آپلود کنیم ؟
    چون من اون ها رو بلد نیستم ،

    سوال۲. با کابل میکرو به لپتاپ وصل کنیم و آپلود؟ ؟ درایوری چیزی نمی خواد؟ مثل آردوینو ch340 نیست که؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام.
      1- این امکان سایت قابل استفاده هست ولی مسلما با کد نویسی دست شما خیلی باز تر هست.
      2- با کابل به لپ تاپ وصل کنید و آپلود (ولی قبلش درایور CH340 هم نصب کنید 🙂 )

  2. Avatar for امیرحسین امیرحسین گفت:

    سلام وقت بخیر میتونیم دستورات فینگیلیش بدیم؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. باید تست کنید. بعضی دستورات فینگلیش ممکنه خوب تشخیص داده بشند برخی بد.

  3. Avatar for امیررضا امیررضا گفت:

    سلام میشه به زبان فارسی هم بهش دستور داد!؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. خیر

  4. Avatar for ali.ahmadi ali.ahmadi گفت:

    سلام . من این ماژول رو تهیه کردم و باهاش دارم کار میکنم . یه مشکلی که هست یه حالت دیپ اسلیپ طور داره .یعنی وقتی میره توی اسلیپ اگر مثلا 24 ساعت صدا زده نشه بعدش باید چندین بار صداش بزنی تا بیدار بشه و خیلی سخت بیدار میشه. ولی وقتی بیدار میشه دیگه راه میوفته حتی بعد از همه دستورات دوباره اسلیپ بشه و سریع صداش کنید دوباره زود با همون فرمان اول بیدار میشه ولی باز تایم بگذره مثلا چند ساعت به راحتی بیدار نمیشه و اذیت میکنه. توی تنظیمات هم حالت های مختلف رو تست کردم اون قسمت سنسیویتی روی حالت های لو و میدل و های گذاشتم و تست کردم و تست های دیگه ولی هیچ کدوم مشکل رو حل نکرد. شما هم همین مشکل رو دارید ؟ راه حلی داره درست بشه ؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. من به شخصه طولانی مدت تستش نکردم. اما به احتمال اگر روش وقت بزارید و کد های خود sdk رو هم بررسی و اصلاح بکنید میتونید به صورت stable ازش استفاده کنید.

  5. Avatar for رضا رضا گفت:

    سلام . ممنون از سایت و توضیحات خوبتون. من سفارش خرید این ماژول رو زدم و تا قبل از رسیدن به دستم خواستم یه فریم ویر بسازم.
    چندتا مساله و مشکل داشتم. مورد اول اینکه با 150تا دستور شروع کردم و ساخت sdk خراب شد و جواب نداد. کم کم دستورات رو کم کردم تا با 45 فرمان بلاخره جواب داد و sdk ساخته شد. معیار تعداد دستورات ، تعداد کلمه های استفاده شدس؟
    مورد بعدی اینکه ظاهرا سایت اپدیت شده خودش هم sdk میسازه هم فریم ویر با فرمت bin .همین فریم ویر ساخته شده رو میشه استفاده کرد ؟ 4عدد فایل bin ساخته شده با اسم های زیر:
    uni_app_debug.bin
    uni_app_debug_update.bin
    uni_app_release.bin
    uni_app_release_update.bin
    کدوم فایل رو باید بریزیم روی ماژول؟
    از طرفی این فایل خودش هر دستور رو از طریق پورت سریال ارسال میکنه یا باید خودمون حتما وارد کد بشیم و تغییرات لازم رو بدیم ؟
    ممنون

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. خواهش میکنم. فکر نمیکنم تعداد کلمه باشه، توی خود سایتش گفته 150 تا دستور.
      همونطور که توی مطلب هم اشاره شده، باید این فایل رو بریزید: uni_app_debug_update.bin
      باید توی کد بگید که اگه لازمه چیزی ارسال کنه.

  6. Avatar for علی مهدیه علی مهدیه گفت:

    سلام چطور میتونم باهاش با پورت سریال اردویینو ارتباط برقرار کرد؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. مثل هر ماژول دیگه ای.
      این ماژول هم یک پورت سریال داره که میتونید روی اون دیتا بفرستید و بگیرید

  7. Avatar for جلال جلال گفت:

    با سلام و درود. من این ماژول را بدون برد توسعه خریداری کردم. پایه ربست این ماژول کدامه و چطوری ریست میشه؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      داخل این داکیومنت شماتیک کیت هست و میتونید ازش کمک بگیرید
      https://docs.ai-thinker.com/_media/vc-02-kit_specification_v1.0.0.pdf

  8. Avatar for امیر امیر گفت:

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

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      همونطور که انتهای مطلب اشاره شده ، از فروشگاه امبددتک میتونید تهیه کنید
      https://embeddedtech.ir/product-tag/vc-02/

  9. Avatar for محمد محمد گفت:

    سلام برای ساخت حساب کاربری شماره موبایل وارد میکنم میگه فرمت اشتباه هست ایمیل هم وارد میکنم همین میگه میشه بیشتر توضیح دهید چجوری حساب کاربری درست کنیم

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

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

  10. Avatar for جواد جواد گفت:

    سلام خسته نباشید
    چطوری میشه از طریق پورت سریال با آردوینو ارتباط برقرار کرد؟

  11. Avatar for محمد محمد گفت:

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

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      خود ماژول 10 پایه gpio داره
      همچنین پورت سریال داره که میشه از طریق اون با آردوینو ارتباط گرفت
      نحوه راه اندازی gpio ها در همین آموزش گفته شده و کد اون رو میتونید بررسی کنید

  12. Avatar for Mohammad Mohammad گفت:

    بله هیچ پارامتری رو هم وارد نمیکنم بازم fail میشه با قند شکن هم امتحان کردم نشد به شرکتشونم ایمیل زدم جواب ندادن

  13. Avatar for Mohammad Mohammad گفت:

    سلام من هرچی داخل سایتش build sdk میکنم بعد چند دیقه build fail میشه راهکارش چیه؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      باید اطلاعات بیشتری بدید تا بشه کمک کرد
      برای دفعه اول هیچ پارامتری رو توی سایت تنظیم نکنید و build بزنید و ببینید آیا باز هم fail میشه ؟

  14. Avatar for حمزه علی حمزه علی گفت:

    سلام
    ممنون از پروژه ی جالبتون
    برای انجام این پروژه باید زبان برنامه نویسی بلد باشی؟
    اگر جواب بله هست، چه زبان برنامه نویسی؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      بله باید به زبان c مسلط باشید

  15. Avatar for سعید سعید گفت:

    سلام در قسمت other configuration یکجایش تایم اوت گفته بزارید که مثلا اگر کاربر ۱۰ ثانیه صحبت نکرد پیغامی رو بگه …. من بعد از پخش این پیام دیگه کار نمیکنه و مجبورم خاموش و روشن کنم راهکار چیه بخواهیم این اتفاق نیفته و اگر کسی چیزی نگه بازم مثل روال کار خودش رو کنه

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

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

  16. Avatar for مبین مبین گفت:

    سلام ، موقع ثبت نام توی سایت شماره تلفن لازم داره ، باید از شماره مجازی برای ثبت استفاده کرد ؟ چه کشور هایی رو قبول میکنه ؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام
      اصلا نیازی به شماره تلفن نیست
      اون بخش verifaction code مال ایمیل هست و کد رو براتون ایمیل میکنه
      اشتباه نوشته phone verifaction code

      1. Avatar for مبین مبین گفت:

        مگه نباید از این لینک برای ساخت حساب اقدام کنیم ؟
        http://voice.ai-thinker.com/#/register
        یا من جای اشتباه میرم

  17. Avatar for عطوفی عطوفی گفت:

    سلام موقع نصب پکیج هایی که گفتید ارور unable to locate package lib32ncurses5 رو به من میده چیکار میتونم بکنم

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام از چه توزیع لینوکس و چه نسخه ای استفاده میکنید ؟

      1. Avatar for عطوفی عطوفی گفت:

        ubuntu-22.04.2

        1. Avatar for Mahdi.h   Mahdi.h   گفت:

          مشکل از نسخه لینوکس هست
          پیشنهاد میکنم نهایتا از نسخه ubuntu 18.04 استفاده کنید
          یعنی یا 18.04 یا 16
          چون بعد از این مشکل ممکنه به مشکلات دیگه ای هم بر بخورید

          1. Avatar for سعید سعید گفت:

            سلام در قسمت other configuration یکجایش تایم اوت گفته بزارید که مثلا اگر کاربر ۱۰ ثانیه صحبت نکرد پیغامی رو بگه ….
            من بعد از پخش این پیام دیگه کار نمیکنه و مجبورم خاموش و روشن کنم
            راهکار چیه بخواهیم این اتفاق نیفته
            و اگر کسی چیزی نگه بازم مثل روال کار خودش رو کنه

          2. Avatar for Mahdi.h   Mahdi.h   گفت:

            سلام. ماژول نمیتونه همیشه توی حالت فعال باشه و یه time out داره . میتونید بسته به نیاز ماژول رو wake up کنید که این کار میتونه با دستورات صوتی یا با کمک gpio ها باشه

  18. Avatar for عرفان خیراللهی عرفان خیراللهی گفت:

    سلام!
    آیا امکان تشخیص گفتار فارسی رو هم داره؟
    یا فکر می‌کنید آیا می‌شه اضافه‌اش کرد؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

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

  19. Avatar for سعید ساهور سعید ساهور گفت:

    سلام
    این ماژول رو از کجا تهیه کردید ؟

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      همونطور که در انتهای مطلب اشاره شده ، از فروشگاه امبددتک میتونید تهیه کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *