- கூறுகள் தேவை
- சுற்று வரைபடம்
- Arduino பேச்சு அங்கீகாரத்திற்கான தரவுத்தொகுப்பை உருவாக்குதல்
- மாதிரி பயிற்சி
- Arduino குரல் அங்கீகாரத்திற்கான Arduino குறியீடு
பேச்சு அறிதல் தொழில்நுட்பம் ஆட்டோமேஷனில் மிகவும் பயனுள்ளதாக இருக்கும், இது சாதனங்களின் மீது கைகளை இலவசமாக கட்டுப்படுத்துவதோடு மட்டுமல்லாமல் கணினிக்கு பாதுகாப்பையும் சேர்க்கிறது. குரல் கட்டுப்பாட்டு கேஜெட்களை உருவாக்குவதைத் தவிர, பேச்சு அங்கீகாரம் பல்வேறு குறைபாடுகளால் பாதிக்கப்பட்டவர்களுக்கு குறிப்பிடத்தக்க உதவியை வழங்குகிறது.
முந்தைய திட்டங்களில் நாங்கள் ஆர்டுயினோ அடிப்படையிலான டெக்ஸ்ட் டு ஸ்பீச் (டி.டி.எஸ்) மாற்றி மற்றும் குரல் கட்டுப்பாட்டு விளக்குகளை உருவாக்கினோம். இப்போது இந்த திட்டத்தில், எட்ஜ் இம்பல்ஸ் ஸ்டுடியோவைப் பயன்படுத்தி பேச்சு அங்கீகார மாதிரியைப் பயிற்றுவிக்க இயந்திரக் கற்றலைப் பயன்படுத்தப் போகிறோம், அதாவது ' லைட் ஆன்' , ' லைட் ஆஃப்' மற்றும் ' சத்தம் '. எட்ஜ் இம்பல்ஸ் என்பது ஒரு ஆன்லைன் இயந்திர கற்றல் தளமாகும், இது டெவலப்பர்கள் உட்பொதிக்கப்பட்ட இயந்திர கற்றல் மூலம் அடுத்த தலைமுறை அறிவார்ந்த சாதன தீர்வுகளை உருவாக்க உதவுகிறது. இருமல் மற்றும் இரைச்சல் ஒலிகளை வேறுபடுத்துவதற்கு முன்பு எட்ஜ் இம்பல்ஸ் ஸ்டுடியோவைப் பயன்படுத்தினோம்.
கூறுகள் தேவை
வன்பொருள்
- Arduino 33 BLE Sense
- எல்.ஈ.டி.
- ஜம்பர் கம்பிகள்
மென்பொருள்
- எட்ஜ் இம்பல்ஸ் ஸ்டுடியோ
- Arduino IDE
Arduino 33 BLE Sense பற்றிய விரிவான டுடோரியலை நாங்கள் உள்ளடக்கியுள்ளோம்.
சுற்று வரைபடம்
Arduino ஐப் பயன்படுத்தி இந்த குரல் அங்கீகாரத்திற்கான சுற்று வரைபடம் கீழே கொடுக்கப்பட்டுள்ளது. Arduino 33 BLE க்கான ஃப்ரிட்ஸிங் பகுதி கிடைக்கவில்லை, எனவே இருவருக்கும் ஒரே பின்அவுட் இருப்பதால் நான் Arduino நானோவைப் பயன்படுத்தினேன்.

எல்.ஈ.டி யின் நேர்மறை முன்னணி ஆர்டுயினோ 33 பி.எல்.இ உணர்வின் டிஜிட்டல் முள் 5 உடன் இணைக்கப்பட்டுள்ளது மற்றும் எதிர்மறை ஈயம் அர்டுயினோவின் ஜி.என்.டி முள் உடன் இணைக்கப்பட்டுள்ளது.

Arduino பேச்சு அங்கீகாரத்திற்கான தரவுத்தொகுப்பை உருவாக்குதல்
இங்கே எட்ஜ் இம்பல்ஸ் ஸ்டுடியோ எங்கள் பேச்சு அங்கீகார மாதிரியைப் பயிற்றுவிக்கப் பயன்படுகிறது. எட்ஜ் இம்பல்ஸ் ஸ்டுடியோவில் ஒரு மாதிரியைப் பயிற்றுவிப்பது மற்ற இயந்திர கற்றல் கட்டமைப்பில் இயந்திர கற்றல் மாதிரிகளைப் பயிற்றுவிப்பதைப் போன்றது. பயிற்சிக்காக, இயந்திர கற்றல் மாதிரியின் முதல் படி, நாம் அடையாளம் காண விரும்பும் தரவுகளின் மாதிரிகளைக் கொண்ட தரவுத்தொகுப்பை சேகரிப்பது.
எங்கள் குரல் கட்டளையுடன் எல்.ஈ.டியைக் கட்டுப்படுத்துவதே எங்கள் குறிக்கோள் என்பதால், குரல் கட்டளைகளுக்கும் பிற சத்தங்களுக்கும் இடையில் வேறுபடுவதற்கு அனைத்து கட்டளைகளுக்கும் சத்தத்திற்கும் குரல் மாதிரிகள் சேகரிக்க வேண்டும்.
“ LED ON ”, “ LED OFF ” மற்றும் “ சத்தம் ” ஆகிய மூன்று வகுப்புகளுடன் தரவுத்தொகுப்பை உருவாக்குவோம். தரவுத்தொகுப்பை உருவாக்க, எட்ஜ் இம்பல்ஸ் கணக்கை உருவாக்கி, உங்கள் கணக்கைச் சரிபார்த்து, புதிய திட்டத்தைத் தொடங்கவும். உங்கள் மொபைல், உங்கள் ஆர்டுயினோ போர்டைப் பயன்படுத்தி மாதிரிகளை ஏற்றலாம் அல்லது உங்கள் விளிம்பு உந்துவிசை கணக்கில் தரவுத்தொகுப்பை இறக்குமதி செய்யலாம். உங்கள் மொபைல் தொலைபேசியைப் பயன்படுத்துவதன் மூலம் உங்கள் கணக்கில் மாதிரிகளை ஏற்ற எளிதான வழி. அதற்காக மொபைலை எட்ஜ் இம்பல்ஸ் உடன் இணைக்கவும்.
மொபைல் தொலைபேசியை இணைக்க ' சாதனங்கள் ' என்பதைக் கிளிக் செய்து, ' புதிய சாதனத்தை இணைக்கவும் ' என்பதைக் கிளிக் செய்க.

இப்போது அடுத்த சாளரத்தில் 'உங்கள் மொபைல் தொலைபேசியைப் பயன்படுத்து' என்பதைக் கிளிக் செய்தால், ஒரு QR குறியீடு தோன்றும். உங்கள் மொபைல் தொலைபேசியுடன் QR குறியீட்டை ஸ்கேன் செய்யுங்கள் அல்லது QR குறியீட்டில் கொடுக்கப்பட்ட URL ஐ உள்ளிடவும்.

இது உங்கள் தொலைபேசியை எட்ஜ் இம்பல்ஸ் ஸ்டுடியோவுடன் இணைக்கும்.

உங்கள் தொலைபேசி எட்ஜ் இம்பல்ஸ் ஸ்டுடியோவுடன் இணைக்கப்பட்டுள்ளதால், இப்போது உங்கள் மாதிரிகளை ஏற்றலாம். மாதிரிகளை ஏற்ற ' தரவு கையகப்படுத்தல்' என்பதைக் கிளிக் செய்க. இப்போது தரவு கையகப்படுத்தல் பக்கத்தில் லேபிள் பெயரை உள்ளிட்டு, மைக்ரோஃபோனை சென்சாராகத் தேர்ந்தெடுத்து மாதிரி நீளத்தை உள்ளிடவும். ' மாதிரி மாதிரியைத் தொடங்கு ' என்பதைக் கிளிக் செய்க, உங்கள் சாதனம் 2 நொடி மாதிரியைப் பிடிக்கும். மொத்தம் 10 முதல் 12 குரல் மாதிரிகளை வெவ்வேறு நிலைகளில் பதிவு செய்யுங்கள்.

முதல் வகுப்பிற்கான மாதிரிகளை பதிவேற்றிய பிறகு இப்போது மாற்ற லேபிளை அமைத்து, ' லைட் ஆஃப்' மற்றும் 'சத்தம்' வகுப்பிற்கான மாதிரிகளை சேகரிக்கவும்.

இந்த மாதிரிகள் தொகுதிக்கு பயிற்சி அளிப்பதற்கானவை, அடுத்த படிகளில், சோதனை தரவை சேகரிப்போம். சோதனை தரவு குறைந்தபட்சம் 30% பயிற்சி தரவாக இருக்க வேண்டும், எனவே 'சத்தம்' இன் 4 மாதிரிகள் மற்றும் 'லைட் ஆன்' மற்றும் 'லைட் ஆஃப்' க்கு 4 முதல் 5 மாதிரிகள் சேகரிக்கவும்.
மாதிரி பயிற்சி
எங்கள் தரவுத்தொகுப்பு தயாராக இருப்பதால், இப்போது தரவிற்கான தூண்டுதலை உருவாக்கலாம். அதற்கு ' உந்துவிசை உருவாக்கு ' பக்கத்திற்குச் செல்லவும். 1000 எம்எஸ் சாளர அளவின் இயல்புநிலை அமைப்புகளை 1200 எம்ஸாகவும் 500 எம்எஸ் சாளரத்தை 50 எம்எஸ் ஆகவும் மாற்றவும். இதன் பொருள், ஒவ்வொரு 58 நிமிடங்களுக்கும் தொடங்கி, எங்கள் தரவு ஒரு நேரத்தில் 1.2 வினாடிகளில் செயலாக்கப்படும்.
இப்போது ' உந்துவிசை உருவாக்கு' பக்கத்தில் ' ஒரு செயலாக்கத் தொகுதியைச் சேர் ' என்பதைக் கிளிக் செய்க. அடுத்த சாளரத்தில் ஆடியோ (எம்.எஃப்.சி.சி) தொகுதியைத் தேர்ந்தெடுக்கவும். அதன் பிறகு ' ஒரு கற்றல் தொகுதியைச் சேர் ' என்பதைக் கிளிக் செய்து, நியூரல் நெட்வொர்க் (கெராஸ்) தொகுதியைத் தேர்ந்தெடுக்கவும். பின்னர் ' சேவ் இம்பல்ஸ்' என்பதைக் கிளிக் செய்க.

அடுத்த கட்டத்தில் MFCC பக்கத்திற்குச் சென்று, பின்னர் 'அம்சங்களை உருவாக்கு' என்பதைக் கிளிக் செய்க. இது எங்கள் ஆடியோ சாளரங்கள் அனைத்திற்கும் MFCC தொகுதிகளை உருவாக்கும்.

'என்று பயணத்தின் பிறகு NN நேரத்தில் வகைப்படுத்தி' பக்கம் மற்றும் 'மேல் வலது மூலையில் மூன்று புள்ளிகள் கிளிக் நியூரல் நெட்வொர்க் அமைப்புகள்' மற்றும் 'தேர்வு Keras (நிபுணர்) முறைக்கு மாறு' .

பின்வரும் குறியீட்டைக் கொண்டு அசலை மாற்றவும், ' குறைந்தபட்ச நம்பிக்கை மதிப்பீட்டை ' 0.70 ஆக மாற்றவும். பின்னர் ' தொடக்க பயிற்சி' பொத்தானைக் கிளிக் செய்க. இது உங்கள் மாதிரியைப் பயிற்றுவிக்கும்.
tensorflow.keras. இறக்குமதி மேக்ஸ்நார்ம் # மாதிரி கட்டமைப்பு மாதிரி = தொடர் () model.add (உள்ளீட்டு அடுக்கு (input_shape = (X_train.shape,), பெயர் = 'x_input')) model.add (மறுவடிவமைப்பு ((int (X_train.shape / 13), 13, 1), input_shape = (X_train.shape,))) model.add (Conv2D (10, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3)) model.add (AveragePooling2D) (pool_size = 2, padding = 'same')) model.add (Conv2D (5, kernel_size = 5, activation = 'relu', padding = 'same', kernel_constraint = MaxNorm (3%)) model.add (AveragePooling2D (pool_size = 2,padding = 'same')) model.add (Flatten ()) model.add (அடர்த்தியான (வகுப்புகள், செயல்படுத்தல் = 'softmax', பெயர் = 'y_pred', kernel_constraint = MaxNorm (3%)) # இது கற்றல் விகித விருப்பத்தை கட்டுப்படுத்துகிறது. = 9, சரிபார்ப்பு_டேட்டா = (எக்ஸ்_டெஸ்ட், ஒய்_டெஸ்ட்), வினைச்சொல் = 2)verbose = 2)verbose = 2)
மாதிரியைப் பயிற்றுவித்த பிறகு அது பயிற்சி செயல்திறனைக் காண்பிக்கும். என்னைப் பொறுத்தவரை, துல்லியம் 81.1% ஆகவும், இழப்பு 0.45 ஆகவும் இருந்தது, இது சிறந்த செயல்திறன் அல்ல, ஆனால் நாம் அதைத் தொடரலாம். பரந்த தரவுத்தொகுப்பை உருவாக்குவதன் மூலம் உங்கள் மாதிரியின் செயல்திறனை அதிகரிக்கலாம்.

இப்போது எங்கள் பேச்சு அங்கீகாரம் மாதிரி தயாராக இருப்பதால், இந்த மாதிரியை Arduino நூலகமாக பயன்படுத்துவோம். மாதிரியை ஒரு நூலகமாக பதிவிறக்குவதற்கு முன், ' நேரடி வகைப்பாடு' பக்கத்திற்குச் சென்று செயல்திறனை சோதிக்கலாம். தரவுத்தொகுப்புடன் வந்திருக்கும் சோதனைத் தரவு அல்லது உங்கள் மொபைல் தொலைபேசியிலிருந்து ஆடியோ தரவை ஸ்ட்ரீமிங் செய்வதன் மூலம் மாதிரியை சோதிக்க லைவ் வகைப்பாடு அம்சம் உங்களை அனுமதிக்கிறது.

உங்கள் தொலைபேசியுடன் தரவைச் சோதிக்க, உங்கள் தொலைபேசியில் ' வகைப்பாடு பயன்முறைக்கு மாறு ' என்பதைத் தேர்வுசெய்க.

இப்போது மாதிரியை Arduino நூலகமாக பதிவிறக்கம் செய்ய, ' வரிசைப்படுத்தல் ' பக்கத்திற்குச் சென்று ' Arduino Library' ஐத் தேர்ந்தெடுக்கவும். இப்போது கீழே உருட்டி, செயல்முறையைத் தொடங்க ' பில்ட் ' என்பதைக் கிளிக் செய்க. இது உங்கள் திட்டத்திற்கான ஒரு ஆர்டுயினோ நூலகத்தை உருவாக்கும்.

இப்போது உங்கள் Arduino IDE இல் நூலகத்தைச் சேர்க்கவும். அதற்காக Arduino IDE ஐத் திறந்து, பின்னர் ஸ்கெட்ச்> Includ Library> Add.ZIP நூலகத்தைக் கிளிக் செய்க
பின்னர், கோப்பு> எடுத்துக்காட்டுகள்> உங்கள் திட்டப்பெயர் - எட்ஜ் இம்பல்ஸ்> நானோ_பிள் 33_சென்ஸ்_மிக்ரோபோன்
Arduino குரல் அங்கீகாரத்திற்கான Arduino குறியீடு
குரல் கட்டளைகளுடன் எல்.ஈ.டி கட்டுப்படுத்த இங்கே சில மாற்றங்கள் செய்யப்பட்டுள்ளன.
கட்டளைகளின் நிகழ்தகவை அச்சிடும் வெற்றிட சுழற்சியில் () சில மாற்றங்களைச் செய்கிறோம். அசல் குறியீட்டில், இது அனைத்து லேபிள்களையும் அவற்றின் மதிப்புகளையும் ஒன்றாக அச்சிடுகிறது.
(size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {ei_printf ("% s:%.5f \ n", result.classification.label, result.classification.value); }
எல்.ஈ.டி கட்டுப்படுத்த நாம் அனைத்து கட்டளை நிகழ்தகவுகளையும் மூன்று வெவ்வேறு மாறிகளில் சேமிக்க வேண்டும், இதனால் அவற்றில் நிபந்தனை அறிக்கைகளை வைக்கலாம். எனவே புதிய குறியீட்டின் படி ' லைட் ஆன்' கட்டளையின் நிகழ்தகவு 0.50 ஐ விட அதிகமாக இருந்தால் அது எல்.ஈ.டி-ஐ இயக்கும் மற்றும் ' லைட் ஆஃப்' கட்டளையின் நிகழ்தகவு 0.50 ஐ விட அதிகமாக இருந்தால் அது எல்.ஈ.டி.
(size_t ix = 2; ix <EI_CLASSIFIER_LABEL_COUNT; ix ++) {சத்தம் = result.classification.value; Serial.println ("சத்தம்:"); சீரியல்.பிரண்ட்ல்ன் (சத்தம்); } for (size_t ix = 0; ix <EI_CLASSIFIER_LABEL_COUNT; ix--) {lightoff = result.classification.value; Serial.println ("லைட் ஆஃப்:"); சீரியல்.பிரண்ட் (லைட்ஆஃப்); } லைட்டான் = 1- (சத்தம் + லைட்ஆஃப்); Serial.println ("லைட் ஆன்:"); சீரியல்.பிரண்ட் (லைட்டான்); if (lighton> 0.50) {DigitalWrite (led, HIGH); } if (lightoff> 0.50) {DigitalWrite (led, LOW); }
மாற்றங்களைச் செய்தபின், குறியீட்டை உங்கள் Arduino இல் பதிவேற்றவும். சீரியல் மானிட்டரை 115200 பாட்டில் திறக்கவும்.

Arduino ஐப் பயன்படுத்தி நீங்கள் பேச்சு அங்கீகாரத்தை உருவாக்கலாம் மற்றும் சாதனங்களை இயக்க கட்டளைகளை வழங்கலாம்.
ஒரு நூலகம் மற்றும் குறியீட்டைக் கொண்ட ஒரு முழுமையான வேலை வீடியோ கீழே கொடுக்கப்பட்டுள்ளது.
