Jane is a computer voice-interface written in Java. She's based off IronMan's Jarvis and Robocop's voice interface. Jane will listen to a user's computer and trigger modules held in her "modules" package, when what she hears corresponds to a set of pre-defined input strings.
Jane is built on Windows, however many of her functions should be platform independent. Jane does use several Desktop and SystemTrayIcon classes which may be specific to Windows, however.
Modules available by default include:
- BreakingNews - Will speak tweets by @BreakingNews as they are tweeted
- Agence France Presse (AFP) - Will speak tweets by @AFP as they are tweeted
- Google Search - Speaks Google search results
- Panic - A module that will initiate a panic sequence when the user says "Panic, Panic, Panic"
- ReadTweet - A module that can read a tweet out loud
- Twitter Notifications
- Time - A module that speaks the current time and date
- GitHub Jobs - Speaks Jobs available in the user's area that may be of interest
Jane is currently under heavy development. Some features may not be quite finished yet.
Feel free to hack on Jane and create new modules! New modules can be written in Java and placed in the "modules" package to be run. Modules should be initialised automatically; adding extra code to trigger the module isn't necessary.
Jane uses Maven to compile her code.
To compile Jane, Apache Maven 3 must be installed.
She can then be copiled using mvn clean install
. Using mvn clean install -U
will also update her dependencies.
A Google API key can be obtained by following several simple steps.
Jane's unit tests can be run using mvn test
.
Jane also uses Coveralls to track test coverage and Travis-CI to track build successes.
Jane uses a multitude of dependencies, including:
- CMU Sphinx
- GTranslate
- Java Flac Encoder
- JLayer, by JavaZoom
- Twitter4J
- JUnit
- Reflections
- Mockito
- JSoup
- Google Gson
Some dependencies are removed from production code, as they're only required by certain modules or for testing purposes.
Jane focuses on the user. Development of Jane is user-oriented. She must be able to be useful to anybody. Jane uses minimum bandwidth and CPU, and can function under tough conditions. She loves playing survival games. Jane can be easily used by anybody; she can be comprehensively secured, allowing for total secure and anonymous use. If possible, Jane prefers to function independently from the internet.