جدول المحتويات:

أداة التعرف على الكلام: 12 خطوة
أداة التعرف على الكلام: 12 خطوة

فيديو: أداة التعرف على الكلام: 12 خطوة

فيديو: أداة التعرف على الكلام: 12 خطوة
فيديو: 15 إستراتيجية لإتقان فن الكلام و الحوار 2024, شهر نوفمبر
Anonim
التعرف على الكلام
التعرف على الكلام

مرحبا جميعا………

هذه هي التعليمات الثانية التي أنشرها

فمرحبا بكم جميعا…

سأعلمك في هذا Instructable كيفية إنشاء أداة التعرف على الصوت باستخدام لوحة اردوينو.

لذلك أعتقد أن لديك تجربة مع لوحات اردوينو من قبل ، إذا لم يكن الأمر كذلك ، فهي ليست مشكلة كبيرة على الإطلاق هنا ، لكنني أوصيك أن تعتاد عليها لأنها مثيرة جدًا للعب بها وإنشاء بعض المشاريع الرائعة منه حسب إبداعك ومعرفتك به.

لذلك بالنسبة للأشخاص الذين ليس لديهم خبرة سابقة في استخدام اردوينو:

Arduino هو جهاز كمبيوتر مفتوح المصدر يتم تصنيعه من قبل شركة لديها مجتمع كبير من المصممين والمصنعين ، ويمكن اعتباره مثل جهاز كمبيوتر صغير يمكن استخدامه للتحكم في الدوائر الإلكترونية الأخرى

تمت برمجة Arduino في بيئة تم تطويرها بأنفسهم ويمكن تنزيلها بسهولة من موقع الويب الخاص بهم

الخطوة الأولى: كيف نهيئ البيئة؟

كيف نهيئ البيئة؟
كيف نهيئ البيئة؟
كيف يتم إنشاء البيئة؟
كيف يتم إنشاء البيئة؟
كيف نهيئ البيئة؟
كيف نهيئ البيئة؟
كيف نهيئ البيئة؟
كيف نهيئ البيئة؟

مجرد البحث في جوجل "تحميل اردوينو"

انقر فوق "Arduino - Software"

ستتمكن من رؤية "تنزيل Arduino IDE"

اختر حسب نظام التشغيل الخاص بك

قم بتنزيله وتثبيته

لذلك قمت بتثبيت البرنامج بنجاح ويمكنك كتابة الكود الخاص بك لـ arduino وبمساعدة كابل ، يمكنك توصيل لوحة اردوينو بالكمبيوتر وإدخال الكود.

الخطوة الثانية: لماذا يزداد الطلب على Arduino؟

غير مكلف

لوحات Arduino غير مكلفة بالمقارنة مع منصات التحكم الدقيقة الأخرى. سيكلف حوالي 50 دولارًا.

عبر منصة

يعمل برنامج Arduino على أنظمة تشغيل Windows و Macintosh OS و Linux. إذا فكرنا في أنظمة تحكم صغيرة أخرى ، فستعمل فقط في Windows أو بعبارة أخرى مقصورة على windows فقط.

برمجيات مفتوحة المصدر وقابلة للتوسيع

البرنامج مفتوح المصدر ، لذلك بدأ الناس يدرسون حوله بعمق وتضمين المكتبات (التي تتضمن مجموعة من الوظائف لتشغيلها) من لغات البرمجة الأخرى.

بيئة برمجة بسيطة وسهلة

من السهل استخدام Arduino IDE (البرنامج الذي ناقشناه بالفعل حول….) للأشخاص بما في ذلك المبتدئين ، حيث يتم توفير قدر كبير من الموارد بواسطة Arduino أنفسهم والمتوفر على الإنترنت مجانًا. لذلك لا تتردد في معرفة المزيد حوله.

أجهزة مفتوحة المصدر وقابلة للتوسيع

يتم نشر خطط لوحات Arduino بموجب ترخيص Creative Commons ، بحيث يمكن للأشخاص الذين لديهم خبرة في تصميم الدوائر إنشاء نسختهم الخاصة من الوحدة النمطية ، كما يحق لهم توسيع التكنولوجيا ويمكنهم تحسينها عن طريق إضافة ميزات إليها.

الخطوة 3: لنبدأ !!!!

