As of 28.1.2020, this library is unmaintained for at least a period of 1 year. It will not recieve any updates during that period.
We moved our codes to Python 3. Last supported Python 2 version is LTS1.1p1. Talkey is also depricated, and we moved to gTTS and our gTTS wrapper. Talkey is still TTS engine in LTS1.1p1
Open-source voice assistant platform by MyTja. It is fully compatible with Raspbian.
Offical pages, useful links & linked repositories:
- GitHub Pages
- GitHub Repository
- MyTja Offical page
- Travis CI testment
- SDK for MyAssistantOS Raspbian
- HAM Arduino(Home Automation with My for Arduino & ESP WiFi boards)
I can play your favorite music, offline and recognize offline. We can have a small chat (also offline). I can use multiple TTS engines. I can gather information from Wikipedia, give you a weather report, tell you a joke, sing you a lullaby, and most importantly, I do not spy on you. I can also play music and videos from Youtube. There is a lot of things that I can do. Since I'm quite new, I cannot understand properly or I may have a bug. If you see so, then please report on Issues tab on GitHub.
- Get the code from GitHub - If you get it from elsewhere it might not be an original or outdated version.
- Install Python libraries. That is down this article
- Get API key from OWM
- Plug in speakers and microphones
- Customizing
Okay. I would need you to install this libraries with pip:
pip install SpeechRecognition
pip install PyAudio
pip install playsound
pip install gTTS
pip install wikipedia
pip install pyowm
pip install PocketSphinx
pip install python-vlc
pip install pafy
pip install youtube-search-python
pip install youtube-dl
pip install StringToInteger
But if you run command ./oobe, this will install libraries for you!
OOBE will automaticly create txt file called "OWM_license.txt", which will be first empty. Your job is to fill it in with an OWM key, so that you will be able to recieve weather information.
Guinea Pig releases are under branch "guineapig" and are first public releases of newest releases!
This releases got support for 3 months under following conditions:
- If none of newer releases (Beta, Stable or LTS) has been released
- If none of new guineapig releases are released
Beta releases are under branch "beta"! Less than 20% of releases got its Beta release!
This releases got support for 3 months under following conditions:
- If none of newer releases (Stable or LTS) has been released
- If none of new beta releases are released
Stable releases are under branch "master"! Less than 10% of releases got its Stable release!
This releases got support for unlimited time under following conditions:
- If none of newer LTS releases has been released
- If none of new stable releases are released
This releases are new and patches will come
LTS releases are under branch "lts"! Less than 5% of releases got its LTS release! Every release gets also its own branch
Long Term Support (LTS) release is a stable release, that is promoted to an LTS edition. Normaly, an LTS edition has 2 years of support, other releases end their support in 3 months from first publishing.
LTS releases can get patches, if:
- LTS version has a bug, that massively influences quality of My and everyday questions and answers
LTS release patches are named like this:
- LTS + version of LTS release + p + patch number (example LTS1.1p1 (Long Term Support release 1.1 patch 1)
If a LTS release patch is published:
- All of its LTS not-patched versions are ended with its support, and this one is supported, which how much time has been left on previous release
OWM is OpenWeatherMap. If you want My to tell you the weather, then you will need the API key. Full tutorial is avaiable here: https://github.com/csparpa/pyowm Thanks to @csparpa
Not yet made! Wolfram Alpha is a API key service, that provides answers to expert questions, and calculations, and it's some kind of upgrade to Wikipedia (which will still be used)!
Not yet released! NewsAPI is a API for gathering News.
Here you go! You are done with basic part!
You can play offline your favorite song. Download it and rename it to "favorite" it is best to use mp3.
You say: "Hey, My" or "O.K. My" or "Okay My" or "Wake up, My"
If he senses that succesfully, then he will respond with beep beep sound. Then you say your question. But he doesn't know everything.
I'm based on Python. Python 2 is already installed on Raspbian.
This part is currently problematic, and YouTube playing won't work as normal. It won't always play your video! We are working on this. More info: #41
Thanks to VLC for Python, pafy and BeautifulSoup we can play music and video from YouTube. You just say "play ". He will choose first result so be very detailed.
This feature is new and tested
Offline mode is only for chat and some music. My uses as offline speech recognition service Sphinx. It doesn't recognize the best, but it certanly tries.
This part is talking about new feature, that was not tested.
You can check for updates with 2 different ways:
- Reboot My (tested way)
- Say "check for updates" or "update" (new feature that is not yet tested)
Volume commands are
- Maximum
- Minimum
- Volume up/down
- Medium volume
This features are partly tested
You can use stopwatch by saying: Hey, My - Stopwatch
Timer doesn't work. We are developing new ways for timer
You can use timer by saying: Hey, My - Set a timer for XX seconds/minutes/hours/days
You can use countdown by saying: Hey, My - Countdown
Countdown will automaticly countdown from 5 seconds
Recognition for alarm doesn't work the best, so we don't reccomend to use it!
IMPORTANT NOTE: If you turn off your device, your alarms will delete!
Just say "what's the time" or "what's the date" and he will answer you
This game is not functional as first tests showed us! We will continue to resolve it but LTS 1.1 won't solve it!
Just say pick a number and guess numbers. Tell him only number, not "is it ....".
If you could contribute with testing our software, that would be great. Write bugs and ideas in issues. I will respond as fast as possible. Thank you.
Here is a compatibility table:
Devices / OS | Tested Works | Doesn't Work | Not Tested | Notes |
---|---|---|---|---|
Microsoft Windows 7 | ✔ | We used eSpeak for TTS engine | ||
Raspbian | ✔ | We are slowly testing 1.2, 1.3 should be fully tested | ||
Debian | ✔ | |||
Ubuntu | ✔ | |||
Windows 10 | ✔ | |||
macOS | ✔ |
This is how it goes!
Follow instructions on this branch: https://github.com/mytja/MyAssistantOS-Raspbian/tree/batches/
I recommend QEMU as emulator, since VirtualBox and VMware, can't emulate ARM32 arhitecture.
You can also use QiEmu (GUI QEMU emulator)
I find this article very useful: https://www.how2shout.com/how-to/how-to-set-up-virtual-machines-with-qemu-gui-on-windows-10.html
IMPORTANT!!!!!!
DLL files are included, because during the testing I had some problems with dll files. If you are using Windows include them into C:/Windows/System32.
THIS DLL FILES ARE NOT DEVELOPED BY MyTja AND THEY MIGHT NOT BE COMPATIBLE WITH YOUR DEVICE!!! USE THEM AT YOUR OWN RISK!!! FILES ARE SCANNED WITH VIRUSTOTAL AND WITH LATEST RELEASE DO NOT COME WITH ANY MALWARE!!!!
You can get DLL files in dll branch.
We succesfully moved to Python 3
As of 1st January 2020, Python 2 is unsupported. Most of our libraries are unsupported. Since YouTube is making some changes to its platform, it is very hard to maintain by ourselfs. As of version 1.2, our platform will be completelly moved to Python 3 and Python 2 releases (except LTS 1.1) will become unsupported.
Watch for updates here: #43