Litar

Bagaimana Membina Teks Ucapan Pembicara IOT: 6 Langkah

The Internet of Things presents – Manufacture #LikeABosch

The Internet of Things presents – Manufacture #LikeABosch

Isi kandungan:

Anonim

Bahagian pemasangan cukup mudah: papan pengembangan dan penceramah audio mesti dikuasakan. Saya telah memilih pengecas telefon 5V 2A dan hab USB untuk mencapai itu tetapi apa-apa yang akan dilakukan selagi mereka berkuasa.

Selain itu, kabel audio diperlukan untuk menyambung output audio papan pengembangan kepada input audio pembesar suara.

Saya tidak membina kepungan untuk semua perkara, anda boleh membiarkannya terbuka atau melampirkan dalam kotak yang anda lihat patut. Sebagai contoh, anda boleh menggunakan kotak plastik seperti ini dari ebay, dan anda perlu mengebom beberapa lubang untuk kabel, dan output speaker

Langkah 2: Mendapatkan Lembaga Pembangunan Bersedia

Dengan bersiaplah saya maksudkan:

- sistem operasi berjalan dan berjalan

- wifi dikonfigurasikan

- ssh didayakan

- python, pip, git dan festival dipasang

Setiap lembaga mempunyai mekanisme persediaan sendiri. Nasib baik C.H.I.P. datang dengan sistem operasi pra dipasang dan semua yang perlu anda lakukan ialah mengkonfigurasi wifi dan membolehkan ssh. Saya tidak akan mendapatkan maklumat tentang cara mengkonfigurasi mereka kerana ia berbeza untuk setiap papan. pada C.H.I.P. mereka mempunyai dokumentasi persediaan di sini.

Untuk memasang paip pada debian pembangunan berasaskan debian gunakan apt-get seperti itu untuk memasang pakej yang kami perlukan. Saya telah mengambil python> = 2.7 ia sudah dipasang.

sudo apt-get install -y pip git festival

Langkah 3: Memasang dan Mengkonfigurasi Perisian (python Server)

Mula-mula kita perlu memuat turun projek dan memasang dependencies python:

cd / root
klon git http://github.com/danionescu0/home-automation cd home-automation / remote-speaker sudo pip install -r requirements.txt

Projek ini terletak di projek automasi rumah yang lebih besar, kami tidak akan bercakap tentang perkara ini sekarang tetapi berasa bebas untuk meneroka dan menimbulkan beberapa soalan jika anda suka.
Kemudian datang bahagian konfigurasi, dengan menyunting config.py anda dapat menukar port lalai, nama pengguna dan kata laluan untuk pengesahan API. Pelabuhan boleh kekal 80, tetapi gabungan pengguna / pasang mesti ditukar untuk keselamatan.

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

Bahagian terakhir ia membuat permulaan webserver kami bermula pada reboot, kami akan menggunakan systemctl untuk melakukannya:

vi remote-speaker.service
Unit Penerangan = Memulakan speaker jauh Selepas = network-online.target Perkhidmatan Jenis = mudah ExecStart = / usr / bin / python "/root/projects/remote-speaker/server.py" Install WantedBy = pengguna.target

gantikan /root/projects/remote-speaker/server.py dengan jalan anda sendiri, seperti: / root / home-automation / remote speaker
Sekarang salin konfigurasi perkhidmatan kepada / etc / systemd / system / dan aktifkannya:

cp remote-speaker.service / etc / systemd / system /
sudo systemctl enable remote-speaker.service sudo systemctl start remote-speaker.service sudo systemctl status remote-speaker.service

Jika semua berjalan lancar, anda akan melihat sesuatu seperti ini:

● remote-speaker.service - Memulakan speaker jauh
Dimuat: dimuatkan (/etc/systemd/system/remote-speaker.service enabled) Aktif: aktif (berjalan) sejak Mon 2017-06-19 05:39:58 UTC; 2s ago PID Utama: 29626 (python) CGroup: /system.slice/remote-speaker.service └─29626 / usr / bin / python /root/projects/remote-speaker/server.py Jun 19 05:39:58 chip systemd 1: Bermula Memulakan speaker jauh. Jun 19 05:39:58 cip python 29626: Pelayan v0.12.13 pelayan bermula (menggunakan WSGIRefServer ()) … 19 Jun 19:39:58 python cip 29626: Mendengar pada http: //0.0. 0.0: 80/19 Jun 19:39:58 python cip 29626: Tekan Ctrl-C untuk berhenti.

Langkah 4: Menguji Pelaksanaan

Ok, jadi sekarang pelayan python kami sedang mendengar di port 80 untuk panggilan API yang tidak berfungsi, dan kami akan menguji itu tetapi pertama-tama beberapa perkara mengenai cara menghubungi perkhidmatan itu, terdapat dua pilihan

a) memanggil perkhidmatan dari newtork setempat, contohnya dari komputer riba anda yang berlaku pada newtowk wireless yang sama sebagai papan pembangunan. Dalam kes ini anda perlu mencari alamat IP dalaman.