لقد قلت بالفعل أن هذا المشروع يركز بشكل أساسي على التعرف على الصوت باستخدام Arduino والسماح له بتنفيذ بعض المهام.

التحدث بشكل أكثر وضوحًا ……

تلتقط الإشارات الصوتية التي يوفرها المستخدم ، والتي يمكن اكتشافها عن طريق وميض مؤشر LED بعد أن يتم تحويلها إلى كلام مركب.

الخطوة 4: المكونات المطلوبة

المكونات مطلوبة
المكونات مطلوبة
المكونات مطلوبة
المكونات مطلوبة
المكونات مطلوبة
المكونات مطلوبة

المكونات الرئيسية المطلوبة لهذا المشروع هي:

اردوينو ديو × 1

ميكروفون إلكتريت من سبارك فن 1

Spark Fun Mono Audio Amp Breakout x 1

مكبر الصوت: 0.25 واط ، 8 أوم × 1

اللوح × 1

5 ملم LED: أحمر × 3

مقاوم 330 أوم × 3

أسلاك توصيل × 1

لحام الحديد × 1

خادم BitVoicer

إنه خادم التعرف على الكلام والتوليف لأتمتة الكلام.

الخطوة 5: كيف تعمل في الواقع؟

1. يتم اكتشاف الموجات الصوتية ثم تلتقط هذه الموجات ويتم تضخيمها بواسطة لوحة Sparkfun Electret Breakout.

2. سيتم تحويل الإشارة المكبرة التي تم الحصول عليها من العملية المذكورة أعلاه إلى رقمنة وتخزينها مؤقتًا / تخزينها في لوحة Arduino باستخدام المحول التناظري إلى الرقمي (ADC) الموجود فيه.

3. سيتم تقديم عينات الصوت إلى خادم BitVoicer باستخدام منفذ Arduino التسلسلي الموجود.

4. سيقوم BitVoicer Server بمعالجة دفق الصوت ومن ثم يتعرف على الكلام الذي يحتوي عليه.

5. سيتم تعيين الخطاب الذي تم التعرف عليه إلى الأوامر التي تم تحديدها بالفعل من قبل نفسها من قبل ، ثم سيتم إرسالها مرة أخرى إلى Arduino. إذا كان أحد الأوامر يتكون من توليف الكلام ، فسيقوم BitVoicer Server بإعداد دفق الصوت وإرساله إلى Arduino.

6. سيحدد Arduino الأوامر المقدمة ويقوم بالإجراء المناسب المناسب. إذا تم استقبال دفق صوتي ، فسيتم وضعه في قائمة الانتظار في فئة مكبر الصوت BVS وتشغيله باستخدام DUE DAC و DMA.

7. يقوم مكبر الصوت الأحادي SparkFun بتضخيم إشارة DAC حتى يتمكن من تشغيل مكبر صوت 8 أوم ويمكن سماعه من خلاله.

الخطوة 6: توصيل الأسلاك بالمكونات

توصيل الأسلاك بالمكونات
توصيل الأسلاك بالمكونات
توصيل الأسلاك بالمكونات
توصيل الأسلاك بالمكونات

تتمثل الخطوة الأولى في توصيل مكونات مختلفة في اللوح وأيضًا باستخدام لوحة اردوينو كما هو موضح في الصورة

تذكر أن لوحة اردوينو المستخدمة هنا هي DUE ، فهناك طرز أخرى مختلفة تم تصنيعها بواسطة Arduino يعمل كل منها على مستويات جهد مختلفة

تعمل معظم لوحات Arduino عند 5 فولت ، لكن DUE تعمل عند 3.3 فولت

يستخدم DUE بالفعل مرجعًا تناظريًا بجهد 3.3 فولت ، لذلك لا تحتاج إلى وصلة مرور إلى دبوس AREF

آسف ، لقد نسيت أن أقول إن دبوس AREF هو "ANALOG REFERENCE PIN" الموجود في لوحة اردوينو كما هو موضح في الشكل التالي (إنه arduino UNO ولكنه مشابه في الموقع المماثل في حالة DUE)

يتم توصيل دبوس AREF الموجود في DUE بوحدة التحكم الدقيقة من خلال جسر المقاوم

لاستخدام دبوس AREF ، يجب فك المقاوم R1 من PCB [لوحة الدوائر المطبوعة]

