PDA

View Full Version : J.a.r.v.i.s



Shaka_RDR
29-05-2013, 02:50 PM
jadi karena gw beberapa minggu lalu nonton Iron Man 3, dan IRI sama si tony stark yg punya J.A.R.V.I.S maka gw memutuskan untuk membuat "jarvis" gw sendiri.

ini sekedar side project iseng2 gw sih ;D

secara garis besar yang dibutuhkan ada 3 hal, yaitu :
1. Speech to Text
2. Database command yang dikenal oleh aplikasi dan proses eksekusi command tersebut
3. Text to Speech

saat ini gw masih menggunakan teknologi2 yg sudah dibuat orang2 dan gw gabung2in jadi satu.

untuk speech to text gw menggunakan SIRI dari iPhone, digunakan untuk kirim email.

utk database command dan eksekusi, gw buat aplikasi (masih pake vb6 sih) untuk baca email yg dedicated untuk komputer gw, lalu compare dengan apa saja command yang ada di database untuk dieksekusi

untuk text to speech gw menggunakan windows speech API.




naaaaaahh.....
gw punya 3 masalah yg ingin gw diskusikan pada kalian :

1. speech to text, menggunakan SIRI itu nggak banget. masa gw kudu ngomong "send email to my computer, subject bla bla bla, message bla bla bla" dan "ok, send".
apa ada saran bagaimana cara membuat speech recognition sendiri ? ga harus buat total. menggunakan API (free tentunya) yg udah ada pun boleh.
gw pernah baca di http://cranklin.wordpress.com/2012/01/13/building-my-own-siri-jarvis/ klo google ada "free" speech API tapi contoh yg diberikan itu via PERL dan gw kaga ngerti web programming sama sekali ::nangis:: (gw programmer hardware).

2. communication protocol. saat ini gw menggunakan email (gmail) dan gmail membatasi klo refresh (cek ke server utk mengetahui apakah ada email baru/tidak) itu tidak boleh sering2 atau aplikasi gw akan di kick. saat ini gw set refresh setiap 30dtk sekali. ini bener2 ga bikin real time mengingat internet indonesia itu agak lemot, ditambah lagi pasti ada delay antara kirim email dari account email gw ke account email komputer gw.
apa ada saran lain ?

3. parsing wikianswers dan wolframalpha supaya komputer gw bisa ngomongin hasil querynya. again... ini web programming dan gw kaga ngerti sama sekali ::nangis::

any help or suggestion ?

GiKu
29-05-2013, 02:55 PM
seumpama konek pake FO colok langsung ke server google, tapi kalo refresh 30 detik tetap gak mendekati realtime

untuk wolframalpha boleh intip ini dulu => http://products.wolframalpha.com/developers/



masih ingat ini ?

http://www.imgjoe.com/x/knightrider0.jpg
KITT

Shaka_RDR
29-05-2013, 03:02 PM
oh yes. jelas gw inget KITT.. tapi yg menginspirasikan gw itu JARVIS karena, gw mau taro ini jadi server di rumah untuk mengendalikan perangkat2 rumah ;D
rencananya sih klo bisa gw gabungin juga dengan proyektor/layar super lebar + microsoft kinect. jadi gw bisa kendalikan komputer tanpa harus menyentuhnya ;D


soal realtime, gw ga minta super duper realtime deh. apalagi dengan internet indo yg lemot.
kemaren temen gw angkat wacana soal menggunakan twitter sebagai media komunikasi. gw update twitter dan komputer gw akan baca twitternya utk eksekusi perintah.
tapi klo unsigned app itu cuma bisa 150x request perjam alias max setiap 24 detik sekali. nah gimana caranya ngebuat jadi signed app, gw kaga ngerti sama sekali.




untuk voice recognition di gadget, gw rencana mau buat di hp gw. kayanya sih bakalan android karena gw ga punya duit utk beli macbook (utk develop di iOS) atau 99USD untuk bayar developer license di windows phone 8.

GiKu
29-05-2013, 03:10 PM
idenya bagus bisa kasih perintah untuk mengendalikan perangkat rumah (walaupun belom bisa menggantikan PRT)


