[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 12.08.22
Príspevky: 441
Témy: 194 | 194
Bydlisko: Poprad-okolie

Ahoj pcforumáci a priaznivci Arduina a NodeMCU, prípadne ESP32. Po veľmi dlhom čase som sa odhodlal zmeniť šablónu pre webaplikáciu ovládania hlasom pre mikrokontroléry, aby som ju lepšie dokázal sprístupniť aj verejnosti a bola ľahšia na implementáciu aj laikmi.
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Na môj web som pridal ďalšie info o tomto ovládaní, doplnil som zdroje, pridal aj EN, RU jazyk. Samotná možnosť ovládania hlasom je zabudovaná do prehliadača Chrome, využíva technológiu Webkit, ktorá umožňuje speech-to-text v reálnom čase a to XHR requestom na Google servery. Nakoľko sa jedná o Google službu, je možné využiť akýkoľvek svetový jazyk vrátane regiónov, napr en-US, ale taktiež aj en-CA, en-GB a iné podľa language kódov. Táto zmena sa dáva priamo do zdrojového kódu Javascriptu. V prípade slovenčiny sa používa sk-SK jazykový kód a pre český jazyk cs-CZ.
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Popis funkčnosti (zjednodušene povedané):
Používateľ klikne na mikrofón vo webaplikácii, čo aktivuje jeho mikrofón s použitím javascriptu (za predpokladu, že je povolený) a začne nahrávať hlas, to prebieha, pokým používateľ hovorí, keď dohovorí, autoamticky sa prostredníctvom XHR requestu odošle požiadavka na Google servery, vráti sa odpoveď a AJAX ju predá PHP scriptu, ktorý túto informáciu uloží do textového súboru (ten je najľahší na čítanie mikrokontrolérmi). Mikrokontróler je už iba v úlohe klienta, ktorý si obsah súboru číta a vyhodnocuje jeho obsah na vykonanie akcie.

Odpoveď na XHR request:
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Využil som jednoduchú Bare Boostrap šablónu, ktorá mi ponúkla ľahký grid systém na zostavenie jednoduchých stĺpcových elementov, v ktorom stránka beží. Pridal som stručné informácie, ako webaplikáciu rozbehnúť, aby ste mohli vyskúšať voice-to-text v reálnom čase aj u vás doma s jednou zo spomínaných vývojový dosiek.

V deme na vyskúšanie som sprístupnil 2 príkazy Zapni/Zapnúť Vypni/Vypnúť, k dispozícii som spravil aj obdobnú českú verziu s príkazmi Zapni/Zapnout Vypni/Vypnout. Na konci tohto príspevku je preklik na tieto stránky.

Toto ovládanie hlasom využívam primárne na ovládanie Arduina, prípadne dosiek ESP8266, či ESP32. Dôležité je iba si vyparsovať obsah .txt súboru. Problém pri webovo orientovaných aplikáciách je taký, že odpoveď prichádza ako niekoľko riadková response. Je v nej údaj o HTTP hlavičke, kód HTTP hlavičky, sprievodné informácie o serveri, napríklad verzia, engine... Tu je dôležité prečítať iba presný riadok, ktorý sa má prečítať, aby sa informácia dala porovnať v Arduino kóde cez jednoduchú if podmienku. Pre vyprasovanie premennej pri Arduine a Ethernet shielde som napísal parser, ktorý to umožňuje a prebytočnú časť hlavičky zahodí. Parser je momentálne vyhotovený pre 12 riadkovú response, ktorú webserver vracia na HTTP request. (Môže sa líšiť podľa servera, enginu, rošírení)

Na mojom webe som sprístupnil i kódy pre mikrokontroléry, konkrétne v spojení: Arduino + Ethernet shield W5100 (totožný kód funguje aj s W5500, ale vyžaduje zmeniť knižnicu na Ethernet2.h) a NodeMCU, ESP32. Dosku ESP32 je možné napojiť aj na podnikovú sieť, či univerzitnú - Eduroam pod protokolom 802.1x (WPA/WPA2 Enterprise).

Aby Webkit na webserveri mohol bežať, je nutné, aby server bežal pod HTTPS protokolom a toto je niekedy veľký problém, nakoľko Arduino sa s Ethernet shieldom nedokáže pripojiť na HTTPS web, preto je nutné mať aj jeden variant tohto webu i druhý, napríklad primárne https://web.sk a sekundárne http://www.web.sk, aby sa Arduino dokázalo pripojiť, pri NodeMCU to nie je problém, nakoľko plne podporuje HTTPS, rovnako aj ESP32. Vývojová doska ESP32 ale vyžaduje root certifikát priamo do svojho programu, čo je trochu ťažšie na implementáciu z dôvodu pridania ukončovacích znakov riadku. Pri ESP8266 (NodeMCU) doskách stačilo na HTTPS spojenie pridať do zdrojového kódu odtlačok HTTPS certifikátu v SHA1 formáte.

Ak bude stránka pod HTTP protokolom, Chrome nedovolí zapnúť mikrofón!
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Priamo vo webaplikácii je možné vidieť aktuálny stav zariadenia pri ovládaní hlasom, vďaka Ajaxu sa stav mení okamžite bez nutnosti refreshu stránky.
Zapnuté:
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Vypnuté:
Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače
Ak máte chuť túto webaplikáciu vyskúšať, navštívte môj web, kde je možné nájsť aj zdrojové kódy pre mikrokontroléry Arduino a NodeMCU, ESP32 (zatiaľ s HTTP requestom). K dispozícii je EN, RU, CS, SK verzia.

Info o webaplikácii + zdrojové kódy pre mikrokontroléry: https://arduino.php5.sk/ovladanie-hlasom.php
Projekt na Githube CS a SK verzia: https://github.com/martinius96/Ovladanie-hlasom-Arduino-NodeMCU-ESP32
CS: https://arduino.php5.sk/PHP_cs/
SK: https://arduino.php5.sk/PHP_sk/
EN: https://arduino.php5.sk/PHP_en/
RU: https://arduino.php5.sk/PHP_ru/
Postupujte prosím podľa inštrukcií na stránke!
Projekt je možné využiť na akýkoľvek účel, projekt je pod MIT licenciou. Web je univerzálny a je možné použiť na akýkoľvek mikrokontróler s konektivitou na web (C.H.I.P, Raspberry, Bigclown, micro:bit a mnoho iných).


 [ Príspevok: 1 ] 


Ovládanie hlasom v slovenčine pre mikrokontroléry a mikropočítače



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

957

16.09.2017 9:16

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

ESP8266 - Ovládanie hlasom cez Amazon Echo Dot

v Články

3

516

30.05.2020 23:37

stiv

V tomto fóre nie sú ďalšie neprečítané témy.

Diaľkové ovládanie vhodné pre XBMC

v Ostatné

8

1161

31.12.2011 18:59

GIGN1987

V tomto fóre nie sú ďalšie neprečítané témy.

Hlasom ovládané auto - ESP8266 (NodeMCU)

v Články

2

443

10.01.2020 18:25

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Inštalátor v slovenčine

v Ostatné programy

2

441

14.12.2007 16:56

MANIAC

V tomto fóre nie sú ďalšie neprečítané témy.

XnView v slovenčine

v Grafické programy

3

438

17.08.2010 16:56

Steal6th

V tomto fóre nie sú ďalšie neprečítané témy.

classifieds software v slovenčine

v Redakčné systémy

0

327

08.02.2012 15:46

davider137

V tomto fóre nie sú ďalšie neprečítané témy.

Microsoft Security Essentials v slovencine

v Novinky

14

766

18.02.2010 8:26

tom1

V tomto fóre nie sú ďalšie neprečítané témy.

Freeware-napalovanie (v slovencine/cestine)

v Ostatné programy

4

496

16.03.2012 20:08

zaciatocnik1

V tomto fóre nie sú ďalšie neprečítané témy.

C++ v Slovencine robi problem

v Assembler, C, C++, Pascal, Java

6

550

09.07.2017 15:18

JouSVK

V tomto fóre nie sú ďalšie neprečítané témy.

GuestBook v slovencine - bez reklamy

v HTML, XHTML, XML, CSS

4

2123

30.11.2007 19:53

vl4kn0

V tomto fóre nie sú ďalšie neprečítané témy.

Nová verzia Gmailu už aj v slovenčine

v Novinky

1

394

15.02.2008 8:30

brm

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba pri slovenčine z tejto stránky (PHPBB 2)

v Redakčné systémy

3

515

02.07.2007 17:42

dodi

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

ovladanie pc

v Ostatné programy

1

325

22.12.2010 21:52

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Dialkové ovládanie

v Elektronika

4

4863

19.12.2010 10:09

erikoo

V tomto fóre nie sú ďalšie neprečítané témy.

Dialkove ovladanie

v TV

2

878

23.02.2009 21:45

bohem5



© 2005 - 2022 PCforum, edited by JanoF