الخطوة 7: تقديم الكود إلى لوحة Arduino

توفير الكود للوحة اردوينو
توفير الكود للوحة اردوينو

لذلك يتعين علينا تحميل الكود على لوحة Arduino ، بحيث يمكن أن يعمل وفقًا للإرشادات الواردة في الكود.

من السهل جدًا القيام بذلك ، وسأشرح كل واحد منهم بالتفصيل ، وماذا يفعلون وكيف يعملون.

كيف تثبت مكتبة؟

لذا قبل ذلك علينا معرفة كيفية تثبيت مكتبات BitVoicer Server في Arduino IDE ، على برنامج اردوينو.

لذلك افتح Arduino IDE

في اللوحة العلوية ، انقر فوق "رسم"

ثم انقر فوق "تضمين مكتبة"

انقر على "إدارة المكتبة"

بعد ذلك سيفتح مدير المكتبة ويمكننا رؤية قائمة المكتبات الجاهزة للتثبيت أو تلك التي تم تثبيتها بالفعل

ابحث عن المكتبة المراد تثبيتها ثم حدد رقم الإصدار

نحن هنا نقوم بتثبيت مكتبات BitVoicer Server ، وهو أمر ضروري لهذا المشروع

كيفية استيراد مكتبة بتنسيق.zip؟

يمكن أيضًا توزيع المكتبات كملف ZIP أو مجلد

اسم المجلد هو اسم المكتبة

يوجد داخل المجلد ملف.cpp وملف.h وغالبًا ما يكون ملف keywords.txt ومجلد أمثلة وملفات أخرى تطلبها المكتبة

من الإصدار 1.0.5 من Arduino IDE ، يمكنك تثبيت مكتبات الطرف الثالث بداخله

لا تقم بفك ضغط المكتبة التي تم تنزيلها ، اتركها كما هي

لذلك اذهب إلى رسم> تضمين مكتبة> إضافة مكتبة مضغوطة

حدد موقع ملف.zip وافتحه.

ارجع إلى قائمة Sketch> Import Library.

إذا تم استيرادها بشكل صحيح ، فستظهر هذه المكتبة في أسفل القائمة المنسدلة عند التنقل.

الخطوة 8: البرنامج / الرسم

هذا هو البرنامج الذي يجب تحميله في Arduino.

يمكن القيام بذلك ببساطة عن طريق توصيل لوحة Arduino بالكمبيوتر وتحميلها على اللوحة.

الخطوة 9: ماذا عن الرموز المكتوبة؟

الآن دعونا نلقي نظرة على ما تفعله كل وظيفة مكتوبة في الكود بالفعل ………..

مراجع المكتبة وإعلان المتغير

قبل الحديث عن هذا يجب أن نعرف ونفهم بعض المصطلحات الأساسية والتي تشمل:

  • BVSP

    إنها مكتبة تمنحنا تقريبًا كل الموارد المطلوبة لتبادل المعلومات مع خادم BitVoicer

    يوجد بروتوكول موجود معروف باسم بروتوكول خادم BitVoicer والذي يتم تنفيذه من خلال فئة BVSP. هذا مطلوب للتفاعل مع الخادم

  • BVSMic

    إنها مكتبة تنفذ جميع الأشياء المطلوبة لتسجيل الصوت باستخدام المحول التناظري إلى الرقمي (ADC) من Arduino

    يتم تخزين هذا الصوت في المخزن المؤقت الداخلي للفئة ويمكن استرجاعه ومن ثم يمكن إرساله إلى محركات التعرف على الكلام المتوفرة على BitVoicer Server

  • BVSS المتحدث

    إنها مكتبة تحتوي على جميع الموارد الأساسية المطلوبة لإعادة إنتاج تدفقات الصوت المرسلة من خادم BitVoicer

    لذلك يجب أن تحتوي لوحة Arduino على محول رقمي إلى تناظري مدمج (DAC)

    Arduino DUE هي لوحة Arduino الوحيدة التي تحتوي على DAC مدمج

مكتبات BVSP و BVSMic و BVSSpeaker و DAC ، تتم كتابة الإشارة إليها على الأسطر الأربعة الأولى التي تشكل بداية البرنامج

عند تثبيت BitVoicer Server ، يمكنك العثور على BitSophia الذي يوفر كل هذه المكتبات الأربع