ifconfig
………………………………………….. ……….. wlan0 Pautan penyambung: Ethernet HWaddr cc: 79: cf: 23: 74: e9 inet addr: 192.168.0.107 Bcast: 192.168.0.255 Mask: 255.255.255.0 inet6 addr: fe80 :: ce79: cfff: fe23: 74e9 / 64 Skop: Pautan UP BROADCAST MENGURANGKAN MULTICAST MTU: 1500 Metrik: 1 ………………………. ……………………………

Jadi dalam hal ini alamat ip tempatan akan menjadi "192.168.0.107", untuk menguji jika API berfungsi, anda boleh menggunakan curl untuk membuat permintaan http dalam rangkaian setempat seperti:

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 Tarikh: Tue, 20 Jun 2017 18:49:27 GMT Server: WSGIServer / 0.1 Python / 2.7.9 Content-Length: 0 Content-Type: text / html; charset = UTF-8

- Pengguna akan menambahkan header pengesahan dengan nama pengguna "test_user" dan kata laluan "test_pass", kemudian datang GET body of request terdiri dari:
* protokol: "http"

* alamat ip: 192.168.0.107

* pelabuhan tersirat: 80

* url: / api / tts

* url dikodkan mendapatkan parameter teks dan masa, teks bermaksud teks untuk teks ucapan, kali bermaksud berapa banyak masa untuk mengulanginya Jika anda tidak mendengar suara bermain pergi ke papan pembangunan dan mengeluarkan

sudo systemctl remote-speaker.service status

dan ia akan mengeluarkan beberapa baris debug log pelayan
b) hubungi perkhidmatan dari dunia luar. Anda perlu tahu ip luaran anda dan kemudian mengkonfigurasi port ke hadapan dalam penghala anda. Cara paling mudah anda dapat mengetahui IP luar dengan mencari di google "apa ip saya". Pelabuhan yang dihantar agak rumit, anda boleh menyemak tutorial ini untuk maklumat lanjut.

Pada dasarnya anda memberitahu penghala bahawa untuk ip tempatan "192.168.0.107" anda mahu meneruskan port tempatan 80 ke port luaran 80, atau beberapa port lain. Konfigurasi berbeza pada setiap antara muka penghala.

Langkah 5: Bagaimana Ia berfungsi (pilihan)

Anda dengan selamat boleh melangkau ini jika anda tidak berminat dengan kod tersebut.

Projek itu ditulis dalam python dan ia sangat mudah sebenarnya. Kami mempunyai dua fail utama dengan kod: server.py dan TextToSpeech.py ​​Server.py memuatkan konfigurasi dan memulakan pelayan http menggunakan kerangka botol. Ia mendedahkan satu "/ api / tts" laluan.

Apabila dipanggil ia menyemak tandatangan kebenaran dan mengesahkannya terhadap konfigurasi, maka panggilan TextToSpeech obect TextToSpeech.py ​​mengandungi bungkus sekitar perintah perayaan, anda boleh menyemaknya di konsol:

echo "beberapa teks" | festival - pertandingan

Jadi itu sahaja, sisa fail untuk konfigurasi.

Langkah 6: Menggunakan Speaker

Kami bercakap mengenai cara membina perkara itu, tetapi sekarang apa gunanya. Saya akan cuba memberikan beberapa idea dan contoh:

Jika anda mengetahui sedikit pengaturcaraan anda memprogram skrip python sedikit untuk melakukan apa-apa dengan penggera seperti ini, membaca e-mel, menceritakan jenaka, pemberitahuan tentang anda akaun facebook dll

Jika kemahiran pengaturcaraan anda tidak begitu hebat, maka anda boleh menggunakan sesuatu seperti thingspeak. ThingSpeak adalah aplikasi web "Internet of Things" yang terbuka. Sekiranya anda tidak mempunyai akaun, lawati akaun membuat halaman.

Thingspeak menyokong anda untuk menentukan beberapa "tindakan" dalam sistem, tindakan ini boleh panggilan http dan mereka dipanggil "thinghttp". Ok supaya kita dapat menentukan panggilan http ke suara yang mengatakan "tolong bangun" dan gunakan "timecontrols" untuk menentukan apabila panggilan itu perlu dibuat menyokong satu panggilan masa, atau panggilan berulang. Antara muka yang cukup mudah digunakan. Sila semak video untuk butiran cara menggunakan bahagian ini antara muka web perkara.

Tetapi ini bukan semua kuasa alat dalam talian ini, anda boleh menggunakan aplikasi yang disebut "thingtweets" untuk mengawal panggilan http ke suara yang ditakrifkan sebelum ini apabila anda menyiarkan sesuatu pada tweeter. Alat yang lebih rumit adalah "bereaksi" dengan ini, anda boleh menentukan ambang jika beberapa sensor yang dilampirkan pada laporan perkarapeak beberapa nilai.

Ini adalah alat kuasa dan serba boleh untuk sesuatu yang anda boleh bina di bawah 30 $, ia membolehkan pemberitahuan suara melalui API supaya ia membuka dunia kemungkinan jika anda mempunyai beberapa kemahiran pengekodan.