* working on a client for wi-fi setup
* added refactored code, ready to integrate
* client is running, now to handle the rest
* Staring touble in the face
* saved
* added config settings for wifi setup
* add an entry point for wifisetup to mycroft-base-setup.py
* moved SSID sorting into LinkUtils
* I'm now using the new SanAp class throughout
* Cleaning up code. All bash executions use bashThreadHandling class, mycroft's LOGGER
* removed legacy configuration parser
* funneling effort into cleanup
* fixed pep8, see if she builds
* changed entry point for init script
* changed import path to full path
* changed import path to full path for all files
* change ws port to 8080 for now
* pep8 in wifi.py fixed
* fixed a few more pep8 errors
* strange import stuff goign on
* strange import stuff goign on
* renamed wifi.py to prevent import conflict
* freeze pip requirement versions
* changed import path in LinkUtils
* changed import path again
* trying to fix wifi import.. something is wrong
* consumer and producer queues now working
* Consumer & producer API's are coming alogn
* Refactor: developing an API
* add ap up/down procedure to api
* looking googd
* removed some older code, api is nearly written
* success
* Sending conection status to browser is now working
* Fixed pep8 errors again
* removed blank line from file
* fixed entrypoint name
* added shutdown and save upon connect; reducing verbosity
* now disabling and flushing network on connection fail
* fix start.sh
* Corrected amount of arguments passed to wpa_cli_disable_network
* added iface to disable network
* added shutdown on success; restart wpa_supplicant upon ap up
* turning powersave mode off for wlan0
* removed wpa_cli flush
* fix some file restore and exit issues
* re enabled flush networks on fail
* powersave mode was logged but not executed
* stop and start dhcpcd withh ap up
* changed hostapd channel; bring links up and down after successful pair
* removed double quotes from the wpa_supplicant template
* Multiple files combined into util.py
* clean up some comments, added license headers
* what is up
* Ap mode event fires on enclosure event
* added logic for open network
* Changed empty passphrase from bool to empty string
* enclosure version bump
* changed ap down method in WiFiConsumer
* I'm now pulling all configuration from mycroft.ini and grabbing the mac address for ap ssid
* REFACTOR: removed util.py, as it was a bit messy
* REFACTOR: remove pep8 errors again, you would think that I would do this each time
* chagned some logic for open net
* open networks now function properly
* Reboot on success
* changed network save method
* Issues 356 - Setup wifi connection
- Removing tornado dependency
- Merging WS reader with Wifi process
* Issues 356 - Refactoring
- Using PyRIC and WIFI libs
* Issues 356 - Refactoring bash command
* Issues 356 - Refactoring FileUtils
* Issues 356 - WebClient refactoring
* Issues 356 - create password and loading pages
* Issues 356 - connecting
* Issues 356 - parsing data on ws
* Issues 356 - removing fake function on wifisetup
* Issues 356 - connecting on public network
* Issues 356 - show loading page on backbutton
* Issues 356 - sort networks by quality
* Issues 356 - Fixing message type variable
* Issues 356 - Adding more logs to wifi setup
* Issues 356 - network sort by quality
* Issues 356 - Fixing cell ssid param and using correct interface for scheme
* Issues 356 - Ensuring to save scheme before activating
* Issues 356 - Logging bash command
* Issues 356 - Refactoring wifi to P2P
* Issues 356 - Simplifying cli usage and getting results from wpa_cli
* Issues 356 - Parsing ssid and pass
* Issues 356 - Saving wpa configuration
* Issues 356 - Removing postfix in favor of wpa_supplicant config
* Issues 356 - Setting host to 0.0.0.0
* Issues 356 - Fixing parsing for wpa_cli output
* Issues 356 - Ensuring to save wpa config after connected
* Issues 356 - Setting interface for save config
* Issues 356 - Ensuring interfaces in all wpa cli
* Issues 356 - Creating, staring and stopping wifi web server
* Issues 356 - Adding logs to web server
* Issues 356 - create succes page and merge connect page on list page
* Issues 356 - Config.js server addr
* Issues 356 - Adding wifi status and connected control
* Issues 356 - lock margin top wifisetup
* Issues 356 - waiting connection
* Issues 356 - Moving dnsmasq backup logic to main.py
* Issues 356 - Cleaning imports
* Changed the base manifest to reflect new file locations
* fixed indent for pep8
* changed the mycroft-base-setup.py to reference the proper entry point for wifisetup
* Enclosure version bump
* Added the wifi index.html to the base manifest, as it doesn't seem to catch it recursively
* Issues 356 - Updating first setup flag after running the first time
* Issues 356 - Ensure to stop server only if it exists
* Issues 356 - Ensuring to set first setup to false when connected
* Issues 356 - Closing web server after shutdown
* Issues 356 - Running web server as daemon
* Issues 356 - Creating server connection only once at initialization
* Issues 356 - Disconnecting network before connecting and fixing get status
* Issues 356 - Starting web server only once after AP is up
* Issues 356 - Returning empty status if not able to parse
* Issues 356 - Creating web server loop control
* Issues 356 - Performing final request call in order to unblock server
* Issues 356 - Adding GET method to server request
* Issues 356 - Requesting web server to stop on main thread
* added ip address display
* added ip address display
* added sleep for timing
* altered timing
* further increased sleep time
* altered logic
* pep8
* changed delay duration to depend on ip length
* updated sleep time
* updated sleep time
* updated sleep time
* pep8
* Added mic test to enclosure
* Added system.test enclosure commands
This also improves the audio test method; it now uses its own voice to make the test faster to perform
* Added set function to mycroft configuration
This allows setting config values to a particular section in the user config
* Added upload and test on first boot features
* Added mute test to enclosure
* Add media base class
* Clean up media base vocabulary keywords
* Rename header for common MediaSkill settings to "MediaSkill"
* Stop procedure cleaned up
* mycroft.media.stop now contains information of the message origin, this is used by the handler to make sure the calling skill doesn't stop itself.
* the play() method was renamed before_play() for clarity
* Rename _set_sink to something understandable.
* Added new listener config options
* Fixed audio unit tests
This adds a cleareraudio file for the wakeup test and changesto the new LocalRecognizer constructor
* Added .dict files to .gitignore
This is because they are now auto-generated on startup rather than stored permanently
* Fixed audio accuracy test for new LocalRecognizer constructor
* Added support for spaces in wake word config
In the phonemes a new word is indicated by a period character. The separating of the words actually changes the way pocketsphinx interprets the sound of it and in this case improves it
* Fixed unit test
* Changed keyword to 'hey mycroft' and increased threshold
The threshold increase is necessary since the keyphrase is now more syllables
* Fixed pocketsphinxnot loading and pep8
Previously I tried using a new word called 'hey-mycroft' (with the appropriate phoenetic version in the .dict) however it worked just as well as how it is now as separate words
* Increased threshold further
* Added new compiled regex for what's
This is for verbs that don't have a space between the question word and verb
* Added support for 'whats' in wolfram
* Added tests for the EnglishQuestionParser
* Removed the 'I am searching for' message
* The interpreted question is now read instead of 'Sorry, I did not understand your request'
* Added rephrased question to the other areas where wolfram fails
* Fixed wolfram fail_response error thanks to ethanaward
* Added thinking animation
* Issues 192 - WA skill will now search again with top alternative
* Issues 192 - Add tests for new method
* Issues 192 - Fix pep8
* Issues 192 - Update test syntax
* Issues 192 - Change WA skill to use dialog
* Issues 192 - Address feedback
* Issues 158 - Update ScheduledSkill time formatting
* Issues 158 - Add unit tests for new method changes
* Issues 158 - Change to not use date-based implementation to fix tests
* Issues 158 - Address feedback
previously the listner's behavior would be influenced by the buffer size. Now, however, it is not since the noise is increased by a factor of the seconds per buffer.
* added mouth spelling
* spell word after talking
* removed speech to test
* test
* re-added speech
* used emitter
* mycroft/skills/spelling/__init__.py
* emitters 102: intermediate emitters
* emitters 103: importing the right method
* trying enclosure methods
* more fixing
* sorry slack
* added brief pause
* added api listener method
* fixed syntax
* further edited syntax
* slightly changed syntax
* added brief pause before listener reactivation
* changed ordering
* testing method
* further tests
* test test test
* logger
* further logger
* altered logic
* i really need to fork
* more debug
* changed boolean logic
* more debug
* fixed it??
* added brief pause again
* final commit
* test
* test
* fixed it
* sleep
* more testing
* stuff
* added constants:
* pep8
I'm not quiet sure where the session_id was ever used when emitted in the payload however just to be safe I kept it in there. This is to be sure there are no differences between the old and new listener that could be causing Cerberus problems.
* #131 added if for situations where the host is empty
* #132 modified mycroft.ini file and added exception.
* #132 modified mycroft.ini file and added exception.
* #132 removed comment
* #131 changed to ValueError, and added checks for ssl, port, host and path
* #131 changed to ValueError, and added checks for ssl, port, host and path
* #131 reverted utils - went another route
* #131 added empty string for ssl detection
* #131 created validate_param
* #131 pep8
* #131 oops missed route
* added volume control in enclosure.py
* fixed syntax for skill method usage
* addressing a problem with the enclosure service
* trying to use intents
* oops
* fixed pep8
* fixed issue with reversed volume controls
* changed enclosure version number to reflect updated enclosure code
In testing Mycroft very seldom understands "stop alarm" and "end alarm" so I have removed them from the stop dialog in order to ensure Mycroft advises users as to the best way to disarm an alarm.
Tested with new alarm, it sounded distorted. Looked at implementation of other sounds (news skill), and decided to try with MP3. Changed to using MP3 instead. Everything works properly now, tested on multiple devices.
1. To prevent many of the listener "dead state" (avoiding unwanted exceptions to break the loop)
2. Wake up must work for both "mycroft wake up" and "wake up mycroft"
3. To ensure "mycroft" keyword is always detected when it exists
4. To rely on "mycroft" instead of "hey mycroft"
5. To process "ok", "okay" and "allright" as part of the wake word detection
Some of the possible test cases:
1. wake up mycroft with: "mycroft wake up" and "wake up mycroft"
- it must wake up no matter the position of the "wake up" keyword
- it must always say it's awake at the first time (before, it'd only say it the second time you try to wake up)
2. try "okay mycroft, what's the weather in lawrence" and similar requests with "alright"
- this ensures we ignore "okay" and "alright" on the sentence
3. "mycroft" keyword should be detected as much as possible even if the sentence does not trigger a real skill/action
- that means the wake word detection is working
4. try all of those from close distance to the unit
- this ensures the changes are working
5. try all of those from a far distance to the unit
- to test the auto gain mic (for those who have one)
The 1980s birthed a new form of interaction between computers and users. For the first time computers became capable of understanding the most basic form of human communication - pointing and grunting. The mouse and the GUI revolutionized computing and made computers accessible to the masses.
We have now entered a third era. We are rapidly approaching a time when computer systems will understand human language and respond using the most natural form of human communication – speech.
This is an important development. Some might even call it revolutionary.
Despite its importance, however, the technologies that will underpin this new method of interaction are the property of major tech firms who don't necessarily have the public's best interests at heart.
Not anymore.
Meet Mycroft – the worlds first open source natural language platform. Mycroft understands human language and responds with speech. It is being designed to run on anything from a phone to an automobile and will change the way we interact with open source technologies in profound ways.
Our goal here at Mycroft is to improve this technology to the point that when you interact with the software it is impossible to tell if you are talking to a human or a machine.
This initial release of the Mycroft software represents a significant effort by the Mycroft community to give the open source world access to this important technology. We are all hoping that the software will be useful to the public and will help to usher in a new era of human machine interaction.
Our community welcomes everyone to use Mycroft, improve the software and contribute back to the project. With your help and support we can truly make Mycroft an AI for everyone.
Joshua W Montgomery – May 17, 2016