عندما يضيف المستخدم مرجعًا إلى مكتبة BVSSpeaker ، سيتم استدعاء مكتبة DAC التي تم ذكرها سابقًا تلقائيًا

يتم استخدام فئة BVSP للتواصل مع BitVoicer Server

تُستخدم فئة BVSMic لالتقاط الصوت وتخزينه

تُستخدم فئة BVSSpeaker لإعادة إنتاج الصوت باستخدام Arduino DUE DAC

2. وظيفة الإعداد

تُستخدم وظيفة الإعداد لتنفيذ إجراءات معينة مثل:

لضبط أوضاع الدبوس وحالاتها الأولية

لتهيئة الاتصال التسلسلي

لتهيئة فئة BVSP

لتهيئة فئة BVSMic

لتهيئة فئة BVSSpeaker

يقوم أيضًا بتعيين "معالجات الأحداث" (مؤشرات الوظيفة) للأحداث التي تم تلقيها من الإطارات ، و modeChanged و streamReceived من فئة BVSP

الخطوة 10: وظيفة التكرار

تنفذ خمس عمليات رئيسية:

1. وظيفة keepAlive ()

هذه الوظيفة هي مطالبة الخادم بمعلومات الحالة.

2. تلقي () وظيفة

هذه الوظيفة هي التحقق مما إذا كان الخادم قد أرسل أي بيانات أم لا ، وإذا أرسل الخادم أي بيانات فسيتم معالجتها.

3. isSREAvailable () و startRecording () و stopRecording () و sendStream ()

تُستخدم هذه الوظائف للتحكم في الإعدادات المختلفة لتسجيل الصوت وبعد وصوله إلى الصوت ، سيتم إرسال هذا الصوت إلى خادم BitVoicer.

4. تلعب () وظيفة

تُستخدم هذه الوظيفة لتشغيل الصوت الذي تم وضعه في قائمة الانتظار في فئة BVSSpeaker.

5. playNextLEDNote ()

تُستخدم هذه الوظيفة للتحكم في كيفية وميض مؤشر LED.

6. وظيفة BVSP_frame المستلمة

يتم استدعاء هذه الوظيفة في كل مرة تبدأ فيها وظيفة الاستلام () في تحديد أنه تم استلام إطار واحد كامل ، وهنا نقوم بتشغيل الأوامر التي تم الحصول عليها من BitVoicer Server. الأوامر التي تتحكم في وميض مصابيح LED هي 2 بايت ، وفي ذلك البايت الأول يشير إلى الدبوس ويشير البايت الثاني إلى قيمة الدبوس ، وهنا نستخدم الدالة analogWrite () لتعيين القيمة المناسبة للدبوس. في ذلك الوقت ، يتعين علينا أيضًا التحقق مما إذا كان الأمر playLEDNotes ، وهو من نوع Byte ، قد تم استلامه. إذا تم استلامه ، فقد قمت بضبط playLEDNotes على true وسيقوم بمراقبة الوقت الحالي وتحديده. سيتم استخدام هذا الوقت بواسطة وظيفة playNextLEDNote لمزامنة مصابيح LED مع الأغنية.

7. وظيفة BVSP_modeChanged

يتم استدعاء هذه الوظيفة في كل مرة تحدد فيها وظيفة الاستلام () تغييرًا في الوضع في الاتجاه الصادر (خادم Arduino). يمكن لخادم BitVoicer Server إرسال بيانات مؤطرة أو صوت إلى Arduino. قبل أن ينتقل الاتصال من وضع إلى آخر ، يرسل BitVoicer Server إشارة. تحدد فئة BVSP هذه الإشارة وترفع أو تحدد الحدث modeChanged. في وظيفة BVSP_modeChanged ، إذا اكتشف المستخدم أن الاتصال ينتقل من وضع البث إلى وضع الإطار ، فسيعرف / تعرف أن الصوت قد انتهى حتى يتمكن المستخدم من إخبار فئة BVSSpeaker بالتوقف عن تشغيل الصوت.

8. BVSP_streamR Received function

يتم استدعاء هذه الوظيفة في كل مرة تحدد فيها وظيفة الاستقبال () أن عينات الصوت قد تم استلامها. يقوم ببساطة باسترداد الصوت ووضعه في قائمة انتظار في فئة BVSSpeaker حتى تتمكن وظيفة play () من إعادة إنتاجها.

