Krugovi

Kako izgraditi IOT govornika teksta u govor: 6 koraka

Pretvaranje govora u tekst na pametnim telefonima

Pretvaranje govora u tekst na pametnim telefonima

Sadržaj:

Anonim

Sastavni dio je prilično jednostavan: razvojna ploča i audio zvučnik moraju biti napajani. Odabrao sam punjač za 5V 2A telefon i USB čvorište da bih to postigao, ali sve će raditi sve dok budu napajani.

Osim napajanja potreban je i audio kabel za spajanje audio izlaza razvojne ploče na audio ulaz zvučnika.

Nisam izgradio kućište za cijelu stvar, možete ga ostaviti otvorenu ili zatvoriti u kutiju kako vam odgovara. Na primjer, možete koristiti plastičnu kutiju kao što je ova iz ebay-a i morat ćete izbušiti neke rupe za kablove i izlaz zvučnika

Korak 2: Pripremite razvojni odbor

Pripremajući se, mislim:

- pokretanje i pokretanje operativnog sustava

- WiFi konfiguriran

- omogućen ssh

- instaliran python, pip, git i festival

Svaka ploča ima svoje mehanizme postavljanja. Srećom C.H.I.P. dolazi s unaprijed instaliranim operativnim sustavom i sve što trebate učiniti je konfigurirati WiFi i omogućiti ssh. Neću ulaziti u pojedinosti o tome kako ih konfigurirati jer je to različito za svaku ploču. o C.H.I.P. ovdje imaju dokumentaciju za postavljanje.

Za instalaciju pip-a na razvojnu ploču zasnovanu na debian-u koristite apt-get kao da instalirate pakete koji su nam potrebni. Pretpostavio sam da je python> = 2.7 već instaliran.

sudo apt-get install -y pip git festival

Korak 3: Instaliranje i konfiguriranje softvera (Python poslužitelj)

Prvo moramo preuzeti projekt i instalirati Python ovisnosti:

cd / root
git clone http://github.com/danionescu0/home-automation cd kućna automatizacija / daljinski zvučnik sudo pip install -r requirements.txt

Ovaj projekt nalazi se u većem projektu kućne automatizacije, nećemo o tome razgovarati sada, ali slobodno ga istražite i postavite neka pitanja ako želite.
Zatim dolazi dio za konfiguraciju, uređivanjem config.py možete promijeniti zadani port, korisničko ime i lozinku za autentifikaciju API-ja. Port može ostati 80, ali kombinacija korisnik / proći mora se promijeniti radi sigurnosti.

vi config.py
host = '0.0.0.0' port = 80 http_user = 'test_user' http_pass = 'test_pass'

Posljednji dio koji automatski pokreće naš web poslužitelj prilikom ponovnog pokretanja sustava, koristit ćemo systemctl da to učinimo:

vi usluga daljinskog zvučnika
Jedinica Description = Pokreće daljinski zvučnik Nakon = mrežni-line.target Usluga Vrsta = jednostavno ExecStart = / usr / bin / python "/root/projects/remote-speaker/server.py" Instaliraj WantedBy = multi- user.target

zamijenite /root/projects/remote-speaker/server.py vlastitom stazom, kao: / root / home-automation / remote-speaker
Sada kopirajte konfiguraciju usluge u / etc / systemd / system / i omogućite je:

cp daljinski-speaker.service / etc / systemd / system /
sudo systemctl omogućiti daljinsko-speaker.service sudo systemctl start daljinski-speaker.service sudo systemctl status daljinski-speaker.service

Ako sve bude dobro, vidjet ćete nešto poput ovoga:

● daljinski-speaker.service - Pokreće udaljeni zvučnik
Učitano: učitano (/etc/systemd/system/remote-speaker.service; omogućeno) Aktivno: aktivno (trčanje) od pon 2017-06-19 05:39:58 UTC; 2s prije Glavni PID: 29626 (python) CGroup: /system.slice/remote-speaker.service 6─29626 / usr / bin / python /root/projects/remote-speaker/server.py lip 19 05:39:58 systemd 1: Started Pokreće udaljeni zvučnik. 19. lipnja 05:39:58 čip python 29626: Pokretanje poslužitelja za bocu v0.12.13 (pomoću WSGIRefServer ()) … 19. lipnja 05:39:58 čip python 29626: Slušanje na http: //0.0. 0.0: 80 / 19. lipnja 05:39:58 chip python 29626: Pritisnite Ctrl-C da biste zatvorili.

Korak 4: Testiranje implementacije

Ok, sada naš poslužitelj za python sluša na portu 80 za uvođenje API poziva, a mi ćemo testirati tu, ali prvo nekoliko stvari o tome kako nazvati uslugu, postoje dvije opcije

a) nazovite uslugu iz lokalnog newtork-a, na primjer, s vašeg prijenosnog računala koji se nalazi na istoj bežičnoj mreži kao i razvojna ploča. U tom slučaju morate pronaći internu IP adresu.

ifconfig
………………………………………….. ……….. wlan0 Link encap: Ethernet HWaddr cc: 79: cf: 23: 74: e9 inet addr: 192.168.0.107 Bcast: 192.168.0.255 Maska: 255.255.255.0 inet6 addr: fe80 ce79: cfff: fe23: 74e9 / 64 Opseg: Link UP BROADCAST RUNNING MULTICAST MTU: 1500 Metrički: 1 ………………………. ……………………………

Tako će u ovom slučaju lokalna ip adresa biti "192.168.0.107", kako biste testirali radi li API, možete koristiti curl za izradu http zahtjeva u lokalnoj mreži:

sudo apt-get install -y curl
…. curl -i --user test_user: test_pass "http://192.168.0.107/api/tts?text=my+speech+test%0D%0A==1" HTTP / 1.0 200 OK Datum: uto, 20. lipnja 2017. 18:49:27 GMT Server: WSGIServer / 0.1 Python / 2.7.9 Sadržaj-dužina: 0 Content-Type: text / html; charset = UTF-8

--user će dodati zaglavlje za provjeru autentičnosti s korisničkim imenom "test_user" i lozinkom "test_pass", zatim dolazi tijelo GET zahtjeva sastavljenog od:
* protokol: "http"

* IP adresa: 192.168.0.107

* Implicitni priključak: 80

* url: / api / tts

* url kodiran dobiti parametre tekst i vremena, tekst znači tekst u govor tekst, vremena znači koliko vremena to ponoviti Ako ne čujete glas igranje ići na razvoj odbora i problem

sudo systemctl status daljinski-speaker.service

i izdat će neke linije za uklanjanje pogrešaka u zapisniku poslužitelja
b) pozvati službu iz vanjskog svijeta. Morat ćete znati svoj vanjski ip i zatim konfigurirati port naprijed u vašem usmjerivaču. Najjednostavniji način da saznate vanjski IP pretražujete na googleu "što je moj ip". Port forwarding je malo složeniji, možete pogledati ovaj vodič za više detalja.

U osnovi, recite usmjerivaču da za lokalni ip "192.168.0.107" želite proslijediti lokalni port 80 na vanjski port 80 ili neki drugi port. Konfiguracija se razlikuje na svakom sučelju usmjerivača.

Korak 5: Kako funkcionira (izborno)

To možete sigurno preskočiti ako vas ne zanima kod.

Projekt je napisan u pitonu i vrlo je jednostavan. Imamo dvije glavne datoteke s kodom: server.py i TextToSpeech.py ​​Server.py učitava konfiguraciju i pokreće http poslužitelj koristeći okvir boce. Izlaže jedan put "/ api / tts".

Kada se pozove provjerava autorizacijsko zaglavlje i potvrđuje ga protiv konfiguracije, a zatim poziva TextToSpeech obect TextToSpeech.py ​​sadrži omot oko festivalske naredbe, možete ga provjeriti u konzoli:

echo "neki tekst" | festival - tts

Dakle, to je sve, ostale datoteke su za konfiguracije.

Korak 6: Uporaba zvučnika

Razgovarali smo o tome kako izgraditi stvar, ali sada kakve koristi. Pokušat ću dati neke ideje i primjere:

Ako znate malo programiranja, programirate malo python skripte da biste učinili bilo što s tim poput alarma, čitanja e-pošte, pričanja viceva, obavijesti o vašem facebook računu itd.

Ako vaše vještine programiranja nisu tako velike, onda možete koristiti nešto poput stvari. ThingSpeak je open source “Internet of Things” web aplikacija. Ako nemate račun, posjetite stranicu za izradu računa.

Thingspeak podržava da definirate neke "akcije" u sustavu, te akcije mogu biti http pozivi i nazivaju se "thinghttp". U redu, možemo definirati http poziv glasom koji govori "molim te probudi se" i upotrijebi "timecontrols" za definiranje kada bi poziv trebao biti podrľan jednom pozivu ili pozivima koji se ponavljaju. Sučelje je vrlo jednostavno za korištenje. Provjerite videozapis za detalje o tome kako koristiti ovaj dio web-sučelja thingspeak.

Ali to nije sva snaga ovog online alata, možete koristiti aplikaciju zvanu "thingtweets" za kontrolu http poziva na glas definiran ranije kada objavite nešto na visokotoncu. Više komplicirano alata je "reagira" s ovim možete definirati pragovi, ako neki senzor priključen na thingspeak izvješća neke vrijednosti.

To je moćan i svestran alat za nešto što možete izgraditi ispod 30 $, omogućuje glasovne obavijesti putem API-ja pa otvara svijet mogućnosti ako imate neke vještine kodiranja.