gw juga gak mudheng, tapi untuk speech to text (speech recognition), boleh latihan dulu pake bawaan orok si windows

[Start button] => [All Programs] => [Accessories] => [Ease of Access] => akhirnya [Windows Speech Recognition]

o iya, di HP jadul gw dulu (taon 2000an) ada yg namanya voice dialer

Shaka_RDR
29-05-2013, 03:14 PM
^
did that and it was HORRIBLE !!! ;D

windows voice recognition itu parah banget. so far yg gw coba terbaik sih SIRI (udah coba s-voice juga).
jadi sementara gw bakalan pake iPhone gw dengan cara "capek" (send email to my computer bla bla bla bla bla) sampai gw bisa buat aplikasi voice recognition sendiri.

gw lebih memilih untuk mengganti protokol komunikasi dan menambah feature2 yg bisa di jalankan oleh app gw dulu. soalnya gw lagi deket2 ujian term S2 gw dan ga bisa konsen buat mobile app ;D


oh dan alasan lain kenapa ga mau pake yg dari windows = karena gw mau bisa dikendalikan mobile via gadget.
gw mau bisa suruh "turn on/off lights at home" klo misalnya gw lagi diluar rumah. dan itu kan butuh inet :D (ga mungkin gw buka2 laptop toh :D)

porcupine
29-05-2013, 04:07 PM
^ mantapppp

gw sama sekali ngga mudeng kalian ngomong apaan. Kecuali soal ngomong buat execute task ;D

Shaka_RDR
29-05-2013, 04:20 PM
aduh. yg gw buat ini sama sekali ga keren klo liat codingnya ;D
cuma idenya aja yg "lumayan" :D


aplikasi yg gw buat cuma baca email, bandingkan dengan apa yang ada di database, kerjakan apa yg harus dilakukan klo terima perintah itu, dan aplikasi bakalan ngomong pake windows speech API (jangan kaget, ini cuma 1 baris perintah loh ;D).


untuk hal2 lain gw cuma memanfaatkan apa yang sudah dibuat orang lain.
SIRI untuk voice recognition.
wikianswers dan wolfram alpha untuk natural language questions processing.
dll.

---------- Post Merged at 04:20 PM ----------

Berikut change log untuk aplikasi yg udah gw buat sementara ini (gw kasih nama MonMon, soalnya enak disebut oleh native dan non-native english speakers dan cukup catchy juga ;D).

untuk appnya blon bisa gw upload, apalagi codingnya. karena gw masih pakai beberapa komponen yg EULA nya menyatakan gw ga boleh menyebarkan tanpa persetujuan mereka (cuma boleh dipake untuk keperluan pribadi).




------------------------------------------------------------------------------------------------------------------------------------



Ver 0.0.02


* Support Multiple Line Command




------------------------------------------------------------------------------------------------------------------------------------


Ver 0.0.01 - 23 May 2013




MonMon first Creation




