For my senior project I am making a program for home automation that will run on a windows computer (can be changed if linux is better choice). The idea is to have a program running all the time that interacts with the user via voice commands. It will listen for a keyword to be said, once triggered the user can then provide the direction whether that be a question, control hardware, etc. The idea is basic similiar to Siri/Google Voice commands but a step further and more focused at controlling various household processes (thermostat, doorlocks, etc.)
So the language must be one that has a good openware text to speech and speech to text available to it. The program will be use ardunio and AVR Microcontrollers for different hardware applications of the project (Not sure if this is useful but thought I would share it.) I also will be integrating the wolframalpha api into the application as well, which has a limited number of supported languages.
I am open to any language that would make this task run the smoothest but most of my experience is in:
- Java
- Python (small amount)
- PHP (Don’t think is applicable here)
Which language would be the best for this situation?
As Java was originally developed to run household applications (or so the myth goes), it’s probably the best candidate for your program.
PHP’s out of the question without at least one other language to do the heavy lifting.
Python might do the trick, but you have more experience in Java, it would seem.
Out of the three languages you proposed, I’d recommend using Java. A quick Google for “java speech to text” returns 19 million results; “python speech to text” returns 500,000; interestingly, PHP returns 8 million results. Based on that data alone, I’d say Java is the best candidate. Another thing to note is, that you’d probably get the most support for Java, as out of the three languages, it’s the oldest of them.
As others have noted, MATLAB is another viable option, so take my answer with a grain of salt. I’m just providing recommendations based on what you said you already know.