What is it ?
It is your own personal and private electronic butler like in the Iron Man movies for your Linux desktop :-)
To make this complex task somewhat easier for the average user, is the aim of this project.
This is achieved with different free software which is bundled together by me to make the whole experience somewhat user friendly.
The words spoken will not or very rarely leave your machine which makes Linjark a very private solution in the NSA-snooping and data-mining age.
What languages are supported ?
Simon/Linjark can support any language if there is a language model available and scenarios are written for it.
- German (language model, marry voice and scenarios)
What can I actually do?
The tour shows some main features.
There are many more modules available. Look into the modules section.
For an in detail view what you can do, look into the grammar file of Linjark
Will you send my data to the Cloud
Normally not. Simon, the front-end of this little project uses the SPHINX language suite and tools. SPHINX does not use
cloud computing to make voice detection possible (like the project PiAUISuite who uses Google),
instead it relies on pre-formed sentences from different scenarios that you train.
If you train a sentence enough it will understand you.
This makes it the obvious choice for people who are concerned about their privacy or who just have a fishy feeling about sending everything who is spoken in the room to Googles datacenters.
This also removes the restrictions who apply when using the service from Google.
However there are some modules who will send data to the (Google)could because you can say a random word and it it not possible to form a pre-learned sentence with a random word.
A good example is the translate module: It will rely on the pre-formed sentence: "Simon translate to spanish" when you speak that sentence simon will pick it up and after a ping sound you can say any random word. This will then be sent to Google. Google will return what you have said and Linjark will then translate this word into spanish.
Linjark will not listen into your home like other (commercial) solutions do. You can always decide not to use these modules anyway.
Even the modules who require cloud computing are only started when you ask them and only about 4 seconds of sound/voice is recorded.
If you don't believe it look into the code :-)
How does all this work ?
When you speak in your microphone, Simon, an open source speech recognition program is comparing your recorded voice with the data
in the language model, if it finds the words in the model in the correct grammatical order, it can understand you if you trained it.
Then it will launch some scripts according to what you say eg. check the weather for you. MarryTTS is then used to answer you with synthesized speech and display the requested information or read it back to you.
Let's get started
This git repository is set up with the goal of providing a more easy solution for German speaking people to control their PC, house or whatever with their voice with open source and free solutions.
However this stuff can also be adapted to any other language even other operating systems. As long as there is a language model with the words you need to control something for it.
The more easiness comes in an install.sh that will install some of the components needed for successful speech recognition and provide guidance for installing the rest and also providing some Scenarios for Simon to use :-D.
Till now this is not really an easy task, mostly because the open source German language model does not support the right words for controlling applications and devices. But also because their are not many scenarios written for Simon and scripts to implement things in an easy way. Jump right in and see the contents below :-)
Status of the project/model
1a. Start the installation(Desktop machine)
1b. Start the installation(Raspberry Pi 2)
2. Basic Configuration of Simon
3. Install some Linjark-Modules
4. Some things you should know
5. How to train properly(Desktop machine) / Common errors
6. Have a blast!
Aim of this project
Care to help?
- Project structure
10/11/15 YEAH!!!: Simon is running on the Raspberry Pi 2 Model B (2015) Read more here.
07/11/15 ATTENTION: Priorities are shifting. Read more here.
25/10/15 ATTENTION: Some modules are broken due to old age. Look for the most recent ones in the Github folder. I'm working on fixing the rest.
21/10/15 This project is considered (again) active in development and not stable or bugfree!
Pretty good model is online, secarios and scripts can be made.
- The current model has many words for controlling and getting information of various sources.
As Google Speech API v2 now requires personal keys, these modules will (for now) not work out of the box:
- Translation (translate words in other languages)
- Internetsearch (search for something you said on the net)
Aim of this project
- Add missing words to the German open source language model. (already over 800 words added)
- Write the scripts for the backend functions.
- Write Scenarios for Simon in German to use the backend-scripts and the German language model.
Raise awareness of free, open source speech recognition, particularly the German model.
Further down the line, write a conkyrc script to implement "Rainmeter" like functionality for the Linux desktop.
- A graphics designer would be needed here for the background image! Please help if you can draw :-D
- Get all of this stuff onto the Raspberry PI or a similar micro computer (ARM) for home automation.
Trouble ?First look here: Common Problems
Next look here: More errors you could encounter
If this is not helping, open an issue here on github.
As this is for the German model I do obviously speak German and you can use that language if you contact me :-)
Please open a "Issue" here on github with a
detailed description what went wrong!
Want to help !?
Just get in touch! Help is always needed and there is plenty to do!For more information on this, see: Project structure
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.