Commit Graph

68 Commits (8d8cc287584546b4821de1c8c9b1d9f1e4f57d7e)

Author SHA1 Message Date
Åke 64b78e34b3
Upgrade msm to 0.5.13 (#1610) 2018-05-24 18:27:33 +02:00
Matthew D. Scholefield 69e4961c0e
Upgrade msm
This change makes pip lock when installing requirements
2018-05-17 17:55:01 -05:00
Matthew D. Scholefield 094271904c
Upgrade msm
This fixes the skill loading too early
2018-05-17 13:01:39 -05:00
Matthew D. Scholefield d720492d69 Upgrade msm
This fixes edge case scenarios with skill updating
2018-05-16 16:31:56 -05:00
Matthew D. Scholefield 28808308b4 Update msm
This brings in a change that normalizes skill names in downloaded skills to lowercase
2018-05-15 17:51:45 -05:00
Matthew D. Scholefield fff89a46ba
Update msm
Brings in new change that fixes skills not updating eventually
2018-05-15 10:38:29 -05:00
Matthew D. Scholefield 4e077b86e3 Upgrade msm 2018-05-14 16:41:06 -05:00
Matthew D. Scholefield 397435afcb Update msm version (#1589) 2018-05-14 20:15:51 +02:00
Matthew D. Scholefield 88e118538d Upgrade msm
This brings in a bug fix that prevents space separated words from having a low confidence in the search
2018-05-10 15:54:50 -05:00
Matthew D. Scholefield 355fd0f084
Upgrade msm
This fixes sudo pip access through a sudoers file
2018-05-10 11:44:56 -05:00
Matthew D. Scholefield 6ecf4d986f Reinstall pip dependencies if virtualenv is removed
This keeps track of the skills whose dependencies have already been installed. While it won't automatically register newly installed skills, it will attempt to reinstall dependencies the next boot only one time so it shouldn't be a big issue.
2018-05-09 16:07:04 -05:00
Matthew D. Scholefield a20b5b565c Cleanup skill loading and implement python msm 2018-05-08 13:41:51 -05:00
Åke 5f49ffa23f
Restore pyee 1.0.1 (#1430)
Conflict with Adapt makes the upgrade impossible
2018-02-16 01:46:39 +01:00
Åke ea7c7efee1 Fix cancel_scheduled_event for non-repeating events by updateing pyee to v5.0.0 (#1425)
* Update pyee to v5.0.0

The old version of pyee (1.0.1) could not remove events registered as "once" (instead of "on")
This fixes canceling scheduled events

* Restore MycroftSkill.remove_event() return value

The return statement in remove_event() was missing, probably lost while handling a conflict.
2018-02-15 14:52:18 -06:00
penrods 6c1cdb47b3 Fix startup time-warp issue
Raspberry Pi's don't have a built-in clock, so at boot-up the clock just picks up from when they were last running.  Normally this is corrected very quickly by NTP from an internet server, but if there is no network connection that cannot happen.

When an out-of-the-box Mark 1 or Picroft is being setup, the clock is set to whenever the image was created.  Upon completing the Wifi setup step the NTP service can finally sync with the internet, so time suddenly "jumps" to weeks later -- usually.  In either case (when the date jumps or when the date is erronously months old), there is potential for havoc.

These changes deal with that situation.  Upon network connection, an NTP synchonization is forced.  If it is detected that a major time jump happened
(more than 1 hour), then the user is notified that the clock change requires
a reboot and the system restarts.

Other changes:
* use the new "system." message namespace
* add pause before the system.reboot during a WIPE, allowing reset to totally complete
*
2018-01-17 21:05:51 -06:00
Åke Forslund 6a977ac96b Update Speech recognition module to 3.8.1
As suggested by @turboproc this restores GoogleCloudSTT. For details on the change see https://github.com/Uberi/speech_recognition/releases

==== Fixed Issues ====
#1329

==== Environment Notes ====
SpeechRecognition updated to 3.8.1
2018-01-08 17:39:04 -06:00
Åke 742558046d Python 2/3 compatibility (#1259)
Add Python 2/3 compatibility

====  Tech Notes ====
This allows the main bus, skills and cli to be run in both python 2.7 and
3.5+.

Mainly trivial changes
- syntax for exceptions
- logic for importing correct Queue module
- .iteritems -> future.utils.iteritems when accessing dicts key value
pairs

* Allow audio service to be run in python 3
* Make speech client work with python 3
* Importing of Queue version dependent
* Exception syntax corrected
* Creating sound buffer is version dependant
- Adapt context use range from builtins
- Use compatible next() instead of .next() when walking the skill
directory

* Make CLI Python 3 Compatible
- Use compatible BytesIO instead of StringsIO
- Open files as text instead of binary
- Make sure integer divisions are used

* Make messagebus send compatible
* Fix failing travis

Re-add future 0.16.0

* Make string checks compatible
* basestring doesn't exist in python 3 so it's imported from the "past"
* Fix latest compatibility issues in speech client
- handle urllib
- handle encoding before calling md5

* Make Api.build_json() python 2/3 compatible
2017-12-18 17:24:21 -06:00
Matthew D. Scholefield 2c48610650
Fix FANN dependency by locking to version 2017-12-08 16:50:18 -06:00
Åke 421c37f572
Merge pull request #1226 from ahayworth/feature-replace-google-tts-with-cloud-speech
Add Google Cloud Speech API STT
2017-11-20 09:53:00 +01:00
Matthew D. Scholefield b4226ff27b Remove pystache
On certain platforms it escapes quotes which causes problems. Since we only use it for something as simple as key value replacements, it doesn't make sense to include it as a dependency
2017-11-17 01:36:40 -06:00
Andrew Hayworth 6325c7ae7b Add replacment for Google TTS via Google Cloud Speech API
As noted on the Chromium Dev How-to [1] and on the
SpeechRecognition library docs [2], the Google TTS API
is really not the right API to call. While it's simple,
and allows you to authenticate via a simple token, it is
also limited to a max of *50* requests per day.

That's not a lot. I don't think many people will find that
useful, outside of quick testing (if they can even get an
API key - I couldn't figure out how to generate one that
worked correctly).

This commit introduces a new STT backend, google_cloud, so that
the Google STT backend can be deprecated eventually. To do so, we
needed to:
- Install the Google API Client Library
- Create a new STT class which knows how to turn a provided Google
  JSON credentials file into a string (the SpeechRecognition library
  expects you to pass in the JSON string, not a file path, nor an object).

Any person wishing to use this will need to:
- Enable the Cloud Speech API on the Google Cloud Platform console
- Create a new Service Account Key, and download the credentials to
  a secure location
- Configure that location in mycroft.conf, like so:

  "stt": {
    "google_cloud": {
      "credential" {
        "json": { contents of downloaded credentials }
      }
    }
  }

It's worth noting that the Cloud Speech API has a free quota of
60 minutes per month, which would probably stretch further than 50
individual requests. So for hobbyists, it should be nothing but
a net benefit.

[1] http://www.chromium.org/developers/how-tos/api-keys
[2] https://github.com/Uberi/speech_recognition/blob/master/reference/library-reference.rst#recognizer_instancerecognize_googleaudio_data-key--none-language--en-us-show_all--false
2017-11-15 22:10:00 -06:00
Arron Atchison 9a00ee258a
padatious==0.3.7 2017-11-02 17:07:06 -05:00
aatchison 4d2235692c removed default skills pip requirements from the requirements.txt 2017-11-02 17:03:27 -05:00
Matthew D. Scholefield 9d9d615904 Increment Padatious version to 0.3.7 2017-11-02 15:21:47 -05:00
Matthew D. Scholefield 8dc1dd5ab4 Increment Padatious to 0.3.6
Fixes issue registering entities
2017-10-26 18:59:17 -04:00
Matthew D. Scholefield ef1a6e24c3 Upgrade padatious to fix travis build 2017-10-06 00:06:08 -05:00
Matthew D. Scholefield b6bc4ee482 Increment padatious version number to 0.3.3
This adds a bugfix for empty containers
2017-10-04 21:50:54 -05:00
Matthew D. Scholefield 403aeb9360 Upgrade Padatious to 0.3.2 which brings in entity support 2017-10-03 12:17:02 -05:00
Matthew D. Scholefield a6709033d4 Remove wifi setup 2017-09-29 15:12:47 +09:00
Ethan Ward 1d67b17f00 Update requirements.txt (#1097) 2017-09-18 16:50:24 -05:00
Åke Forslund e182abedea Fix requirements installation 2017-09-18 09:49:17 -05:00
Åke Forslund d750935fe3 Allow any bitrate of audio to the MycroftSTT
====  Tech Notes ====
Setting the convert_rate enforces the output bitrate of the FLAC audio.

This requires update of speechrecognition (3.7.1) and PyAudio (0.2.11)

==== Environment Notes ====
PyAudio => 0.2.11
speechrecognition => 3.7.1
2017-09-13 14:31:36 -05:00
Matthew D. Scholefield 9efcc01ce0 Update padatious 2017-09-06 19:22:33 -05:00
Åke Forslund 0bd6c40694 Add fallback-aiml to defaults
====  Tech Notes ====
fallback-aiml was added to list of default skills in msm and the
requirement aiml==0.8.6 was added to requirements

====  Documentation Notes ====
NONE - description of a new feature or notes on behavior changes

==== Localization Notes ====
NONE - point to new strings, language specific functions, etc.

==== Environment Notes ====
NONE - new package requirements, new files being written to disk, etc.

==== Protocol Notes ====
NONE - message types added or changed, new signals, APIs, etc.
2017-08-18 02:13:01 -05:00
Matthew D. Scholefield dfa6fa2301 Update dependencies for Padatious and allow continuing if pip install fails
This is so that if fann is not installed locally, the user can still continue without padatious and only use adapt
2017-08-17 16:01:11 -05:00
Matthew D. Scholefield 69d17a373b Create PadatiousService and add padatious to requirements.txt 2017-08-17 16:01:11 -05:00
Åke Forslund 0c9f4ec786 Move testing requirements to test-requirements.txt 2017-08-17 02:05:02 -05:00
aatchison 9887009240 Upgrage netifaces in requirements.txt to netifaces==0.10.6 2017-08-02 11:57:57 -05:00
aatchison 80d152a95f restricted mock==2.0.0 2017-08-02 11:42:21 -05:00
Åke Forslund 0e2029d9fe Add support for muting pulse audio streams
when the audio configuration option "pulseaudio" is set to mute running
audio streams will be muted while mycroft is speaking and while mycroft
is listening.
2017-07-31 13:37:18 +02:00
Åke Forslund 581aafc3b6 Add pychromecast and python-vlc to requirements.txt 2017-07-31 13:37:17 +02:00
Steve Penrod e8e0853825 Merge pull request #838 from MycroftAI/feature/display_state_manager
Feature/display state manager
2017-07-21 19:58:07 -05:00
Connor Penrod 41698d4dbe Adds the ExtractDateTime parse function from Christopher (plus relevant tests) (#866)
Adds the ExtractDateTime parse function from Christopher.  When imported from mycroft/util/parse.py, it'll take a sentence like "What's the weather like 5 weeks from next Wednesday?" and will extract a python datetime object for that date.

* Added requirements.txt change for importing dateutil
2017-07-10 15:33:21 -05:00
Michael Nguyen f62a771e28 merge changes 2017-07-06 16:59:26 -05:00
Ethan Ward de4adb955b Remove uuid dependency; has been pulled into python standard library 2017-07-06 12:14:48 -05:00
Ethan Ward 738c181140 Removed unused dependencies from requirements.txt 2017-07-06 12:13:18 -05:00
Åke Forslund 728391427e Add test for PID locks
Catch IOError in delete method if pid-file doesn't exist
2017-06-16 14:17:43 +02:00
Michael Nguyen 7df83897ba added function in api.py to encode png images and display to Mark I faceplate 2017-06-07 17:19:26 -05:00
Åke Forslund 65d0943d4d Update pyOpenSSL version to 16.2.0
16.0.0 seem to have problems with newer versions of system installed
openSSL stack. Discussion in issue #705

Thanks to BoBeR182 for providing this solution.
2017-05-18 16:53:10 -03:00
penrods eff7b1bc6f Fix for issue #665. Synching requirements.txt versions with various skills- repos as a stopgap. 2017-04-14 18:18:13 -07:00