Commit Graph

242 Commits (refactor/python-detect)

Author SHA1 Message Date
Michael Nguyen e05765bc12 change HTTPError exception into RequestException for a more general case 2018-04-26 15:23:10 -05:00
Michael Nguyen fbca77d8fc add try catch for failed remote fetch location 2018-04-26 14:39:53 -05:00
Åke 56a7e4cd01
Merge pull request #1512 from forslund/feature/whitelist-spotify
Re-enable spotify-skill.
2018-03-29 13:58:37 -05:00
Åke Forslund f94ee8d795 Load the volume skill before updates
Allows the user to adjust the volume during pairing
2018-03-29 12:13:28 -05:00
Åke Forslund 7332c3b344 Re-enable spotify-skill.
Remove spotify-skill from the black list
2018-03-29 18:47:20 +02:00
Åke dc538ecf60 Blacklist spotify-skill (#1479)
Emergeny blacklist to kill the poorly behaving Spotify OAUTH
2018-03-14 13:41:35 -05:00
Matthew D. Scholefield 9eb458360b Fix accessing non-existent attribute in except blocks
.request.status_code is only available to HTTPError objects
2018-03-14 00:41:47 -05:00
Matthew D. Scholefield 7e64b49fa3 Replace HTTPError with RequestException
This prevents things like a ReadTimeout exception crashing the speech service
2018-03-07 10:57:13 -06:00
Matthew D. Scholefield cdb1416252 Check for pairing before performing routine polling (#1451)
This gets rid of error messages during the pairing process
2018-02-28 15:41:23 -06:00
Matthew D. Scholefield 0b9dc9c630 Fix platform comment in config 2018-02-27 14:56:04 -06:00
penrods e52a503345 Improve docs within mycroft-conf
Clarified the merging process.  Also remove unused skill-sepecif settings.
2018-02-23 10:49:54 +01:00
Åke bda8a0cc94 Skip skill update on startup if recent (#1392)
* Skip skill update on startup if recent

Skills aren't updated on startup if the last update was less than 12
hours ago.

- msm adds a .msm file in the skills directory with a timestamp and a
    list of the skills installed by default
- the UPDATING screen message is moved to the SkillManger when direct
    update is scheduled.
- On internet connection the skill update time is scheduled
- Skills (other than priority skills) are not loaded until
- The timeout for when direct update is necessary is settable in the
    config.
internet connection has been verified (message on messagebus)
2018-02-15 02:43:06 -06:00
Åke d9c288129c Add support for deepspeech_server (#1370)
* Add support for deepspeech_server

deepspeech_server is a server running deepspeech (obviously). It's quite
easy to install and run (package available in pip and then a config file
pointing to the model)

This pr adds the DeepSpeechServerTTS class, a STT interface allowing
mycroft to use one of these servers.

config needed:

  "stt": {
    "module": "deepspeech_server",
    "deepspeech_server": {
      "uri": "http://IP-ADDRESS:PORT/stt"
    }
  }

* Add deepspeech_server example to mycroft.conf
2018-01-25 14:02:42 -06:00
Jarbas 5541c4717f is_remote_list check (#1365)
use is_remote_list() to verify that a list needs to be converted for use in mycroft.
2018-01-18 12:12:02 +01:00
Jarbas 905e5397ed bing + houndify stt (#1229)
Add bing and Houndify stt backends
2018-01-09 13:41:26 +01:00
jarbasai 6bba0f0ae4 Optional auto update 2018-01-03 10:09:25 +01: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
Åke Forslund 9b0a4d72fe Add "debug" to default config 2017-12-07 10:52:14 -06:00
JarbasAI 53481a265d allow phonemes in any lang (#1264)
Add possibility to set language per hotword. If not specified will use global language setting.
2017-11-29 10:56:35 +01:00
Matthew D. Scholefield 5694b7f645 Extract precise server settings into config file
This allows changing the server in the future without an upgrade
2017-11-09 13:36:03 -06:00
Åke 15c4c94a71
Merge pull request #1207 from MycroftAI/bugfix/record-length
Fix wake word record length
2017-11-09 19:38:22 +01:00
Matthew D. Scholefield d67f8b4bcf Change unit back to milliseconds and length back to 120ms 2017-11-09 11:30:30 -06:00
Matthew D. Scholefield dba2c540af Fix wake word record length 2017-11-08 14:21:07 -06:00
Åke Forslund 9ce3c32688 Allow loading config directly from strings
====  Tech Notes ====
Before the refactoring of the configuration system the
ConfigurationManager allowed loading config files directly from strings.
This commit restores that functionality
2017-11-07 13:28:46 +01:00
Åke Forslund 9e67ba5614 Fix incorrect reference in patch 2017-11-03 09:38:09 +01:00
Åke Forslund f291e2704a Add missing inflection import
====  Tech Notes ====
inflection was not imported in configuration
2017-11-02 16:19:52 +01:00
penrods 433729a62f Fixes for startup when not paired
Several attempts to connect to the backend fail before pairing has
been completed, which was producing errors that prevented the
messagebus and audio services from starting up.

Now the DeviceApi().is_subscriber property returns False if the
check fails, assuming unpaired == not subscribed.

Also stopped logging the call stack on the HTTPError exception, it
made an expected situation look like a major crash.
2017-10-27 21:06:08 -05:00
Åke Forslund 1f4c98f29c Fix PEP-8 2017-10-26 19:02:32 -04:00
Åke Forslund 52a89327fe Fix storing settings in enclosure client
====  Tech Notes ====
- Fix save in enclosure client
- Add tests for save and merge
2017-10-26 19:02:32 -04:00
Åke Forslund 4e6fa64033 Add comptibility for old ConfigurationManager
====  Tech Notes ====
For example skill-installer references ConfigurationManager directly and
would fail if the old class isn't available
2017-10-26 19:02:32 -04:00
Åke Forslund b067e31e54 Fix failing travis and codacy
====  Tech Notes ====
- removed old main.py
- replace reference to ConfigurationManager in api tests
- reset configuration after use in configuration test
- Pep-8 issue
2017-10-26 19:02:32 -04:00
Åke Forslund 3e878bd59f Replace ConfigurationManger with Configuration 2017-10-26 19:02:32 -04:00
Åke Forslund ea020eab4f Refactor configuration handling
====  Tech Notes ====
- Rewrite of configuration module. Reduced number of calls and simplified
logic.
- Patched configs now survives reload of config
2017-10-26 19:02:32 -04:00
Augusto Monteiro 'Sparky beaea7557b Fixing random extra space 2017-10-11 14:36:12 -05:00
Augusto Monteiro 'Sparky e39c38ff3c Updating version when device is update 2017-10-11 14:36:12 -05:00
penrods 8f2e5d9498 Change to Apache 2.0 license from GPLv3.0
This commit officially switches the mycroft-core repository from
GPLv3.0 licensing to Apache 2.0.  All dependencies on GPL'ed code
have been removed and we have contacted all previous contributors
with still-existing code in the repository to agree to this change.

Going forward, all contributors will sign a Contributor License
Agreement (CLA) by visiting https://mycroft.ai/cla, then they will
be included in the Mycroft Project's overall Contributor list,
found at: https://github.com/MycroftAI/contributors.  This cleanly
protects the project, the contributor and all who use the technology
to build upon.

Futher discussion can be found at this blog post:
https://mycroft.ai/blog/right-license/

This commit also removes all __author__="" from the code.  These
lines are painful to maintain and the etiquette surrounding their
maintainence is unclear.  Do you remove a name from the list if the
last line of code the wrote gets replaced?  Etc.  Now all
contributors are publicly acknowledged in the aforementioned repo,
and actual authorship is maintained by Github in a much more
effective and elegant way!

Finally, a few references to "Mycroft AI" were changed to the correct
legal entity name "Mycroft AI Inc."

==== Fixed Issues ====
#403 Update License.md and file headers to Apache 2.0
#400 Update LICENSE.md

====  Documentation Notes ====
Deprecated the ScheduledSkill and ScheduledCRUDSkill classes.
These capabilities have been superceded by the more flexible MycroftSkill
class methods schedule_event(), schedule_repeating_event(), update_event(),
and cancel_event().
2017-10-04 01:28:44 -05:00
Matthew D. Scholefield 0569ba40f7 Use opt in value to record wake words 2017-10-03 13:24:09 -05:00
Matthew D. Scholefield da448c4bdd Change update to merge_conf
This prevents replacing sub-dicts rather than recursively merging
2017-09-29 01:39:16 -05:00
Matthew D. Scholefield 4c1a0d471b Fix configuration manager saving 2017-09-28 22:29:17 -05:00
Matthew D. Scholefield 5e392f34aa Optimize imports
Remove unused imports and group local vs external alphabetically
2017-09-18 16:07:50 -05:00
Matthew D. Scholefield cfdc405da5 Add new LOG class 2017-09-18 13:56:06 -05:00
Åke Forslund a100d2a6dc Refactor priority skill loading
====  Tech Notes ====
- Set pairing as a priority skill by default
- Move priority loading to separate function
2017-09-15 06:48:39 -05:00
Jarbas 82b49c1397 Jarbas work adding priority skill loading 2017-09-15 06:48:39 -05:00
Åke Forslund bec91c2c30 Disable wake word upload by default
====  Tech Notes ====
Change default config to disable wakeword upload.
2017-09-15 06:30:04 -05:00
Åke Forslund 03a5c5eae5 Remove extra phoneme set
====  Tech Notes ====
In addition to the normal hot word there was an extra set of "global
phonemes"
2017-09-15 06:29:25 -05:00
Matthew D. Scholefield af8826a1c7 Learning option for sharing wake word recordings (#1039)
* Add automatic uploading of wake words and learning option in enclosure client

* Spawn new thread and remove ping
Spawning a new thread eliminates the need to ping and eliminates additional latency. In addition, the return code of scp is now used to determine whether to delete the wake word

* Increment enclosure version number
2017-09-14 23:58:32 -05:00
Jarbas e39d013282 Hotword factory (#1062)
* Create hotword_factory.py

* hotword factory

* hotword factory

* hotword factory

* pass language

* HotwordEngine base class

* standup_word config

* missing ,

* hotword factory

* missing ,

* HotWordEngine template

* hotword factory

* pep8

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* hotword factory

* fix unittest

* fix conflicts

* recognizer dir fix

* fix path

* fix path

* correct path

* fix path for realz

* fix path for real realz

* path fixed, end of brain fart

* fix phoneme lenght

* compatibility

* num phonemes for non pocketsphinx modules

* pep8

* bug fix

* bug hunt
2017-09-14 23:34:16 -05:00
Åke Forslund 0c8aaa2664 Ignore enclosure.mouth.display message by default
====  Tech Notes ====
Add 'enclosure.mouth.display' to ignore_logs default configuration since
it will get called alot and spam the skills log.
2017-09-07 15:59:34 +02:00
Jarbas 684c08d4c0 Allow internal configuration changes PR #980
====  Tech Notes ====
Allow cached config to be updated from messagebus, from a skill or other connected software. Listens for configuration.patch signal and updates loaded config.

==== Protocol Notes ====
new messagebus signal configuration.patch
2017-08-22 14:50:31 +02:00
Matthew D. Scholefield 69d17a373b Create PadatiousService and add padatious to requirements.txt 2017-08-17 16:01:11 -05:00
Åke Forslund dc8b01f61f Fix mute mycroft-voice
====  Fixed Issues ====
#978

====  Tech Notes ====
We name the stream insted of the client. Now mycroft-voice is excluded
from mute.
2017-08-09 17:28:42 +02:00
Matthew D. Scholefield fee8ffab59 Change skill-wolfram-alpha to fallback-wolfram-alpha
This is necessary because of the API breaking change
2017-08-03 13:49:32 -05:00
Åke Forslund ddf0e3578e Remove volume parameter from default wav play cmd
==== Fixed Issues ====
#943
2017-08-02 08:08:42 +02: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 e1eb61e9d8 Update default setting to new standard 2017-07-31 13:37:17 +02:00
Åke Forslund 51b98a11b7 Fix trailing comma in default config 2017-07-31 13:37:17 +02:00
Åke Forslund e55cd018f2 Activate default-backend option 2017-07-31 13:37:17 +02:00
Åke Forslund 6d36cf4cd1 Add default configuration 2017-07-31 13:37:16 +02:00
Teagan Glenn e0a88667ee Configs for kaldi 2017-07-05 10:02:35 -06:00
Jarbas d4177d43a0 Update mycroft.conf 2017-06-29 21:42:05 +01:00
Jarbas 6b9c2d8e74 add blacklisted skills 2017-06-29 20:39:09 +01:00
Åke Forslund 3ff2b1b787 Add local cache fallback for remote config. 2017-06-14 11:33:29 +02:00
kfezer 104dda1ab1 Merge pull request #774 from forslund/feature/update-config
Update TTS, STT and listener when websettings are changed
2017-05-30 16:45:42 -07:00
Åke Forslund ee90e8f50e Make wake word listener have length depending on number of phonemes 2017-05-26 07:50:49 +02:00
Åke Forslund 731fb56625 Use normal load method to update configs.
This will apply normal order of config. i.e. a remote config can't overwrite local configurations.
2017-05-20 21:38:23 +02:00
Augusto Monteiro 'Sparky cbd2bf99d8 #706 - Using configuration to get msm bin 2017-05-18 16:51:17 -03:00
SoloVeniaASaludar 36926953d6 + 2017-05-18 16:51:17 -03:00
Art McGee f5ec8b74a3 Changes to record mycroft wake word when configured to do so. (#538)
NOTE: this doesn't check for disk space and doesn't clean up
file stored in /tmp/ called mycroft_wake_sucess<time>.wav

TODO: some cleanup should be considered.

Signed-off-by: Art McGee <amcgee7@jaguarlandrover.com>
2017-05-18 16:49:07 -03:00
SoloVeniaASaludar 2b50b90ccb bugfix/issue-688 2017-05-18 16:49:07 -03:00
SoloVeniaASaludar cf82d7db34 + 2017-05-18 16:49:07 -03:00
Augusto Monteiro 'Sparky 650df97f0e #683 - removing msm path configuration 2017-05-18 16:49:07 -03:00
Steve Penrod 60abb41fc6 Fix for issue #659, broken git install after recent changes
There are several issues with the changes recently made to break out
Skills from mycroft-core.
* The subdirectory mycroft/skills/intent/ is left behind when you do
  a pull, so the change to core.py that tries to
  "import mycroft.skills.intent" gets confused.  I renamed the file
  intent.py to intent_service.py
* Added a bunch of comments
* Made a bunch of functions "private", using the leading _
* The MSM install was failing.  Still working on that, but we should
  probably make msm.sh a part of mycroft-core instead of its own
  repo.
* Restored some mycroft.conf values that I noticed got lost during
  an automatic merge.
2017-04-14 01:53:29 -07:00
penrods 00eeadd9df Curse you pep8! :) 2017-04-13 12:43:19 -07:00
penrods 35a213d4db The configuration values were poorly documented. See issue #653
This addresses this in several ways:
* Created mechanism to load 'commented' JSON (using '//' or '#' comments on a single line)
* Embedded comments into the mycroft.conf, indicating use, legal values, and where they get overridden
* Create ConfigurationManager.instance() static method to replace ConfigurationManager.get().  This produces more readable code like:
  ConfigurationManager.instance().get("value") instead of ConfigurationManager.get().get("value")
* Made _ConfigurationListener 'private'
* docstring'ed things
2017-04-13 01:09:50 -07:00
JarbasAI 805aefc0d7 pep8 2017-04-11 16:24:14 +01:00
JarbasAI faf2e9f3b3 change loading order
load_order = [DEFAULT_CONFIG, REMOTE_CONFIG, SYSTEM_CONFIG, USER_CONFIG]
2017-04-10 20:29:54 +01:00
Augusto Monteiro 'Sparky 1087d0e3b4 #636 - Adding loglevel 2017-04-06 17:14:18 -07:00
Augusto Monteiro 'Sparky b35c012692 #636 - Adding ignore logs 2017-04-06 17:14:18 -07:00
Augusto Monteiro 2b96f2dd19 #527 - Adding msm install script and renaming skill 2017-03-28 11:20:00 -07:00
kfezer 28f452bd6b Update mycroft.conf 2017-02-15 15:37:52 -06:00
Karl Fezer a691003071 modified: mycroft/configuration/mycroft.conf
modified:   mycroft/util/__init__.py
2017-02-15 15:37:52 -06:00
penrods 5f8775883a Refining new "listening" sound mechanism
This adds several refinements to the listening sound mechanism added by:
* Added a default sound file
* Allowing various ways to override "resource files" for customization
* Moved the sound configuration path from "confirm_ding" to
  "sounds" > "start_listening"
* Also added "sounds" > "end_listening" configuration for the future

This submission adds the new mycroft.util.resolve_resource_file(res_name)
method.  This method takes a name such as "snd/start_listening.wav" and
looks (in order):
* For an absolute path <res_name>
* For ~/.mycroft/<res_name>
* For /opt/mycroft/<res_name>
* For mycroft/res/<res_name> within the source package
2017-02-15 15:37:52 -06:00
Arron Atchison 990dd27c5e Revert "Refining new "listening" sound mechanism (#503)" 2017-02-15 15:37:52 -06:00
Steve Penrod a53a5bf0a6 Refining new "listening" sound mechanism (#504)
This adds several refinements to the listening sound mechanism added by:
* Added a default sound file
* Allowing various ways to override "resource files" for customization
* Moved the sound configuration path from "confirm_ding" to
  "sounds" > "start_listening"
* Also added "sounds" > "end_listening" configuration for the future

This submission adds the new mycroft.util.resolve_resource_file(res_name)
method.  This method takes a name such as "snd/start_listening.wav" and
looks (in order):
* For an absolute path <res_name>
* For ~/.mycroft/<res_name>
* For /opt/mycroft/<res_name>
* For mycroft/res/<res_name> within the source package
2017-02-15 15:37:52 -06:00
tmajibon 647f90f836 Listen Confirmation Ding (#472)
* Listen confirmation

If enabled, will play a wave file to confirm that Mycroft is listening

* Listen confirmation ding config options

* Rename config option

* Update mycroft.conf

* Type: Rename config option

* Missing imports

Whoops, forgot them (was copying edits since I didn't have my dev environment set up)

* Removing unnecessary import functions
2017-02-15 15:37:52 -06:00
Augusto Monteiro fc71c9fbcc #487 - Updating synchronize configuration time 2017-02-01 23:40:13 -03:00
Augusto Monteiro 3e092554e3 #487 - Checking if location exists if doesn't say location not found dialog 2017-02-01 23:40:13 -03:00
Augusto Monteiro d1068ab3ac #487 - Adding default values for location on weather skill 2017-02-01 23:40:13 -03:00
Augusto Monteiro bed6175b7d #487 - Saving all location object in the configuration instead of only the name 2017-02-01 23:40:13 -03:00
Augusto Monteiro 540cd893c2 #487 - Integrating location microservice with mycroft core 2017-02-01 23:40:13 -03:00
penrods 6b7a514cdb Fix for issue #416
Type on mycroft.conf had set both min and max volume to 100.
2016-12-20 14:18:14 -06:00
Jonathan D'Orleans 2503fb1450 Issues 351 - Tartarus Integration
- Stopping enclosure in case of incompatibility with Mark 1
- Preventing stop to be called twice in enclosure and wifi processes
2016-12-17 17:57:58 -05:00
Augusto Monteiro 9f6ecda338 Issues 395 - Creating not.paired event 2016-12-17 10:27:01 -05:00
Augusto Monteiro 657123577d Issues 395 - Creating configuration skill to sync tartarus 2016-12-17 10:27:01 -05:00
Jonathan D'Orleans d80e83d575 Issues 350 - Formatting date and time 2016-12-17 10:27:01 -05:00
Jonathan D'Orleans 416191e598 Issues 350 - Synchronizing local and remote configuration 2016-12-17 10:27:01 -05:00
Jonathan D'Orleans f781e1db02 Issues 350 - Ensuring Listener has sampleRate and channels settings 2016-12-17 10:27:01 -05:00
Jonathan D'Orleans 558425b27d Issues 356 - Configuring wifi setup 2016-12-17 10:27:01 -05:00
Jonathan D'Orleans bf9d29ab67 Issues 356 - Adding STT multi credentials support and fixing proxy flag type 2016-12-17 10:16:29 -05:00
Jonathan D'Orleans 58ba7f2558 Issues 356 - Tartarus integration
- Adding proxy flag to be used in WA and OWM skill
- Integrating Tartarus login session
- Refactoring OWM to use Tartarus api and removing owm repackaging
- Fixing WA data response
2016-12-17 10:16:29 -05:00
Jonathan D'Orleans 4c1ba4e337 Issues 356 - Rebasing with master 2016-12-17 10:16:29 -05:00
Jonathan D'Orleans c71c054258 Issues 351 - Creating STT module and classes 2016-12-17 10:15:24 -05:00
Jonathan D'Orleans 6749852320 Issues 351 - Setting mycroft as default STT engine 2016-12-17 10:15:24 -05:00
Jonathan D'Orleans fe5b96e051 Issues 351 - Updating STT configuration 2016-12-17 10:15:24 -05:00
Jonathan D'Orleans 935e2699ba Issues 351 - Merging metrics with server configuration 2016-12-17 10:14:42 -05:00
Jonathan D'Orleans db9c12c122 Issues 351 - Merging service and client web socket configuration 2016-12-17 10:14:42 -05:00
Jonathan D'Orleans 9e982aa114 Issues 351 - Fixing Listener variables types 2016-12-17 10:12:10 -05:00
Jonathan D'Orleans 8af0acff76 Issues 351 - Renaming auto_update to update 2016-12-17 10:12:10 -05:00
Jonathan D'Orleans 3304474a22 Issues 354 - Pairing device with remote server
- Getting pairing code from server
- Treating Api response after request
- Simplifying enclosure mouth events control, upgrade and test process
2016-12-17 10:12:10 -05:00
Jonathan D'Orleans 3280d57b18 Issues 351 - Tartarus Integration
- Creating API to communicate with remote server
- Updating Identity data
- Adapting RemoteConfiguration load to new server
2016-12-17 10:11:15 -05:00
Jonathan D'Orleans 0ecb369397 Issues 351 - Splitting date and time format 2016-12-17 10:11:15 -05:00
Arron Atchison 1be93c2963 Set WiFi setup to false
... so it doesn't happen every time it is installed.
2016-09-22 10:22:47 -05:00
Arron Atchison c52f92f949 Feature/issues 356 (#362)
* 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
2016-09-19 12:28:58 -05:00
Ethan Ward 27bc4d255e Merge branch 'master' into feature/issues-303 2016-08-16 13:57:46 -05:00
Matthew D. Scholefield fde0f32863 Hardware test (#305)
* 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
2016-07-27 15:25:31 -05:00
Wolfgange3311999 b648492331 Added min and max volumes read from config 2016-07-26 10:12:14 -05:00
Arron Atchison 592b291116 Merge branch 'master' into feature/use-compiled-ap-voice 2016-07-14 13:34:18 -05:00
Ethan Ward 0d8567c9c1 Revert "Feature/use compiled ap voice" (#270) 2016-07-07 18:44:06 -05:00
Matthew D. Scholefield a43b7b3ace Add new listener config options- Fixes #260 (#266)
* 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
2016-07-07 18:24:52 -05:00
Arron Atchison 58e81b04f7 removed Alan's voice from mycroft core in preperation for a mimic release with the precompiled voice (#269) 2016-07-07 16:37:21 -05:00
aatchison 74ac80b00a removed Alan's voice from mycroft core in preperation for a mimic release with the precompiled voice 2016-06-23 16:34:24 -05:00
Jonathan D'Orleans 81be192801 Issues 209 - Keep user configuration by default (#211) 2016-06-23 16:42:46 -04:00
the7erm 11726d7d67 #131 added if for situations where the host is empty (#132)
* #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
2016-06-20 15:44:42 -04:00
Eugene R. Miller fbdf3b6e79 #161 refactored user dir 2016-06-18 13:02:25 -06:00
Arron Atchison 0eda59dd9e ok, this works, but not for packaging
I have another approach to try.
2016-06-17 15:06:31 -05:00
aatchison 8ad51a758b removed '.' from mimic voice path 2016-06-17 14:48:04 -05:00
aatchison 4068636005 Alan Pope voice runs by default, no idea what will happen when I package it 2016-06-17 13:20:11 -05:00
aatchison f319fb37c4 Revert "custom skills #161" 2016-06-17 11:40:21 -05:00
Eugene R. Miller 520c28bae2 #161 fixed pep8 issue 2016-06-17 03:05:22 -06:00
Eugene R. Miller 6efd787945 #161 added custom skills 2016-06-17 03:03:11 -06:00
Jonathan D'Orleans fa5893cddb Issues 96 - Configuration
- Raising exception for invalid configuration
- Adding more unit tests
2016-06-09 18:27:04 -04:00
Jonathan D'Orleans 6b5092c4c8 Issues 96 - Configuration
- Checking RemoteConfiguration config type
- Returning config for convenience
2016-06-09 18:26:20 -04:00
Jonathan D'Orleans e75d51b296 Issues 96 - Adding ConfigurationLoaderTest 2016-06-09 18:26:20 -04:00
Jonathan D'Orleans c46bc43e72 Issues 96 - Moving configuration to init 2016-06-09 18:26:10 -04:00
Jonathan D'Orleans 24232a6b5b Issues 96 - Ensuring ConfigurationManager use instead of RemoteConfiguration 2016-06-09 18:25:50 -04:00
Jonathan D'Orleans efff3dbda6 Issues 96 - Renaming get_config to get only 2016-06-09 18:25:37 -04:00
Jonathan D'Orleans 781c49ecb9 Issues 96 - Loading configuration from args in Skill Container 2016-06-09 18:25:37 -04:00
Ryan Sipes 93dad37b81 Fix to Alarm Distortion
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.
2016-05-27 12:48:37 -05:00
Ryan Sipes 8f2c451938 Fixed Missing License Headers on All Files.
GPL LIcense added to the top of each python file.
2016-05-26 11:16:13 -05:00
Arron Atchison e781fc1be9 Use mimic as default TTS, updated mycroft/configuration/default.ini 2016-05-23 15:05:20 -05:00
Leo Arias d618676089 Issues-4 - Fix pep8 errors. 2016-05-23 17:23:47 +00:00
Arron Atchison 6e42bb1736 In the 1970s computer users had to understand the arcane syntax of the machines they used. They programed their computers using the machine's native language and hardly gave it a thought.
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
2016-05-20 09:16:01 -05:00