Introduction
The last couple of days, returning home by bus, I thought about the technologies around us, and what will happen next. How good it would be to call home and ask him to warm up dinner, I thought, and called my wife)) And someone other than the company has no one at home, and ask for no one. And it would be great to ask for a comp.
So, I share my thoughts.
Of course, an ordinary person is far from a “smart” house, since the prices of such pleasure are not something that they bite, but brutally gnaw off everything they can. But the management of the computer is closer to reality.
')
What do we have at the moment? Microsoft (well, or someone for them) made an excellent voice recognition, which many are familiar with through the Windows activation system on the phone, and some have already become familiar with the voice functions of Exchange 2010. Unfortunately, at the moment there is no implementation of a "recognizer" which would have API, and would be worthy on functionality. So, it's time to write a text version of the program, to work out the logic, so that when a decent implementation of recognition appears, just screw it and get the finished product.
The basic idea is that, firstly, there are plug-ins, and, secondly, it was possible to send training data to the server, where it would be processed (appr or something like that), and updates would be distributed to everyone else. I am unfortunately not a programmer, but I am quite well aware of the logic of such a program.
Principles
The basic principle of the algorithm is the division of a command into parts, and the comparison of a part of a command of a separate function. That is, we have the types of "Action", "time", "place" - in fact, as in the usual scheduler. Actions - ranging from “open”, “launch” to arbitrary commands that are associated with a specific action, for example, I like to say “drop” together “delete”, and through training you can easily explain to the program what it means. Time - “in an hour”, “recently”, “pancake, I do not remember when”. Where - “in documents”, “in torrents”, in the letter ".
The number of types of functions will naturally be greater, but it will still remain within reasonable limits.
Examples
I will give a few examples of how I see the work with the program at the stage of early testing and training:
- Open Habr
- What do you mean by the word Habr? # the program knows the action to open, but does not know what
- What options? # at request we ask, with what it is possible to associate habr
- Document, music, video, something else? # about the site she does not know
- Something else…
- Please characterize the word Habr, it will be added to the database
- This is a site.
- Thank.
Here, the server flies away that habr is a website, the developer sees that he has forgotten about websites, makes changes, and the next update the program can operate with the word “website” and its synonyms.
The following conversation:
- Open Habr
- What do you mean by the word Habr?
- Site
- Please enter the site name in the form that you see on the screen # form pops up
- habr.ru
- Thank you, if you do not mind, this information will be passed on to the database.
Well, Habr opens in the default browser. At the next request, the program silently performs the order.
Future
Plug-ins for popular players are written so that the program can work with libraries, search plug-ins (this is a separate topic, you can teach the program “Download Avatar in HD” command), etc.
It turns out the implementation of voice recognition, the program begins to understand the voice commands. In the presence of a normal voice synthesizer, also talk to the user.
If you go further, then you can add humanity to it, for example, a user sits down at the computer in the morning, and the program tells him that today he is up early - did he sleep poorly?
On the question of the program how things are you can display information about the weather, the state of the computer and the number of unread letters in the mail.
Well and the main thing, I did not see similar programs. If you have time to occupy a niche - you can quite successfully sell.
PS Please do not write "nonsense", but give a healthy criticism of why it is "nonsense."
PS Well, if I remain out of life, and everyone has been talking to computers for a long time, give me a call.