9. playNextLEDNote وظيفة

تعمل هذه الوظيفة فقط إذا كانت الدالة BVSP_frameReceived تحدد الأمر playLEDNotes. يتحكم في مصابيح LED ويزامنها مع الصوت المرسل من BitVoicer Server. لمزامنة مصابيح LED مع الصوت ومعرفة التوقيت الصحيح ، يمكن استخدام برنامج مجاني Sonic Visualizer. يسمح لنا بمشاهدة موجات الصوت حتى يتمكن الشخص من معرفة متى تم الضغط على مفتاح البيانو.

الخطوة 11: كيفية استيراد كائنات حل BitVoicer Server؟

لقد قمنا الآن بتعيين خادم BitVoicer للعمل مع Arduino.

هناك أربعة كائنات حل رئيسية لخادم BitVoicer: المواقع والأجهزة وبيانات البيانات الثنائية والمخططات الصوتية.

دعونا نلقي نظرة على هذه بالتفصيل:

المواقع

يمثل الموقع الفعلي الذي يتم فيه تثبيت الجهاز.

يمكننا إنشاء موقع يسمى المنزل.

الأجهزة

يعتبرون عملاء BitVoicer Server.

مثل إنشاء موقع ، يمكننا إنشاء جهاز مختلط ، وللسهولة دعنا نسميه ArduinoDUE.

في بعض الأحيان ، يمكن أن تحدث بعض حالات تدفق المخزن المؤقت ، لذلك للتخلص من ذلك ، كان علي أن أقصر معدل البيانات في إعدادات الاتصال على 8000 عينة في الثانية.

BinaryData هو نوع من الأوامر التي يمكن أن يرسلها BitVoicer Server إلى أجهزة العميل. إنها في الواقع مصفوفات بايت يمكنك ربطها بالأوامر.

عندما يتعرف BitVoicer Server على الكلام المرتبط بهذا الأمر ، فإنه يرسل مصفوفة البايت إلى الجهاز الهدف.

لهذا السبب ، قمت بإنشاء كائن BinaryData واحد لكل قيمة دبوس وقمت بتسميته ArduinoDUEGreenLedOn و ArduinoDUEGreenLedOff وما إلى ذلك.

لذلك اضطررت إلى إنشاء 18 كائنًا من BinaryData ، لذا أقترح عليك تنزيل واستيراد الكائنات من ملف VoiceSchema.sof المقدم أدناه.

إذن ما هو مخطط الصوت؟

المخططات الصوتية هي المكان الذي يجتمع فيه كل شيء معًا. يتمثل الدور الرئيسي لهم في تحديد كيفية التعرف على الجمل وما يجب تشغيل جميع الأوامر.

لكل جملة ، يمكنك تحديد العديد من الأوامر حسب حاجتك والترتيب الذي سيتم تنفيذه.

يمكنك أيضًا تحديد التأخيرات بين كل من الأوامر المقدمة.

يدعم BitVoicer Server صوت PCM أحادي 8 بت فقط (8000 عينة في الثانية) لذلك ستكون هناك حاجة لتحويل ملف الصوت إلى هذا التنسيق ، وهناك الكثير من رسوم التحويل عبر الإنترنت موجودة اليوم وأوصي https://audio.online -convert.com/convert-to-wav.

يمكنك استيراد (استيراد كائنات الحلول) جميع كائنات الحل التي استخدمتها في هذا المشروع من الملفات أدناه.

يحتوي أحدهما على جهاز DUE والآخر يحتوي على مخطط الصوت وأوامره.

الخطوة 12: الخاتمة

ها أنت ذا !!!

لقد أنشأت مشروعًا رائعًا ويمكنك التحدث إليه

لذا ابدأ بالتحدث ………………………

يمكنك وميض مصابيح LED وفي نفس الوقت يمكنك قولها لغناء أغنية إذا احتجت إلى ذلك ، فقد تم توفير رمزها بالفعل

لذلك أكملت تعليمي الثاني !!!!!!!!

نعم……

أعتقد أن الجميع فهم ذلك …

إذا كان لدى أي شخص أي استفسارات ، فلا تتردد في سؤالي

سأخرج مع Instructable ممتاز في المرة القادمة …

وداعا…

اراك قريبا……………

موصى به: