Բովանդակություն:

Խոսքի ճանաչող ՝ 12 քայլ
Խոսքի ճանաչող ՝ 12 քայլ

Video: Խոսքի ճանաչող ՝ 12 քայլ

Video: Խոսքի ճանաչող ՝ 12 քայլ
Video: №14 Մտքի ու խոսքի ուժը: 2 մաս: Տորսիոնական դաշտեր: Էզոտերիկա: 2024, Նոյեմբեր
Anonim
Խոսքի ճանաչող
Խոսքի ճանաչող

Բարեւ բոլորին………

Սա իմ երկրորդ հրահանգն է, որը տեղադրում եմ:

Ուրեմն ողջունում եմ բոլորին …

Այս Ուղեցույցում ես պատրաստվում եմ սովորեցնել ձեզ, թե ինչպես կառուցել ձայնի ճանաչիչ `օգտագործելով arduino տախտակը:

Կարծում եմ, որ դուք արդեն ունեք փորձ arduino տախտակների հետ: Եթե ոչ, ապա դա ամենևին էլ մեծ խնդիր չէ: Բայց խորհուրդ եմ տալիս սովորել դրան, քանի որ շատ հետաքրքիր է խաղալ դրա հետ և ստեղծել զով նախագծեր: դրանից դուրս ՝ ըստ քո ստեղծագործական և գիտելիքների:

Այսպիսով, այն մարդկանց համար, ովքեր arduino- ի օգտագործման նախկին փորձ չունեն

Arduino- ն բաց կոդով համակարգչային սարքավորում է, որն արտադրվում է մի ընկերության կողմից, որն ունի դիզայներների և արտադրողների մեծ համայնք: այն կարելի է համարել որպես փոքր համակարգիչ, որը կարող է օգտագործվել այլ էլեկտրոնային սխեմաները կառավարելու համար:

Arduino- ն ծրագրավորված է իրենց կողմից մշակված միջավայրում, որը հեշտությամբ կարելի է ներբեռնել իրենց կայքից:

Քայլ 1: Ինչպե՞ս կարգավորել շրջակա միջավայրը:

Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը
Ինչպե՞ս կարգավորել շրջակա միջավայրը

Պարզապես որոնեք Google- ում «ներբեռնեք arduino»

Կտտացրեք «Arduino - ծրագրակազմ»

Դուք կկարողանաք տեսնել «Ներբեռնեք Arduino IDE- ն»

Ընտրեք ՝ կախված ձեր օպերացիոն համակարգից

Ներբեռնեք և տեղադրեք այն

Այսպիսով, դուք հաջողությամբ տեղադրել եք ծրագրակազմը և կարող եք գրել ձեր կոդը arduino- ի համար, իսկ մալուխի օգնությամբ դուք կարող եք միացնել arduino տախտակը համակարգչին և կարող եք տեղադրել կոդը:

Քայլ 2. Ինչու՞ է աճում Arduino- ի պահանջարկը:

Էժանագին

Arduino- ի տախտակները էժան են `համեմատած այլ միկրոկառավարիչների հարթակների հետ: Այն կարժենա ընդամենը մոտ $ 50:

Խաչաձեւ հարթակ

Arduino- ի ծրագրակազմն աշխատում է Windows, Macintosh OS և Linux օպերացիոն համակարգերի վրա: Եթե մտածենք միկրոկառավարիչների այլ համակարգերի մասին, ապա այն կաշխատի միայն Windows- ում կամ այլ կերպ ասած `սահմանափակված միայն պատուհաններով:

Բաց կոդով և ընդլայնվող ծրագրակազմ

Theրագրակազմը բաց կոդ է, ուստի մարդիկ սկսեցին խորությամբ ուսումնասիրել դրա մասին և ներառել այլ ծրագրավորման լեզուների գրադարաններ (որոնք ներառում են գործառույթների մի շարք):

Պարզ և հեշտ ծրագրավորման միջավայր

Հեշտ է օգտագործել Arduino IDE- ն (այն ծրագիրը, որի մասին մենք արդեն քննարկել ենք… դրա մասին.

Բաց կոդ և ընդլայնվող սարքավորում

Arduino- ի տախտակների պլանները հրապարակվում են Creative Commons- ի լիցենզիայի ներքո, ուստի այն մարդիկ, ովքեր ունեն սխեմաների նախագծման փորձ, կարող են պատրաստել մոդուլի սեփական տարբերակը, նրանք նաև իրավունք ունեն ընդլայնելու տեխնոլոգիան և կարող են կատարելագործվել դրան ավելացնելով հնարավորություններ:

Քայլ 3: Եկեք սկսենք !!!!

Այսպիսով, ես արդեն ասացի, որ այս նախագիծը հիմնականում կենտրոնացած է Arduino- ի միջոցով ձայնի ճանաչման և որոշ առաջադրանքներ թույլ տալու վրա:

Ավելի հստակ խոսել ……

Այն վերցնում է օգտագործողի կողմից տրամադրված ձայնային ազդանշանները, որոնք կարող են հայտնաբերվել ՝ LED- ը թարթելով, այն վերածվել է սինթեզված խոսքի:

Քայլ 4: Պահանջվող բաղադրիչներ

Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ
Պահանջվող բաղադրիչներ

Այս նախագծի համար անհրաժեշտ հիմնական բաղադրիչներն են.

Arduino Due x 1

Spark Fun Electret խոսափողը Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

Բարձրախոս `0.25W, 8 ohms x 1

Հացաթուղթ x 1

5 մմ LED: Կարմիր x 3

Ռեզիստոր 330 օհմ x 3

Թռիչքային լարեր x 1

Oldոդման երկաթ x 1

BitVoicer սերվեր

Այն խոսքի ճանաչման և սինթեզի սերվեր է խոսքի ավտոմատացման համար:

Քայլ 5: Ինչպե՞ս է այն իրականում աշխատում:

1. Ձայնային ալիքները հայտնաբերվում են, այնուհետև այն գրավում է այս ալիքները և ուժեղանում Sparkfun Electret Breakout տախտակով:

2. Վերոնշյալ գործընթացից ստացված ուժեղացված ազդանշանը կթվայնացվի և բուֆերացված/կպահվի Arduino- ի տախտակում `օգտագործելով դրա մեջ առկա անալոգային-թվային փոխարկիչը (ADC):

3. Ձայնային նմուշները կտրամադրվեն BitVoicer սերվերին `օգտագործելով առկա Arduino սերիական պորտը:

4. BitVoicer Server- ը կվերամշակի աուդիո հոսքը, այնուհետև կճանաչի այն պարունակվող խոսքը:

5. Theանաչված ելույթը քարտեզագրվելու է այն հրամանների վրա, որոնք արդեն իսկ սահմանվել են ինքնուրույն, այնուհետև այն կուղարկվի Arduino- ին: Եթե հրամաններից մեկը բաղկացած է խոսքի սինթեզումից, BitVoicer Server- ը կպատրաստի աուդիո հոսքը և կուղարկի այն Arduino- ին:

6. Arduino- ն կբացահայտի տրված հրամանները և կկատարի որոշակի համապատասխան գործողություն: Եթե աուդիո հոսք է ստացվում, այն հերթագրվելու է BVS խոսողների դասին և նվագարկվելու է DUE DAC- ի և DMA- ի միջոցով:

7. SparkFun Mono աուդիո ուժեղացուցիչը կամրապնդի DAC ազդանշանը, որպեսզի կարողանա վարել 8 Օմ բարձրախոս և լսելի լինել դրա միջոցով:

Քայլ 6: Բաղադրիչների միացում

Բաղադրիչների միացում
Բաղադրիչների միացում
Բաղադրիչների միացում
Բաղադրիչների միացում

Առաջին քայլն այն է, որ տարբեր բաղադրամասեր մետաղալարով ամրացնենք տախտակի վրա, ինչպես նաև արդուինոյի տախտակով, ինչպես ցույց է տրված նկարում:

Հիշեք, որ այստեղ օգտագործվող arduino տախտակը DUE է, կան տարբեր այլ մոդելներ, որոնք արտադրվել են Arduino- ի կողմից, յուրաքանչյուրն աշխատում է լարման տարբեր մակարդակներում:

Arduino- ի տախտակների մեծ մասն աշխատում է 5 Վ լարման վրա, սակայն DUE- ն աշխատում է 3.3 Վ -ով:

DUE- ն արդեն օգտագործում է 3.3 Վ անալոգային հղում, այնպես որ ձեզ AREF պինին ցատկելու կարիք չկա:

Ափսոս, մոռացա ասել, որ AREF- ի քորոցը «ANALOG REFERENCE PIN» է, որն առկա է arduino- ի տախտակում, ինչպես ցույց է տրված հաջորդ նկարում (Դա arduino UNO է, բայց նմանատիպ կայքում նման է DUE- ի դեպքում):

DUE- ի AREF կապը միացված է միկրոհսկիչին `դիմադրության կամրջի միջոցով:

AREF քորոցն օգտագործելու համար R1 դիմադրիչը պետք է ապամոնտաժվի PCB- ից [Տպագիր տպատախտակ]:

Քայլ 7. Arduino- ի խորհրդին ծածկագիր տրամադրելը

Arduino Board- ին ծածկագիր տրամադրելը
Arduino Board- ին ծածկագիր տրամադրելը

Այսպիսով, մենք պետք է վերբեռնենք կոդը Arduino- ի տախտակին, որպեսզի այն կարողանա աշխատել ՝ կախված ծածկագրում տրված հրահանգներից:

Դա շատ հեշտ է անել: Ես նրանցից յուրաքանչյուրին մանրամասն կբացատրեմ, թե ինչ են անում և ինչպես են աշխատում:

Ինչպե՞ս տեղադրել գրադարան:

Այսպիսով, մինչ այդ մենք պետք է իմանանք, թե ինչպես տեղադրել BitVoicer Server գրադարանները Arduino IDE- ում, այն arduino ծրագրաշարի վրա:

Այսպիսով, դրա համար բացեք Arduino IDE- ն

Վերին վահանակում կտտացրեք «Էսքիզ»

Այնուհետև կտտացրեք «Ներառել գրադարանը»

Դրա վրա կտտացրեք «Կառավարել գրադարանը»

Այնուհետև գրադարանի կառավարիչը կբացվի, և մենք կարող ենք տեսնել գրադարանների ցուցակ, որոնք պատրաստ են տեղադրման կամ արդեն տեղադրված գրադարանների:

Որոնեք տեղադրելու գրադարանը, ապա ընտրեք տարբերակի համարը:

Այստեղ մենք տեղադրում ենք BitVoicer Server գրադարանները, որն անհրաժեշտ է այս նախագծի համար:

Ինչպե՞ս ներմուծել.zip գրադարան:

Գրադարանները կարող են տարածվել նաև որպես ZIP ֆայլ կամ թղթապանակ:

Թղթապանակի անունը գրադարանի անունն է:

Թղթապանակի ներսում կլինի.cpp ֆայլ,.h ֆայլ և հաճախ keywords.txt ֆայլ, օրինակների պանակ և գրադարանի պահանջած այլ ֆայլեր:

Arduino IDE- ի 1.0.5 տարբերակից կարող եք տեղադրել դրա ներսում երրորդ կողմի գրադարաններ:

Մի բացեք ներբեռնված գրադարանը, թողեք այն այնպես, ինչպես կա:

Դրա համար անցեք ուրվագիծ> Ներառել գրադարան> Ավելացնել.zip գրադարան

Ընտրեք.zip ֆայլի գտնվելու վայրը և բացեք այն:

Վերադառնալ ուրվագիծ> Գրադարան ներմուծել:

Եթե այն պատշաճ կերպով ներմուծված է, ապա այդ գրադարանը պետք է դիտվի բացվող ընտրացանկի ներքևում, երբ նավարկեք:

Քայլ 8: Programրագիր/ուրվագիծ

Սա այն ծրագիրն է, որը պետք է վերբեռնվի Arduino- ում:

Դա կարելի է անել պարզապես Arduino- ի խորհուրդը համակարգչին միացնելով և այն գրատախտակին վերբեռնելով:

Քայլ 9: Ինչ վերաբերում է գրված կոդերին:

Այժմ եկեք նայենք, թե իրականում ինչ է կատարում ծածկագրում գրված գործառույթներից ………..

Գրադարանի հղումներ և փոփոխական հայտարարագրում

Մինչ այս մասին խոսելը մենք պետք է իմանանք և հասկանանք որոշ հիմնական տերմինաբանություններ: Դրանք ներառում են.

  • BVSP

    Այն գրադարան է, որը մեզ տրամադրում է գրեթե բոլոր ռեսուրսները, որոնք անհրաժեշտ են BitVoicer Server- ի հետ տեղեկատվություն փոխանակելու համար:

    Կա մի արձանագրություն, որը հայտնի է որպես BitVoicer Server Protocol, որն իրականացվում է BVSP դասի միջոցով: Սա պահանջվում է սերվերի հետ փոխազդելու համար:

  • BVSMic

    Այն գրադարան է, որն իրականացնում է այն ամենը, ինչ անհրաժեշտ է ձայնագրությունը ձայնագրելու համար ՝ օգտագործելով Arduino- ի անալոգային-թվային փոխարկիչ (ADC):

    Այս ձայնը պահվում է դասի ներքին բուֆերում և դրանք կարող են առբերվել, այնուհետև այն կարող է ուղարկվել խոսքի ճանաչման շարժիչներին, որը հասանելի է BitVoicer Server- ում:

  • BVSSpeaker

    Այն գրադարան է, որը պարունակում է բոլոր էական ռեսուրսները, որոնք անհրաժեշտ են 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 դասը նախաստորագրելու համար

Այն նաև սահմանում է BVSP դասի frameReceived, modeChanged և streamReceived իրադարձությունների համար «իրադարձությունների կառավարիչներ» (գործառույթի ցուցիչներ):

Քայլ 10: Օղակի գործառույթ

Այն իրականացնում է հինգ հիմնական գործողություն

1. keepAlive () գործառույթը

Այս գործառույթը սերվերից պահանջել կարգավիճակի մասին տեղեկություններ:

2. ստանալ () գործառույթը

Այս գործառույթն է `ստուգել ՝ սերվերը որևէ տվյալ ուղարկե՞լ է, թե՞ ոչ: Եթե սերվերը որևէ տվյալ է ուղարկել, այն կվերամշակվի:

3. isSREAvailable (), startRecording (), stopRecording () և sendStream () գործառույթները

Այս գործառույթներն օգտագործվում են աուդիո ձայնագրման տարբեր կարգավորումները վերահսկելու համար, և երբ այն հասնում է աուդիոին, այն կուղարկի BitVoicer սերվերին:

4. խաղալ () գործառույթը

Այս գործառույթը օգտագործվում է BVSSpeaker դասում հերթագրված աուդիո նվագարկելու համար:

5. playNextLEDNote ()

Այս գործառույթը օգտագործվում է վերահսկելու համար, թե ինչպես պետք է Led- ը թարթել:

6. BVSP_frameReceived գործառույթը

Այս գործառույթը կոչվում է ամեն անգամ, երբ ստացման () գործառույթը սկսում է նույնականացնել, որ մեկ ամբողջական շրջանակ է ստացվել: Այստեղ մենք գործարկում ենք BitVoicer Server- ից ստացված հրամանները: Հրամանները, որոնք վերահսկում են լուսադիոդների թարթումը, 2 բայթ են: Այդ ժամանակ մենք պետք է նաև ստուգենք, թե արդյոք ստացվել է playLEDNotes հրահանգը, որը բայթ տիպի է: Եթե այն ստացվել է, ես playLEDNotes- ը սահմանել եմ true և այն կհետևի և կնշի ընթացիկ ժամանակը: Այս ժամանակը կօգտագործվի playNextLEDNote գործառույթի կողմից ՝ LED- ները երգի հետ համաժամացնելու համար:

7. BVSP_modeChanged գործառույթը

Այս գործառույթը կանչվում է ամեն անգամ, երբ ստացման () գործառույթը որոշում է ռեժիմի փոփոխությունը ելքային ուղղությամբ (Server Arduino): BitVoicer Server- ը կարող է շրջանակային տվյալներ կամ աուդիո ուղարկել Arduino- ին: Նախքան հաղորդակցությունը մի ռեժիմից մյուսը անցնելը, BitVoicer Server- ը ազդանշան է ուղարկում: BVSP դասը նույնացնում է այս ազդանշանը և բարձրացնում կամ նշում է modeChanged իրադարձությունը: BVSP_modeChanged գործառույթում, եթե օգտագործողը նկատի, որ հաղորդակցությունը հոսքի ռեժիմից անցնում է շրջանակված ռեժիմի, նա կիմանա, որ աուդիոն ավարտվել է, որպեսզի օգտվողը կարողանա BVSSpeaker դասին ասել դադարեցնել աուդիո նվագարկումը:

8. BVSP_streamReceived գործառույթը

Այս գործառույթը կոչվում է ամեն անգամ, երբ ստացման () գործառույթը նույնականացնում է, որ աուդիո նմուշներ են ստացվել: Այն պարզապես վերցնում է ձայնը և հերթագրում դրանք BVSSpeaker դասի մեջ, որպեսզի play () գործառույթը կարողանա դրանք վերարտադրել:

9. playNextLEDNote գործառույթը

Այս գործառույթը գործարկվում է միայն այն դեպքում, եթե BVSP_frameReceived գործառույթը նույնացնում է playLEDNotes հրամանը: Այն վերահսկում և համաժամեցնում է LED- ները BitVoicer Server- ից ուղարկված ձայնի հետ: LED- ները աուդիոյի հետ համաժամեցնելու և ճիշտ ժամանակը իմանալու համար կարող է օգտագործվել Sonic Visualizer անվճար ծրագրակազմ: Այն թույլ է տալիս մեզ դիտել աուդիո ալիքները, որպեսզի մարդը կարողանա ասել, թե երբ է դաշնամուրի ստեղնը սեղմվել:

