Search code examples
javaspeechhome-automation

J.A.R.V.I.S. recreation in java


If you have ever seen Iron Man or Iron Man 2, you know he has an assistant that can do plenty of things.

This is more of an opinion question(s) than anything.

Would Java be the best language for this, I was thinking that because it's an object oriented language, or should it be something else?

Should I code the speech recognition or should I use a service like Google's Api?

What should I use for home automation?

Should I use face recognition or RFID cards?


Solution

  • I agree that such a system would call for an object oriented language. Keep in mind, however, that just picking an OO language doesn't automatically grant you anything. You'll need to have a pretty well-thought design before even starting implementing, or at least be prepared to make numerous radical revisions of the whole structure as you go (if not both).

    Apart from that, I'd pick C# .NET, on one hand because I find it much more expressive (due to its somewhat richer syntax), on the other hand because it has interesting libraries. First and foremost, speech-to-text and text-to-speech are built-in and very easy to use right off the bat. Also, networking is as little pain as networking can get in most modern languages, which can prove useful if you're going to need any communication with your LAN, let's say. The library also gives you easy access to things like a file system observer, system diagnostics etc, if you want to get creative about how the program automates various things on your computer. Also, available for C# is the Touchless SDK, a surprisingly intuitive library for tracking objects through the webcam, which I can easily imagine being useful for your endeavor.

    Whatever language you choose, I'd really recommend against reimplementing things for which APIs already exist. Figuring and coding the logic of the core of this program would be a pretty daunting task in itself, so there's really no point in attempting to make half-baked implementations of its (also very complex) parts - and it would probably be frustrating anyway.