Commit Graph

2688 Commits (979c02158d95ad3cbdd17a14c0f3d6f415ae58fa)

Author SHA1 Message Date
Steve Penrod 0e61700e13 Allow reference dates with tzinfo (#1695)
* Allow reference dates with tzinfo

The extract_datetime_en() function could cause an exception if the currentData parameter contained tzinfo.
2018-07-19 10:48:39 +02:00
f-e-l-i-x 9e2dc9628e German formatting for Wolfram alpha skill responses in format_de.py (#1669)
Response formatting for German language ordinals depending on cases/prepositions for dates
"am 1. März" -> "am ersten März" (on the first of March)
"der 1. März" -> "der erste März" (the first of March)
"1. März" -> "erster März" (first of March)

Response formatting for mathematical results
"10 ^ 2" -> "10 hoch 2" (ten to the power of two)

Can be tested via the corresponding test_format_de or by using wolfram alpha skill:
"Was ist die Fläche von Canada"
"Wann ist George Washington geboren"
2018-07-19 02:44:33 -05:00
Åke c140d5b889
Merge pull request #1690 from MycroftAI/feature/ask-yes-no
Add new MycroftSkill.ask_yesno() method
2018-07-19 09:34:32 +02:00
Steve Penrod dd807b2b2e
Improve the standalone skill tester (#1683)
* Improve the standalone skill tester

Using the skill tester was difficult -- the skill author had to copy a file
locally, and figuring out what was wrong with a test wasn't obvious.  This
change improves it in several ways:
* The tester can now be run as a module, allowing any skill to be tested
  by entering the skill folder and running:
  ```
  python -m test.integrationtests.skills.runner
  ```
  Optionally you can pass along a path to the skill.
* The runner will display help with a '--help' parameter, pointing to
  documentation on creating the tests.
* Information on where the tests are expected is printed during execution
* The *.intent.json was reduced to simply *.json since this is under an
  ```test/intent/``` folder already.  (This is backwards compatible for
  existing intent tests.)
* The failing rule is now displayed at the bottom of the run report, making
  it easier to figure out where issues exist during test creation
* Headers and terminal colors are used in the output, making it easier to
  visually parse the output from the execution of tests.

====  Documentation Notes ====
Update the skill documentation to reflect using
  python -m test.integrationtests.skills.runner
instead of copying the skill_developers_testrunner.py.

NOTE: This does have to be performed within a developer venv in order to
access the test suite.  Consider moving this into a mycroft-core-dev package
in the future for Mark 1 / Picroft users.

* Quieting warning from Codacy

* Replace single_test with runner

Adds support for "test_env" to the runner script

* Update the discover_test to match the runner

- catch intent tests from *.json files
- add failure msg to assert

* Turn off color using MST_NO_COLOR env variable
2018-07-19 02:23:22 -05:00
Åke 5cfea7f2d9 Update default config (#1648)
- Remove unused entries for skills
- Correct the entry for the NewsSkill
2018-07-19 02:08:23 -05:00
Åke ad5ebcf63d Bugfix/unmunge (#1688)
* Fix cases where the unmunge misses keywords

The unmunge would invariably miss keys due to the fact that the dict is modified while being iterated. This breaks out the keys into a list before iterating through them to ensure that all original keys are checked.

* Clean up the unmunge function slightly
2018-07-19 02:03:43 -05:00
penrods b005ba6f59 Allow dialog param of get_response() to be a spoken string
This makes the dialog parameter dual-purpose.  It can be used as a
literal spoken string, or a dialog resource.  In the future the
announcement parameter can be retired.
2018-07-19 02:00:17 -05:00
Åke 031daac17b
Merge pull request #1693 from forslund/feature/better-time-parse-and-fix-date-formatting
better time parse and fix date formatting #1681 + #1689
2018-07-18 21:31:51 +02:00
Matthew D. Scholefield e73c6c8e09
Merge pull request #1694 from MycroftAI/mimic2 2018-07-18 13:11:59 -05:00
Michael Nguyen 1ab9ae3889 Add Mimic 2 TTS
* added asynchronous request to mimic2 backend to break up audio into chunks

 * add chracter threshold

 * refactored split_by_punctuation

 * add punctuation function to sentence chunks

 * fix spelling

 * some more spelling

 * added mimic2 in mycroftconf

 * removed unused imports
2018-07-18 13:10:07 -05:00
Michael Nguyen fb2a6209ee
Merge pull request #1506 from forslund/feature/vlc-update
Feature/vlc update
2018-07-18 11:28:33 -05:00
Matthew D. Scholefield 823bfd2828
Merge pull request #1687 from forslund/feature/cleanup-setup
Clean up setup scripts
2018-07-18 10:45:21 -05:00
Matthew D. Scholefield 0540229cc4
Merge branch 'dev' into feature/cleanup-setup 2018-07-18 10:44:41 -05:00
Matthew D. Scholefield 5ee51e048b
Merge pull request #1671 from forslund/bugfix/audio_test
Fix startup of audio-test
2018-07-18 10:32:13 -05:00
Åke Forslund a14a8b6d7e Remove setup.py's reliance on the mycroft modules
- Adds missing fields, such as description, author and e-mail
- Removes the old setup_base.py from the mycroft.util module
2018-07-18 17:24:26 +02:00
Åke Forslund b4b78fa43a correct testcases 2018-07-18 13:46:27 +02:00
penrods 4f1b6abd4f Improve date-time formatting in English
The pronunciation of English date-time was awkward without the word "the"
for dates like "Monday, the 16th at eight a.m."

Also corrected the tests to use the newer lower case "a.m." instead of "AM"
2018-07-18 13:46:27 +02:00
penrods 9bce9557cc Improve pronunciation for nice_time_en()
Switched from "AM" to "a.m.", and "PM" to "p.m".  These are pronounced better
in Mimic, and are also the more normally accepted ways of writing the
abbreviations for ante meridiem and post meridiem (at least according to the
AP and Chicago Style guides).
2018-07-18 13:46:27 +02:00
Steve Penrod 718703c94b Silence Codacy complaints
More import cleanup
2018-07-18 13:46:27 +02:00
Steve Penrod 1029881a78 Minor code cleanup
* Add support for "o'clock" variations
* Clean up imports
* Simplified some overly-complex code
* Normalize line endings
2018-07-18 13:46:27 +02:00
Steve Penrod 3624680698 Enhance extract_datetime(), add time utilities
Many cases that were missed in the unittests for extract_datetime()
from the original source.  Restored those tests and made code
adjustments to support them all.

Also adding the mycroft.util.time module.  This supports:
* mycroft.util.time.default_timezone()
  Returns the user-configured timezone based on location
* mycroft.util.time.now_utc()
  Returns the time in UTC
* mycroft.util.time.now_local()
  Returns the time in the user's timezone
* mycroft.util.time.to_utc()
  Converts to UTC
* mycroft.util.time.to_local()
  Converts to user's timezone

NOTE: Several skills should be updated to use these now.

==== Fixed Issues ====
Several issues for skills regarding parsing of "today"

====  Documentation Notes ====
Note the new module:  mycroft.util.time

==== Localization Notes ====
Localized versions of extract_datetime() likely need to be
updated, as most were based on the original English implementation
2018-07-18 13:46:27 +02:00
penrods 6aa83418ec Correct voc files (copy/paste error) 2018-07-17 01:47:17 -05:00
penrods 18ab343b80 Add new MycroftSkill.ask_yesno() method
New function allows simple yes/no queries to be asked, capturing common
affirmations (e.g. "yes", "yeah", "yep", "sure", ...) and rejections
("no", "nope", ...) that are consistent across all skills.

The method will return a normalized 'yes', 'no' or whatever else is spoken
for further parsing.  None is also possible.

This also adds the MycroftSkill.is_match() method to assist in matching
translated synonyms within an utterance.
2018-07-17 01:35:55 -05:00
jwallace00 ccf52f7ace MAXCORES bug fix in dev_setup.sh (#1684)
* Ensure number of  CORES is set to 1 at a minimum when building mimic in dev_setup.sh
2018-07-16 07:10:04 +02:00
Åke 9c8c6b8852
Merge pull request #1686 from JarbasAl/feature/padatious_enable_disable
Make it possible to enable/disable padatious intents
2018-07-14 11:52:12 +02:00
JarbasAI 0e121f8bcd allow disabling intent registered with decorator in initialize (#1685) 2018-07-14 11:36:16 +02:00
Åke Forslund 4b2a25df2c Fix audiotest launching
Launch using python -m instead of python SCRIPT_PATH
2018-07-14 08:43:17 +02:00
Åke Forslund fad890ff39 Clean up setup scripts
- Remove setup scripts for mycroft-skills-sdk since it's not used anymore
- Rename mycroft-base-setup.in/MANIFEST.in to setup.py and MANIFEST.in
- Remove skill-container, since it hasn't been used or kept up to date since 17.08 and the cli commands to remove and activate skills is easier to work with

==== Environment Notes ====
Small update of the packaging script is needed due to this change
2018-07-14 08:36:50 +02:00
jarbasal 56efe5e489 padatious enable/disable 2018-07-14 04:31:39 +01:00
jarbasal c4cdb85599 padatious enable/disable 2018-07-14 04:00:21 +01:00
Steve Penrod 223c88b4dd CLI Updates: Restore VT100 support, help, etc. (#1667)
* Restored VT100 function key support
* ESC now clears the entry line
* Spoken commands now become part of the history
* Enhanced help screen with auto word-wrap
* Bugfix: "Show meter" setting didn't persist, now it does
2018-07-12 09:38:29 +02:00
Steve Penrod bcb1e795ef Add 'venv-activate.sh' script (#1682)
Add 'venv-activate.sh' script

This script in the root makes it easier for devs to discover the
virtual environment which Mycroft should run under.  Virtual
environments are new to many, so the commands aren't obvious even
if they are only one liners.

====  Documentation Notes ====
Should probably be mentioned in the Getting Started docs for
Github users.  This mirrors the 'mycroft-venv-activate' alias found
under Mark 1/Picroft.
2018-07-12 09:15:17 +02:00
Åke 14349cfb25 Remove stray lock.release() (#1680)
This fixes a stray lock.release() causing a silent

RuntimeError: release unlocked lock

after TTS execution but just before reporting the timing for the TTS system.
2018-07-10 12:28:45 -05:00
Åke Forslund 0ae9ccda9a Make vlc ducking configurable 2018-07-10 11:21:33 +02:00
Åke Forslund 8f979df5b1 Reduce log level to debug 2018-07-10 11:21:33 +02:00
Åke Forslund 78dbdf1fb0 Restore volume when stopping playback 2018-07-10 11:20:41 +02:00
Åke Forslund bb2c727485 Add comments and basic docstrings 2018-07-10 11:19:54 +02:00
Åke Forslund 775c536de5 Fix vlc lowering volume while not playing. 2018-07-10 11:19:54 +02:00
Åke 23fcc631c4 Bugfix mycroft-use github (#1659)
* Fix startup scripts

- change start.sh to the new start-mycroft.sh
- fix startup of messagebus service
- fix startup of enclosure

* Fix running dev_setup.sh as root

Use --allow-root when calling dev_setup.sh

* Correct default directory for user

On the Mark-1 the script would create the mycroft-core repo in /home/root instead of /root when running the script as root

* Skip mimic installation correctly

* Allow doing the github install without root

Running mycroft under root stumbles into issues accessing the audio. allowing unstall under pi user is also more intuitive.

* Change ownership of the webcache

* fix starting/stopping wifi-service

* Fix switching permissions

* Correct startup order

- load messagebus before enclosure
- reboot to workaround audio input issue

* Disable updates when switched to github install

* Fix identity update

identity updates weren't transfered back to the mycroft user since the linked file was overwritten. Now the identity folder is linked instead.
2018-07-10 03:26:30 -05:00
Åke f8eb7587df Handle stop correctly in the audio service. (#1677)
* Handle stop correctly in the audio service.

This allows for example the news skill playback to be stopped without
the listening being triggered.

* Handle case where service stops at end of playlist

- Fix issue when receiving multiple stop signals
- Stop method of services now returns True or False depending on if audio was playing
2018-07-10 03:23:41 -05:00
JarbasAI 6cf2ed814c feature/allow to pronounce ordinals and very small fractions (#1663)
* allow to pronounce ordinals

* cleanup

* long scale / short scale very small fractions
2018-07-10 02:54:04 -05:00
Åke 1093383443 Fix extraction of 0 in extract_number() (#1673)
0 was not detected as a valid number when checking if the function should proceed to check for fractions.
2018-07-10 02:26:25 -05:00
devs-mycroft 83254d2f89 Version bump from 18.2.9 to 18.2.10 2018-07-06 09:31:59 +00:00
Åke 779012e693
Merge pull request #1675 from MycroftAI/feature/fix-unknown-platform
Fix crash during initial skill download
2018-07-06 09:04:52 +02:00
Åke 1b01eac7b0
Merge pull request #1657 from MycroftAI/feature/rewrite-precise
Refactor Precise engine and support engine timeouts
2018-07-06 08:52:45 +02:00
penrods e0dc373915 Fix crash during initial skill download
When running on a platform for which there was not DEFAULT.platform
file in the mycroft-skills repo, the downloading of skills would
crash.  Now an informational message is shown and the DEFAULT
skills alone are loaded.
2018-07-06 01:42:16 -05:00
Matthew Scholefield 189e0f10ab Refactor Precise engine and support engine timeouts 2018-07-06 00:05:28 -05:00
Steve Penrod 17aab53fae Enhance the behavior of the Mark 1 button (#1668)
The Mark 1 button press can now be "consumed" when a skill handles
the Stop command.  When this happens, the button press will not
trigger listening mode.  An additional press would be needed to
trigger listening.

This introduces the "mycroft.stop.handled" messagebus message.  It
carries a data field called "by" which identifies who handled it.
Currently the values are "TTS" for when speaking ends or the name
of a skill which implements Stop and returns True from the call.

Also fixed a potential bug when the flag to clear queued visemes
was left set after a button press.
2018-07-05 20:56:54 +02:00
JarbasAI db4740d407 Add Responsive voice tts (#1565)
Adds responsive voice as an optional TTS service.

See https://responsivevoice.org/text-to-speech-sdk/text-to-speech-widget/
2018-07-04 13:21:34 +02:00
Åke eb091ea87a
Update requests to bleeding edge (2.19.1) (#1661) 2018-07-04 09:54:28 +02:00