* Minimized to tray
* Using gmail to check for command, with 30seconds interval (hardcoded)
* List of Command Priority :
1. SystemApps (hardcoded in application):
- Refresh
2. Fixed Command
3. Google Command
4. Open/Start/Execute Commands
* All Commands (except SystemApps) and responses are all in the database.
* Configuration are in Database
* Using External application for several commands :
1. Winamp : for playing music
2. Clever : for triggering winamp
3. BatteryStatus : for announcing battery status
4. Nircmd : for any other console commands such as setting volume, printscreen, etc.
5. WebCamPic : to take a picture using webcam
* Using external components, must be installed to use MonMon :
- EAGetMail, for reading emails
- EASendMail, for sending emails (for future use)
* Using Cloud (not necessarily a cloud, a folder will do but user won't be able to check the result) as a repository for several commands such as : printscreen.
* Add automatic battery checking with intervals (will be 1minute after refresh or starting app)
- on high battery power (more than 25%), check every 5 minutes
- on low battery power (between 25% and 15%), check every 3 minutes
- on critical battery power (15% and lower), check every 1 minute
a notification using voice will be done when no AC power is plugged. check interval will not change whether AC plugged or not plugged.
battery check intervals are all hardcoded
* Several in App Variables (case sensitive) that can be used in responses and command tables :
- %AppName% , for application name used for Open/Start/Execute command
- %WebQuery%, for Web Query on Google command
- %AppPath%, MonMon Application path
- %AppCloud%, Cloud path used by MonMon (pointing to highest folder used by MonMon, user need to configure subfolders manually for desired path)
- %AppYear%, Current System Year when a command is executed
- %AppMonth%, Current System Month when a command is executed
- %AppDate%, Current System Date when a command is executed
- %AppHour%, Current System Hour when a command is executed
- %AppMinute%, Current System Minute when a command is executed
- %AppSeconds%, Current System Seconds when a command is executed
* If an error occured, application will speak the error.


Users are not advised to delete commands and especially responses as some are already hardcoded in application. better add another one for your own usage.




------------------------------------------------------------------------------------------------------------------------------------

EpsilonX
29-05-2013, 06:46 PM
Cuma interested buat home improvement only, soalnya IMO TTS software ga bikin gue impress sama sekali... :D
Kalo bikin sendiri dan untuk pribadi, technically bisa lebih gampang...
Soalnya bisa kita minimalize...

App ga perlu synth total per suku-kata...
Bisa langsung per "command", ato word... :D
eg. "Lights On"...
App cuma perlu recognize 2 kata, both udah kita pre-determined, malah cuma perlu compare ama hasil pre-synth suara kita sendiri...

Dulu banget pernah bantuin orang (read: skripsi mahasiswa) implement mirip kaya gini...
Bedanya jaman itu ga pake voice, cuma interfacing antara PDA sama home electrical...
Jadi buat nge-on-off elektronik rumah remotely...

BTW...
Ente hardware kan..?
Arduino ama Raspberry udah jajal..?

Shaka_RDR
29-05-2013, 07:03 PM
arduino blon coba.
raspberry mau beli tapi blon tau gimana pesennya (lagi bokek juga ;D). tapi klo soal ini ada temen gw udah pernah coba, dan gw bisa tanya2 dia ntar.

bisa minta masukan gimana caranya bisa on/off elektronik di rumah ? gw blon sempet research soal ini. dan gw rencananya mau ajak anak teknik komputer yg lebih ahli daripada gw.


klo untuk commands bisa dilihat di change log ada prioritynya.

berikut gw coba copas contoh apa yang ada didalam database untuk commands dan responses :




Table FixedCommands

FixedCommand
ID
Command
NumberOfCommand
CommandToExecute
ResponseType


1
Shutdown
1
shutdown.exe -s -f
6


2
Shutdown computer
1
shutdown.exe -s -f
6


3
Restart
1
shutdown.exe -r -f
7


4
Restart Computer
1
shutdown.exe -r -f
7


6
Play Music
2
"C:\Program Files (x86)\Winamp\winamp.exe"|"%AppPath%\Clever.exe " play
3












Table untuk Open/Execute/Start : hanya app yang sudah diregister disini dan sudah disetting cara executenya yang akan di kerjakan.

AppsAndWeb
ID
AppName
NumberOfCommand
CommandToExecute
ResponseType


1
Microsoft Word
1
winword
1


2
Microsoft Excel
1
excel
1


3
facebook
1
https://facebook.com
1


4
twitter
1
http://twitter.com
1


5
Microsoft Power Point
1
powerpnt
1


6
Microsoft Visio
1
visio
1


7
Microsoft Project
1
winproj
1














Table Response

Response
ResponseType
Response


1
Sir, I am opening %AppName% for you


2
Googling %WebQuery%


3
Sir, I am playing music for you


4
Playing Next Song


5
Playing Previous Song


6
Shutting down computer. Please save all of your progress, sir. I cannot save it for you.


7
Restarting computer. I'll be back soon, Sir.


8
Stopping Music


9
Music is Paused


10
I'm sorry Sir, I cannot Open %AppName% that you requested.


11
Sir, I already take screenshot and put it on your cloud storage











commands yang diterima untuk akan gw trim (buang semua spasi) dan gw uppercase untuk comparison.
jadi klo ngomong Microsoft Power Point dan Microsoft Powerpoint bakalan dianggap sama.

EpsilonX
29-05-2013, 08:44 PM
arduino blon coba.
raspberry mau beli tapi blon tau gimana pesennya (lagi bokek juga ;D). tapi klo soal ini ada temen gw udah pernah coba, dan gw bisa tanya2 dia ntar.

bisa minta masukan gimana caranya bisa on/off elektronik di rumah ? gw blon sempet research soal ini. dan gw rencananya mau ajak anak teknik komputer yg lebih ahli daripada gw.

Waktu itu gue juga sama anak Teknik Komputer...
Dia yang ngerti logic board, control board, sensing ama switch-nya...
Gue yang ngerti interface via mobile app, written in VB and C#... ::hihi::

Simplenya...
Outlet yang mao dipake dipasang sensing board buat monitor voltage ama current...
Sambung ke switch (kalo ga salah harus yang support app control), lalu ke control board...
Baru control boardnya di-connect ke PC, controllable via app, yang tentunya internet-connected...

Seru juga seh...
Sampe pas instalasi and testing panggil orang PLN buat bantu monitor, incase kalo ada apa-apa... ::hihi::
Biggest hurdle itu control boardnya waktu itu...
Sampe 4-5x beli gara-gara ga sesuai kebutuhan...

tsu
29-05-2013, 09:04 PM
klo yang di pake tipi samsung itu apa ? yang ada voice regoc nya

Shaka_RDR
29-05-2013, 10:57 PM
^
itu cuma khusus TV.

yg gw mau buat itu komputer terima command, lalu menyebarkannya ke semua perangkat2 yg ada dirumah. jadi komputer adalah centralnya.

Kingform
30-05-2013, 01:52 AM
^ mantapppp

gw sama sekali ngga mudeng kalian ngomong apaan. Kecuali soal ngomong buat execute task ;D
idem ama reza....::ngakak2:: ::ngakak2::
eh...kupin? ::grrr::

yang gw ngerti cuman shaka pengen bikin jarvis

Shaka_RDR
30-05-2013, 08:49 AM
^
weleh. emang bahasa yg gw pake ketinggian ? ;D

@epsilon : utk ubah2 jaringan listrik kaya gitu sepertinya berat. ini gw lagi ngekost ga bisa ngubah2 jaringan listrik kost seenaknya.
palingan ntar gw coba bikin lampu tidur pake lampu kaya pohon natal dan gw coba on/off pake perintah komputer kali ye. ini yg gw harus cari tau dulu gimana kendaliinnya.

Shaka_RDR
22-08-2013, 03:22 PM
Membangkitkan kembali thread lama..........


saat ini gw akhirnya memutuskan untuk mengganti email dengan sms. komunikasi lebih cepat dan gw juga dapat reply lebih cepat. gw cukup colok 1 buah modem USB ke komputer, diisi dengan SIM Card (gw isi dengan XL sih, biar sama dengan kartu di iPhone gw, biar smsannya murah ;D).

tapi karena utk voice recognition tetep menggunakan SIRI, tetep aja butuh inet.

gw mau coba buat klo gw bisa telpon ke komputer gw via USB modem, tapi ternyata usb modem gw ga support.

nah ada ide USB modem yg murah dan support utk voice call? dan ada yg tau gimana caranya gw bisa angkat telpon dan jadikan modem usb gw sebagai salah satu voice input?

GiKu
22-08-2013, 03:56 PM
pake cara sederhana dulu

pake LPT port dan relay
kombinasi 8 bit data di LPT lumayan banyak (kalau mau bikin kombinasi)
kalo gak mau, masih bisa pake untuk 8 saklar

perintah ????, mengaktifkan/non-aktifkan bit ke X di LPT port, dari sini akan mengaktifkan/non-aktifkan relay (relay untuk menggantikan saklar)

Shaka_RDR
22-08-2013, 04:02 PM
wait wait...
ini menjawab pertanyaan yg mana yah?
soal connect ke house peripherals? klo yg itu gw udah ketemu partner :D biar kan dia yg ngurusin dan gw tinggal send command aja :D

GiKu
22-08-2013, 04:09 PM
yg bertema saklar
siapa di atas yg mengarah ke sana
::doh::

Shaka_RDR
22-08-2013, 04:11 PM
errrr... itu post 3 bulan yg lalu euy..
pertanyaan baru kan yg soal modem.