Քայլ 11. Ինչպե՞ս ներմուծել BitVoicer Server լուծման օբյեկտներ:

Այժմ մենք սահմանել ենք, որ BitVoicer Server- ը աշխատի Arduino- ի հետ:

BitVoicer սերվերի համար կան չորս հիմնական լուծման օբյեկտներ ՝ Տեղեր, Սարքեր, Երկուական Տվյալներ և Ձայնային սխեմաներ:

Եկեք մանրամասն նայենք դրանց

Տեղադրություններ

Այն ներկայացնում է այն ֆիզիկական վայրը, որտեղ սարքը տեղադրվում է:

Մենք կարող ենք ստեղծել մի վայր, որը կոչվում է Տուն:

Սարքեր

Նրանք համարվում են BitVoicer Server- ի հաճախորդներ:

Տեղադրության ստեղծման նման մենք կարող ենք ստեղծել Խառը սարք, հեշտության համար թույլ տվեք այն անվանել ArduinoDUE:

Երբեմն որոշ բուֆերային արտահոսքեր կարող են տեղի ունենալ, ուստի այն վերացնելու համար ես ստիպված էի սահմանափակել տվյալների փոխարժեքը հաղորդակցության պարամետրերում մինչև վայրկյանում 8000 նմուշ:

BinaryData- ն BitVoicer Server- ի հրամանի տեսակ է, որը կարող է ուղարկել հաճախորդի սարքեր: Դրանք իրականում բայթ զանգվածներ են, որոնք կարող եք կապել հրամանների հետ:

Երբ BitVoicer Server- ը ճանաչում է այդ հրամանի հետ կապված խոսքը, այն բայթ զանգվածն ուղարկում է նպատակային սարքին:

Այդ պատճառով ես ստեղծել եմ մեկ BinaryData օբյեկտ յուրաքանչյուր PIN արժեքի համար և դրանք անվանել ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff և այլն:

Այսպիսով, ես ստիպված էի ստեղծել 18 BinaryData օբյեկտ, ուստի ես առաջարկում եմ ձեզ ներբեռնել և ներմուծել օբյեկտները VoiceSchema.sof ֆայլից, որը տրված է ստորև:

Այսպիսով, ինչ է Ձայնային սխեման:

Ձայնային սխեմաներն այնտեղ են, որտեղ ամեն ինչ համախմբվում է: դրանց հիմնական դերը սահմանելն է, թե ինչպես պետք է ճանաչվեն նախադասությունները և որոնք պետք է գործարկվեն բոլոր հրամանները:

Յուրաքանչյուր նախադասության համար կարող եք սահմանել այնքան հրամաններ, որքան անհրաժեշտ է և դրանց կատարման կարգը:

Կարող եք նաև սահմանել ուշացումներ տրամադրված յուրաքանչյուր հրամանի միջև:

BitVoicer Server- ն աջակցում է միայն 8-բիթանոց մոնո PCM աուդիո (վայրկյանում 8000 նմուշ), այնպես որ աուդիո ֆայլը այս ձևաչափին փոխարկելու անհրաժեշտություն կլինի, այսօր շատ փոխակերպման առցանց վճարներ կան, և ես խորհուրդ եմ տալիս https://audio.online -convert.com/convert-to-wav:

Ստորև բերված ֆայլերից կարող եք ներմուծել (լուծման օբյեկտների ներմուծում) այն բոլոր լուծման օբյեկտները, որոնք ես օգտագործել եմ այս նախագծում:

Նրանցից մեկը պարունակում է DUE սարքը, իսկ մյուսը `Ձայնային սխեման և դրա հրամանները:

Քայլ 12: Եզրակացություն

Դե ուրեմն !!!

Դուք հիանալի նախագիծ եք պատրաստել և կարող եք խոսել դրա հետ:

Ուրեմն սկսեք խոսել ……………………

Կարող եք թարթել լուսադիոդները և միևնույն ժամանակ կարող եք ասել, որ այն երգի, եթե դրա կարիքը լինի, դրա կոդը արդեն տրամադրված է:

Այսպիսով, ես ավարտեցի իմ երկրորդ հրահանգը !!!!!!!!

Այո……

Կարծում եմ ՝ բոլորը դա հասկացան…

Եթե որևէ մեկը որևէ հարց ունի, խնդրում եմ ազատ զգալ հարցնել ինձ:

Հաջորդ անգամ ես հանդես կգամ հիանալի հրահանգով…

Yeտեսություն…

Կհանդիպենք շուտով ……………

Խորհուրդ ենք տալիս: