Giter VIP home page Giter VIP logo

mycroftai / mycroft-core Goto Github PK

View Code? Open in Web Editor NEW
6.5K 288.0 1.3K 117.32 MB

Mycroft Core, the Mycroft Artificial Intelligence platform.

Home Page: https://mycroft.ai

License: Apache License 2.0

Shell 5.77% Python 92.70% QML 1.27% Dockerfile 0.26%
ai open-source nlp voice-assistant python linux raspberry-pi skills fedora arch oss natural-language-processing natural-language voice-as-an-interface artificial-intelligence personal-assistant hacktoberfest

mycroft-core's People

Contributors

00tiagopolicarpo00 avatar aatchison avatar aiix avatar aleale99 avatar amcgee7 avatar augustnmonteiro avatar chancencounter avatar christopherrogers1991 avatar chrisveilleux avatar davidwagnerkc avatar domcross avatar dzekem avatar el-tocino avatar ethanaward avatar forslund avatar isaacnward avatar jarbasai avatar jarbasal avatar jasonehines avatar jdorleans avatar kathyreid avatar kfezer avatar krisgesling avatar learnedvector avatar mathmauney avatar matthewscholefield avatar penrods avatar puretryout avatar soloveniaasaludar avatar the7erm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mycroft-core's Issues

Update .26 issues

Beware of this update, arduino side of the device not responding after update.

Personal interactions with Mycroft

Mycroft should be able to tell you about himself, as well as be able to respond to phrases directed at him. So Thanks, Mycroft should make him respond You're welcome rather than searching for Thanks.

skill container makes it hard to import files

When using the mycroft-skill-container the skill may be launched from any location in the file system this makes things complicated if the skill is split up in different files as imports will be relative to the position in the file system and not the skill.

NPR skill issue

There is an issue with the NPR news skill, there is no way to stop this skill when it is activated. You cannot stop the skill by clicking the button.

The only way to stop it, from my experience is to SSH the device and perform 'sudo reboot'.

Scary stack trace in unit tests

.2016-05-28 14:17:38,085 - mycroft.client.speech.listener - DEBUG - STT: what's the weather next week
Exception in thread Thread-17:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/seanfitz/development/mycroft-core/mycroft/client/speech/listener.py", line 197, in runnable
    audio, metrics=self.metrics).lower()
  File "/home/seanfitz/development/mycroft-core/mycroft/client/speech/recognizer_wrapper.py", line 46, in transcribe
    audio, key=key, language=language, show_all=show_all)
  File "/home/seanfitz/development/mycroft-core/test/client/audio_consumer_test.py", line 38, in recognize_google
    return self.transcriptions.pop(0)
IndexError: pop from empty list

Mimic by Default

This should be the case. Better quality and we maintain the project. Just makes sense.

The cerberus website has two different urls for pairing/registering

When I go to the devices page and click the Register New Device button, it takes me to https://cerberus.mycroft.ai/pairing.html
ekrankopio de 2016-05-20 13-20-58

When I click the register menu, it takes me instead to https://cerberus.mycroft.ai/register
ekrankopio de 2016-05-20 13-21-11

It is the same page, so it should have the same URL.

Also I find it confusing that you are using two words for the same process. I think you should decide if you will use register or pair, and use it consistently everywhere. Right now the menu item says register but the page heading is "Pairing Your Device".

Codebase is not PEP8 compliant

To better suit collaboration (and clean code) the codebase should be entirely PEP8 compliant.

autopep8 might be the saving grace for the initial step here. A test should also be added, perhaps
as part of Travis CI. Might want to add pipe exit code checking here.

find . -name "*.py" | xargs pep8

This is a subtask of issue #2

Giving Mycroft context

Mycroft should be able to know when someone is talking about a previous query, e.g.

User: Mycroft, who is Lebron James?
...
User: Mycroft, how tall is he?
Mycroft: 6 feet 8 inches.

Message bus warning - disconnecting on error

When running Mycroft on my Ubuntu 16.04 machine, it will occasionally give the following error in the terminal:

2016-05-31 11:59:02,796 - Skills - DEBUG - {"message_type": "recognizer_loop:audio_output_end", "context": null, "metadata": {}}
WebSocketConnectionClosedException('Connection is already closed.',)
2016-05-31 11:59:03,273 - mycroft.messagebus.client.ws - WARNING - Disconnecting on error, reconnecting in 32 seconds.

Mycroft still seems to be responding, but is somewhat slow to respond when this error is given.

Listener speak thread is causing undesirable behaviour and overhead

The thread created to run the speak action in listener.py is causing an undesirable behaviour of emitting an audio start and end event at the same time when trying to pair a device. In addition, it seems an unnecessary overhead, because the speak function uses the self.emitter.emit("speak", Message("speak", metadata=payload)) to shoot the message in an asynchronous way.

Mimic is not installed correctly

Having this error, after a fresh setup.

Traceback (most recent call last):
File "/home/aatchison/mycroft-core/mycroft/client/speech/main.py", line 13, in
tts = tts_factory.create()
File "/home/aatchison/mycroft-core/mycroft/tts/tts_factory.py", line 33, in create
mimic_tts.MimicValidator().validate(tts)
File "/home/aatchison/mycroft-core/mycroft/tts/init.py", line 43, in validate
self.validate_connection(tts)
File "/home/aatchison/mycroft-core/mycroft/tts/mimic_tts.py", line 35, in validate_connection
raise Exception('Mimic is not installed. Make sure install-mimic.sh ran properly.')
Exception: Mimic is not installed. Make sure install-mimic.sh ran properly.

Dialogue with Mycroft

Mycroft should be able to carry on a conversation about certain things, such as ordering a pizza.

User: Mycroft, I want to order a pizza from [pizza place].
Mycroft: Sure, what would you like on your pizza?
User: Pepperoni.
Mycroft: Would you like anything else on it?
User: No, that's it.
Mycroft: What size of pizza would you like?
...

some functions are too complex

Anything with a mccabe number greater than 10 is way too complex.

โŸซ flake8 --max-complexity=10 . | grep complex
./mycroft/client/speech/mic.py:106:1: C901 'Recognizer.listen' is too complex (16)
./mycroft/client/speech/recognizer_wrapper.py:59:1: C901 'CerberusGoogleProxy.transcribe' is too complex (11)

Getting the complexity even lower than 10 is great for readability.

Arithmetic sums are recognised but reported weirdly

"Hey Mycroft, what's two plus two?"

2016-05-23 00:17:57,332 - SpeechClient - INFO - Utterance: [u'whats 2 plus 2']
2016-05-23 00:17:57,341 - METRICS - DEBUG - {"attributes": {"version": "dev-9aa9f47", "utterances": ["whats 2 plus 2"]}, "levels": {}, "timers": {"mycroft.stt.remote.time_s": [1.7695190906524658], "mycroft.cerberus.proxy.client.time_s": [1.7695190906524658], "mycroft.recognizer.extractor.time_s": [0.07558488845825195], "mycroft.recognizer.audio.length_s": [2.816], "mycroft.recognizer.audio_extracted.length_s": [0.95525, 1.89575], "mycroft.stt.local.time_s": [0.017687082290649414, 0.008194208145141602, 0.003365039825439453, 0.0054209232330322266, 0.007082939147949219, 0.006096839904785156, 0.006500959396362305, 0.007088899612426758, 0.004624128341674805, 0.006964921951293945, 0.005579948425292969, 0.004889965057373047, 0.00451207160949707, 0.004775047302246094]}, "counters": {}}
2016-05-23 00:17:57,343 - SpeechClient - INFO - Speak: I am searching for whats 2 plus 2
2016-05-23 00:18:00,693 - SpeechClient - INFO - Speak: footร—2+2 feet is 4 feet

I never mentioned "foot"...

Echo cancelation in software

In order for the "Mycroft stop" voice command to function while playing audio or TTS, he needs to be able to hear himself over his own speaker. We have been playing with some pulse audio plugins that might do the job, but the unfortunate facts are:

  1. We have to way to manipulate pulse audio streams, sinks, and sources.
  2. If I remember correctly, portaudio doesn't play nice with the pulse microphone source.
  3. This might cause a lot of overhead.
  4. Cross platform compatibility issues.

No list of dependencies, nor clear build instructions

A basic README should have at least these:

Clear (and distribution agnostic, for gnu/linux at least) install steps to get to a basic working status.
This missing right now (might be incomplete):

  • Explicit list of external dependencies
  • List of out of tree dependencies (adapt-parser is not on pip for example)
  • A clear version statement for Python. Using it is fine and dandy, but is it 2 or 3?

An example of what one should do and what one should expect to happen. Right now you say:

run ./start.sh service

Sure, but why? And what does it do? What should I expect? Etc...

Looks promising but still some way to go!

[Meta] Various codebase issues restricting collaboration and deployment

  • Python files completely lack license headers - unsuitable for collaboration
  • Codebase is not PEP8 compliant.
  • Build system is super funky and has tunnel-vision for Ubuntu

PEP8 issues:

./mycroft-base-setup.py:3:80: E501 line too long (92 > 79 characters)
./test/client/audio_consumer_test.py:5:80: E501 line too long (91 > 79 characters)
./test/client/audio_consumer_test.py:6:80: E501 line too long (83 > 79 characters)
./test/client/audio_consumer_test.py:37:80: E501 line too long (86 > 79 characters)
./test/client/audio_consumer_test.py:43:80: E501 line too long (81 > 79 characters)
./test/client/audio_consumer_test.py:46:80: E501 line too long (93 > 79 characters)
./test/client/audio_consumer_test.py:51:80: E501 line too long (109 > 79 characters)
./test/client/audio_consumer_test.py:52:80: E501 line too long (107 > 79 characters)
./test/client/audio_consumer_test.py:54:80: E501 line too long (109 > 79 characters)
./test/client/audio_consumer_test.py:57:80: E501 line too long (80 > 79 characters)
./test/client/audio_consumer_test.py:69:80: E501 line too long (119 > 79 characters)
./test/client/audio_consumer_test.py:74:80: E501 line too long (119 > 79 characters)
./test/client/audio_consumer_test.py:79:80: E501 line too long (80 > 79 characters)
./test/client/audio_consumer_test.py:94:80: E501 line too long (109 > 79 characters)
./test/client/audio_consumer_test.py:110:54: E231 missing whitespace after ','
./test/client/audio_consumer_test.py:124:80: E501 line too long (80 > 79 characters)
./test/client/wakeword_recognizer_test.py:8:1: E402 module level import not at top of file
./test/client/wakeword_recognizer_test.py:10:9: E225 missing whitespace around operator
./test/client/wakeword_recognizer_test.py:12:1: E302 expected 2 blank lines, found 1
./test/client/dynamic_energy_test.py:53:80: E501 line too long (111 > 79 characters)
./test/client/dynamic_energy_test.py:54:32: E222 multiple spaces after operator
./test/client/dynamic_energy_test.py:54:80: E501 line too long (81 > 79 characters)
./test/client/dynamic_energy_test.py:56:58: W292 no newline at end of file
./test/skills/skill_tester.py:15:80: E501 line too long (87 > 79 characters)
./test/skills/skill_tester.py:30:36: E261 at least two spaces before inline comment
./test/skills/skill_tester.py:43:80: E501 line too long (95 > 79 characters)
./test/skills/skill_tester.py:54:80: E501 line too long (99 > 79 characters)
./test/skills/skill_tester.py:58:1: W391 blank line at end of file
./test/skills/discover_tests.py:13:80: E501 line too long (115 > 79 characters)
./test/skills/discover_tests.py:16:80: E501 line too long (100 > 79 characters)
./test/skills/discover_tests.py:34:80: E501 line too long (98 > 79 characters)
./test/skills/discover_tests.py:35:80: E501 line too long (87 > 79 characters)
./test/skills/discover_tests.py:42:1: W293 blank line contains whitespace
./test/skills/discover_tests.py:44:80: E501 line too long (102 > 79 characters)
./test/skills/discover_tests.py:51:1: W391 blank line at end of file
./test/test_runner.py:4:1: E402 module level import not at top of file
./test/test_runner.py:6:1: E402 module level import not at top of file
./test/test_runner.py:7:1: E402 module level import not at top of file
./test/test_runner.py:8:1: E402 module level import not at top of file
./test/test_runner.py:21:16: W292 no newline at end of file
./skills-sdk-setup.py:38:2: W292 no newline at end of file
./doc/generate_sdk_docs.py:53:11: W292 no newline at end of file
./mycroft/client/speech/listener.py:12:80: E501 line too long (83 > 79 characters)
./mycroft/client/speech/listener.py:29:80: E501 line too long (84 > 79 characters)
./mycroft/client/speech/listener.py:50:80: E501 line too long (106 > 79 characters)
./mycroft/client/speech/listener.py:51:80: E501 line too long (87 > 79 characters)
./mycroft/client/speech/listener.py:61:80: E501 line too long (116 > 79 characters)
./mycroft/client/speech/listener.py:62:80: E501 line too long (89 > 79 characters)
./mycroft/client/speech/listener.py:67:80: E501 line too long (132 > 79 characters)
./mycroft/client/speech/listener.py:104:80: E501 line too long (101 > 79 characters)
./mycroft/client/speech/listener.py:107:51: E203 whitespace before ':'
./mycroft/client/speech/listener.py:110:80: E501 line too long (111 > 79 characters)
./mycroft/client/speech/listener.py:112:80: E501 line too long (96 > 79 characters)
./mycroft/client/speech/listener.py:120:80: E501 line too long (102 > 79 characters)
./mycroft/client/speech/listener.py:123:80: E501 line too long (145 > 79 characters)
./mycroft/client/speech/listener.py:126:80: E501 line too long (99 > 79 characters)
./mycroft/client/speech/listener.py:127:80: E501 line too long (105 > 79 characters)
./mycroft/client/speech/listener.py:134:80: E501 line too long (83 > 79 characters)
./mycroft/client/speech/listener.py:135:64: E231 missing whitespace after ','
./mycroft/client/speech/listener.py:135:80: E501 line too long (93 > 79 characters)
./mycroft/client/speech/listener.py:138:80: E501 line too long (95 > 79 characters)
./mycroft/client/speech/listener.py:139:64: E231 missing whitespace after ','
./mycroft/client/speech/listener.py:139:80: E501 line too long (93 > 79 characters)
./mycroft/client/speech/listener.py:148:80: E501 line too long (87 > 79 characters)
./mycroft/client/speech/listener.py:150:80: E501 line too long (85 > 79 characters)
./mycroft/client/speech/listener.py:170:80: E501 line too long (82 > 79 characters)
./mycroft/client/speech/listener.py:176:80: E501 line too long (90 > 79 characters)
./mycroft/client/speech/listener.py:180:80: E501 line too long (95 > 79 characters)
./mycroft/client/speech/listener.py:190:80: E501 line too long (95 > 79 characters)
./mycroft/client/speech/listener.py:193:80: E501 line too long (86 > 79 characters)
./mycroft/client/speech/listener.py:196:80: E501 line too long (86 > 79 characters)
./mycroft/client/speech/listener.py:198:80: E501 line too long (115 > 79 characters)
./mycroft/client/speech/listener.py:200:80: E501 line too long (114 > 79 characters)
./mycroft/client/speech/listener.py:223:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/listener.py:233:80: E501 line too long (87 > 79 characters)
./mycroft/client/speech/listener.py:238:80: E501 line too long (89 > 79 characters)
./mycroft/client/speech/listener.py:239:80: E501 line too long (111 > 79 characters)
./mycroft/client/speech/listener.py:246:80: E501 line too long (101 > 79 characters)
./mycroft/client/speech/listener.py:250:80: E501 line too long (104 > 79 characters)
./mycroft/client/speech/listener.py:253:80: E501 line too long (113 > 79 characters)
./mycroft/client/speech/listener.py:300:80: E501 line too long (95 > 79 characters)
./mycroft/client/speech/listener.py:302:80: E501 line too long (99 > 79 characters)
./mycroft/client/speech/listener.py:303:80: E501 line too long (103 > 79 characters)
./mycroft/client/speech/listener.py:304:80: E501 line too long (122 > 79 characters)
./mycroft/client/speech/listener.py:307:80: E501 line too long (103 > 79 characters)
./mycroft/client/speech/listener.py:308:80: E501 line too long (108 > 79 characters)
./mycroft/client/speech/listener.py:324:80: E501 line too long (93 > 79 characters)
./mycroft/client/speech/wakeword_recognizer.py:4:1: E402 module level import not at top of file
./mycroft/client/speech/wakeword_recognizer.py:5:1: E402 module level import not at top of file
./mycroft/client/speech/wakeword_recognizer.py:7:1: E402 module level import not at top of file
./mycroft/client/speech/wakeword_recognizer.py:13:1: E402 module level import not at top of file
./mycroft/client/speech/wakeword_recognizer.py:15:1: E302 expected 2 blank lines, found 1
./mycroft/client/speech/wakeword_recognizer.py:17:80: E501 line too long (83 > 79 characters)
./mycroft/client/speech/wakeword_recognizer.py:22:14: E701 multiple statements on one line (colon)
./mycroft/client/speech/wakeword_recognizer.py:24:10: E222 multiple spaces after operator
./mycroft/client/speech/wakeword_recognizer.py:25:6: E225 missing whitespace around operator
./mycroft/client/speech/wakeword_recognizer.py:48:80: E501 line too long (81 > 79 characters)
./mycroft/client/speech/wakeword_recognizer.py:49:80: E501 line too long (97 > 79 characters)
./mycroft/client/speech/wakeword_recognizer.py:58:31: W292 no newline at end of file
./mycroft/client/speech/mic.py:7:80: E501 line too long (83 > 79 characters)
./mycroft/client/speech/mic.py:16:31: E711 comparison to None should be 'if cond is not None:'
./mycroft/client/speech/mic.py:60:36: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:38: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:56: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:58: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:76: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:78: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:60:80: E501 line too long (84 > 79 characters)
./mycroft/client/speech/mic.py:61:80: E501 line too long (108 > 79 characters)
./mycroft/client/speech/mic.py:65:80: E501 line too long (91 > 79 characters)
./mycroft/client/speech/mic.py:68:31: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:68:33: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:68:61: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:68:63: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:19: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:21: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:39: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:41: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:77: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:79: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:69:80: E501 line too long (90 > 79 characters)
./mycroft/client/speech/mic.py:70:18: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:70:20: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:70:26: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:97:37: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:97:39: E251 unexpected spaces around keyword / parameter equals
./mycroft/client/speech/mic.py:99:80: E501 line too long (127 > 79 characters)
./mycroft/client/speech/mic.py:101:80: E501 line too long (313 > 79 characters)
./mycroft/client/speech/mic.py:103:80: E501 line too long (245 > 79 characters)
./mycroft/client/speech/mic.py:105:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/mic.py:109:80: E501 line too long (158 > 79 characters)
./mycroft/client/speech/mic.py:109:87: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:110:80: E501 line too long (181 > 79 characters)
./mycroft/client/speech/mic.py:110:89: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:111:80: E501 line too long (176 > 79 characters)
./mycroft/client/speech/mic.py:111:100: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:113:80: E501 line too long (82 > 79 characters)
./mycroft/client/speech/mic.py:114:25: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:121:55: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:121:80: E501 line too long (84 > 79 characters)
./mycroft/client/speech/mic.py:125:36: E701 multiple statements on one line (colon)
./mycroft/client/speech/mic.py:125:43: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:127:60: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:127:80: E501 line too long (123 > 79 characters)
./mycroft/client/speech/mic.py:131:66: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:131:80: E501 line too long (94 > 79 characters)
./mycroft/client/speech/mic.py:132:50: E701 multiple statements on one line (colon)
./mycroft/client/speech/mic.py:134:80: E501 line too long (92 > 79 characters)
./mycroft/client/speech/mic.py:135:80: E501 line too long (103 > 79 characters)
./mycroft/client/speech/mic.py:143:36: E701 multiple statements on one line (colon)
./mycroft/client/speech/mic.py:143:43: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:147:80: E501 line too long (102 > 79 characters)
./mycroft/client/speech/mic.py:148:66: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:148:80: E501 line too long (94 > 79 characters)
./mycroft/client/speech/mic.py:153:53: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:156:80: E501 line too long (81 > 79 characters)
./mycroft/client/speech/mic.py:157:80: E501 line too long (86 > 79 characters)
./mycroft/client/speech/mic.py:160:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/mic.py:163:80: E501 line too long (99 > 79 characters)
./mycroft/client/speech/mic.py:165:51: E701 multiple statements on one line (colon)
./mycroft/client/speech/mic.py:165:58: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:165:80: E501 line too long (97 > 79 characters)
./mycroft/client/speech/mic.py:168:64: E701 multiple statements on one line (colon)
./mycroft/client/speech/mic.py:168:78: E261 at least two spaces before inline comment
./mycroft/client/speech/mic.py:168:80: E501 line too long (123 > 79 characters)
./mycroft/client/speech/mic.py:175:80: E501 line too long (129 > 79 characters)
./mycroft/client/speech/mic.py:177:80: E501 line too long (99 > 79 characters)
./mycroft/client/speech/mic.py:177:100: W292 no newline at end of file
./mycroft/client/speech/recognizer_wrapper.py:24:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:26:80: E501 line too long (101 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:33:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:34:80: E501 line too long (97 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:43:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:46:80: E501 line too long (109 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:53:80: E501 line too long (80 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:59:80: E501 line too long (92 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:81:20: E701 multiple statements on one line (colon)
./mycroft/client/speech/recognizer_wrapper.py:84:46: E701 multiple statements on one line (colon)
./mycroft/client/speech/recognizer_wrapper.py:87:80: E501 line too long (85 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:88:80: E501 line too long (83 > 79 characters)
./mycroft/client/speech/recognizer_wrapper.py:95:80: E501 line too long (90 > 79 characters)
./mycroft/client/speech/main.py:19:1: E302 expected 2 blank lines, found 1
./mycroft/client/speech/main.py:82:80: E501 line too long (86 > 79 characters)
./mycroft/client/enclosure/enclosure.py:24:80: E501 line too long (86 > 79 characters)
./mycroft/client/enclosure/enclosure.py:65:80: E501 line too long (80 > 79 characters)
./mycroft/client/enclosure/enclosure.py:112:80: E501 line too long (91 > 79 characters)
./mycroft/client/enclosure/enclosure.py:133:80: E501 line too long (104 > 79 characters)
./mycroft/client/enclosure/enclosure.py:134:80: E501 line too long (117 > 79 characters)
./mycroft/client/enclosure/enclosure.py:136:80: E501 line too long (86 > 79 characters)
./mycroft/client/enclosure/api.py:13:80: E501 line too long (81 > 79 characters)
./mycroft/client/enclosure/api.py:26:80: E501 line too long (86 > 79 characters)
./mycroft/client/enclosure/api.py:35:80: E501 line too long (82 > 79 characters)
./mycroft/client/enclosure/api.py:41:80: E501 line too long (81 > 79 characters)
./mycroft/client/enclosure/api.py:44:80: E501 line too long (92 > 79 characters)
./mycroft/client/enclosure/api.py:47:80: E501 line too long (84 > 79 characters)
./mycroft/client/enclosure/api.py:65:80: E501 line too long (82 > 79 characters)
./mycroft/client/text/cli.py:34:8: E713 test for membership should be 'not in'
./mycroft/client/text/cli.py:43:80: E501 line too long (102 > 79 characters)
./mycroft/messagebus/client/ws.py:35:80: E501 line too long (95 > 79 characters)
./mycroft/messagebus/client/ws.py:36:36: E127 continuation line over-indented for visual indent
./mycroft/messagebus/client/ws.py:37:36: E127 continuation line over-indented for visual indent
./mycroft/messagebus/client/ws.py:38:36: E127 continuation line over-indented for visual indent
./mycroft/messagebus/client/ws.py:39:36: E127 continuation line over-indented for visual indent
./mycroft/messagebus/client/ws.py:55:80: E501 line too long (87 > 79 characters)
./mycroft/messagebus/client/ws.py:64:80: E501 line too long (95 > 79 characters)
./mycroft/messagebus/client/ws.py:67:80: E501 line too long (85 > 79 characters)
./mycroft/messagebus/client/ws.py:89:5: E301 expected 1 blank line, found 0
./mycroft/messagebus/client/ws.py:100:11: W292 no newline at end of file
./mycroft/messagebus/message.py:2:1: E402 module level import not at top of file
./mycroft/messagebus/message.py:47:68: W292 no newline at end of file
./mycroft/messagebus/service/ws.py:21:80: E501 line too long (89 > 79 characters)
./mycroft/messagebus/service/ws.py:35:80: E501 line too long (86 > 79 characters)
./mycroft/messagebus/service/ws.py:51:80: E501 line too long (101 > 79 characters)
./mycroft/messagebus/service/main.py:16:1: E303 too many blank lines (4)
./mycroft/identity/__init__.py:29:80: E501 line too long (91 > 79 characters)
./mycroft/tts/google_tts.py:33:80: E501 line too long (109 > 79 characters)
./mycroft/tts/tts_factory.py:18:80: E501 line too long (127 > 79 characters)
./mycroft/tts/fa_tts.py:49:80: E501 line too long (115 > 79 characters)
./mycroft/tts/spdsay_tts.py:15:80: E501 line too long (81 > 79 characters)
./mycroft/tts/spdsay_tts.py:30:80: E501 line too long (111 > 79 characters)
./mycroft/tts/mary_tts.py:46:80: E501 line too long (116 > 79 characters)
./mycroft/tts/remote_tts.py:19:80: E501 line too long (108 > 79 characters)
./mycroft/tts/remote_tts.py:52:80: E501 line too long (120 > 79 characters)
./mycroft/tts/remote_tts.py:64:80: E501 line too long (101 > 79 characters)
./mycroft/tts/__init__.py:15:80: E501 line too long (93 > 79 characters)
./mycroft/tts/__init__.py:33:80: E501 line too long (99 > 79 characters)
./mycroft/tts/__init__.py:48:80: E501 line too long (80 > 79 characters)
./mycroft/tts/__init__.py:53:80: E501 line too long (83 > 79 characters)
./mycroft/tts/__init__.py:57:80: E501 line too long (88 > 79 characters)
./mycroft/tts/mimic_tts.py:13:80: E501 line too long (80 > 79 characters)
./mycroft/tts/mimic_tts.py:35:80: E501 line too long (95 > 79 characters)
./mycroft/tts/espeak_tts.py:15:80: E501 line too long (81 > 79 characters)
./mycroft/tts/espeak_tts.py:30:80: E501 line too long (100 > 79 characters)
./mycroft/session/__init__.py:56:80: E501 line too long (98 > 79 characters)
./mycroft/session/__init__.py:58:80: E501 line too long (117 > 79 characters)
./mycroft/session/__init__.py:59:80: E501 line too long (96 > 79 characters)
./mycroft/session/__init__.py:71:1: W391 blank line at end of file
./mycroft/pairing/client.py:29:80: E501 line too long (85 > 79 characters)
./mycroft/pairing/client.py:32:80: E501 line too long (82 > 79 characters)
./mycroft/pairing/client.py:61:1: E303 too many blank lines (3)
./mycroft/pairing/client.py:65:11: W292 no newline at end of file
./mycroft/skills/core.py:34:80: E501 line too long (98 > 79 characters)
./mycroft/skills/core.py:37:80: E501 line too long (116 > 79 characters)
./mycroft/skills/core.py:42:80: E501 line too long (89 > 79 characters)
./mycroft/skills/core.py:59:80: E501 line too long (104 > 79 characters)
./mycroft/skills/core.py:60:80: E501 line too long (112 > 79 characters)
./mycroft/skills/core.py:66:80: E501 line too long (93 > 79 characters)
./mycroft/skills/core.py:68:80: E501 line too long (88 > 79 characters)
./mycroft/skills/core.py:77:80: E501 line too long (81 > 79 characters)
./mycroft/skills/core.py:97:80: E501 line too long (91 > 79 characters)
./mycroft/skills/core.py:103:80: E501 line too long (100 > 79 characters)
./mycroft/skills/core.py:137:80: E501 line too long (87 > 79 characters)
./mycroft/skills/core.py:158:80: E501 line too long (90 > 79 characters)
./mycroft/skills/core.py:159:80: E501 line too long (107 > 79 characters)
./mycroft/skills/core.py:164:80: E501 line too long (100 > 79 characters)
./mycroft/skills/core.py:168:80: E501 line too long (83 > 79 characters)
./mycroft/skills/core.py:177:80: E501 line too long (93 > 79 characters)
./mycroft/skills/wiki/__init__.py:23:80: E501 line too long (121 > 79 characters)
./mycroft/skills/wiki/__init__.py:24:80: E501 line too long (121 > 79 characters)
./mycroft/skills/wiki/__init__.py:29:80: E501 line too long (110 > 79 characters)
./mycroft/skills/wiki/__init__.py:32:80: E501 line too long (109 > 79 characters)
./mycroft/skills/wiki/__init__.py:44:80: E501 line too long (98 > 79 characters)
./mycroft/skills/wiki/__init__.py:58:80: E501 line too long (81 > 79 characters)
./mycroft/skills/desktop_launcher/__init__.py:60:80: E501 line too long (99 > 79 characters)
./mycroft/skills/desktop_launcher/__init__.py:64:80: E501 line too long (120 > 79 characters)
./mycroft/skills/desktop_launcher/__init__.py:67:80: E501 line too long (114 > 79 characters)
./mycroft/skills/npr_news/__init__.py:25:80: E501 line too long (81 > 79 characters)
./mycroft/skills/alarm/__init__.py:26:80: E501 line too long (86 > 79 characters)
./mycroft/skills/intent/__init__.py:25:80: E501 line too long (92 > 79 characters)
./mycroft/skills/intent/__init__.py:26:80: E501 line too long (88 > 79 characters)
./mycroft/skills/intent/__init__.py:31:80: E501 line too long (87 > 79 characters)
./mycroft/skills/intent/__init__.py:34:80: E501 line too long (95 > 79 characters)
./mycroft/skills/intent/__init__.py:36:80: E501 line too long (109 > 79 characters)
./mycroft/skills/intent/__init__.py:46:80: E501 line too long (86 > 79 characters)
./mycroft/skills/intent/__init__.py:54:80: E501 line too long (86 > 79 characters)
./mycroft/skills/volume/__init__.py:15:80: E501 line too long (100 > 79 characters)
./mycroft/skills/volume/__init__.py:27:80: E501 line too long (106 > 79 characters)
./mycroft/skills/volume/__init__.py:30:80: E501 line too long (95 > 79 characters)
./mycroft/skills/volume/__init__.py:33:80: E501 line too long (95 > 79 characters)
./mycroft/skills/volume/__init__.py:36:80: E501 line too long (87 > 79 characters)
./mycroft/skills/volume/__init__.py:39:80: E501 line too long (89 > 79 characters)
./mycroft/skills/volume/__init__.py:63:80: E501 line too long (101 > 79 characters)
./mycroft/skills/reminder/__init__.py:16:80: E501 line too long (119 > 79 characters)
./mycroft/skills/reminder/__init__.py:19:80: E501 line too long (85 > 79 characters)
./mycroft/skills/reminder/__init__.py:27:80: E501 line too long (92 > 79 characters)
./mycroft/skills/reminder/__init__.py:60:80: E501 line too long (101 > 79 characters)
./mycroft/skills/reminder/__init__.py:81:80: E501 line too long (90 > 79 characters)
./mycroft/skills/dial_call/__init__.py:15:80: E501 line too long (93 > 79 characters)
./mycroft/skills/dial_call/__init__.py:16:80: E501 line too long (108 > 79 characters)
./mycroft/skills/dial_call/__init__.py:20:80: E501 line too long (106 > 79 characters)
./mycroft/skills/dial_call/__init__.py:28:80: E501 line too long (102 > 79 characters)
./mycroft/skills/dial_call/__init__.py:54:80: E501 line too long (96 > 79 characters)
./mycroft/skills/spelling/__init__.py:17:80: E501 line too long (85 > 79 characters)
./mycroft/skills/spelling/__init__.py:20:80: E501 line too long (99 > 79 characters)
./mycroft/skills/weather/owm_repackaged/configuration25_mycroft.py:66:5: E122 continuation line missing indentation or outdented
./mycroft/skills/weather/owm_repackaged/configuration25_mycroft.py:98:5: E122 continuation line missing indentation or outdented
./mycroft/skills/weather/owm_repackaged/configuration25_mycroft.py:106:5: E122 continuation line missing indentation or outdented
./mycroft/skills/weather/owm_repackaged/configuration25_mycroft.py:114:5: E122 continuation line missing indentation or outdented
./mycroft/skills/weather/owm_repackaged/owm25.py:35:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:47:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:54:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:117:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:153:43: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:153:53: E231 missing whitespace after ','
./mycroft/skills/weather/owm_repackaged/owm25.py:243:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:275:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:294:17: E127 continuation line over-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:296:17: E127 continuation line over-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:298:17: E127 continuation line over-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:300:17: E127 continuation line over-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:303:17: E127 continuation line over-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:307:78: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:308:31: E225 missing whitespace around operator
./mycroft/skills/weather/owm_repackaged/owm25.py:310:77: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:311:31: E225 missing whitespace around operator
./mycroft/skills/weather/owm_repackaged/owm25.py:313:78: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:314:31: E225 missing whitespace around operator
./mycroft/skills/weather/owm_repackaged/owm25.py:321:56: E231 missing whitespace after ','
./mycroft/skills/weather/owm_repackaged/owm25.py:380:43: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:490:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owm25.py:571:5: E303 too many blank lines (2)
./mycroft/skills/weather/owm_repackaged/owm25.py:605:73: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:609:73: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:614:76: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:656:73: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:660:73: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:665:76: E502 the backslash is redundant between brackets
./mycroft/skills/weather/owm_repackaged/owm25.py:828:39: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:829:39: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:830:39: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/owm25.py:831:39: E128 continuation line under-indented for visual indent
./mycroft/skills/weather/owm_repackaged/__init__.py:35:80: E501 line too long (80 > 79 characters)
./mycroft/skills/weather/owm_repackaged/__init__.py:44:80: E501 line too long (91 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owmhttpclient.py:60:80: E501 line too long (107 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owmhttpclient.py:67:80: E501 line too long (84 > 79 characters)
./mycroft/skills/weather/owm_repackaged/owmhttpclient.py:72:80: E501 line too long (84 > 79 characters)
./mycroft/skills/weather/__init__.py:22:80: E501 line too long (92 > 79 characters)
./mycroft/skills/weather/__init__.py:33:80: E501 line too long (111 > 79 characters)
./mycroft/skills/weather/__init__.py:37:80: E501 line too long (107 > 79 characters)
./mycroft/skills/weather/__init__.py:42:80: E501 line too long (105 > 79 characters)
./mycroft/skills/weather/__init__.py:69:80: E501 line too long (94 > 79 characters)
./mycroft/skills/weather/__init__.py:80:80: E501 line too long (88 > 79 characters)
./mycroft/skills/weather/__init__.py:81:80: E501 line too long (86 > 79 characters)
./mycroft/skills/weather/__init__.py:88:80: E501 line too long (111 > 79 characters)
./mycroft/skills/cerberus_config/__init__.py:31:33: W292 no newline at end of file
./mycroft/skills/pairing/__init__.py:15:80: E501 line too long (86 > 79 characters)
./mycroft/skills/pairing/__init__.py:24:80: E501 line too long (98 > 79 characters)
./mycroft/skills/pairing/__init__.py:27:5: E303 too many blank lines (2)
./mycroft/skills/send_sms/__init__.py:15:80: E501 line too long (93 > 79 characters)
./mycroft/skills/send_sms/__init__.py:16:80: E501 line too long (110 > 79 characters)
./mycroft/skills/send_sms/__init__.py:20:80: E501 line too long (106 > 79 characters)
./mycroft/skills/send_sms/__init__.py:26:80: E501 line too long (84 > 79 characters)
./mycroft/skills/send_sms/__init__.py:28:80: E501 line too long (119 > 79 characters)
./mycroft/skills/send_sms/__init__.py:56:80: E501 line too long (111 > 79 characters)
./mycroft/skills/container.py:20:80: E501 line too long (87 > 79 characters)
./mycroft/skills/container.py:21:80: E501 line too long (97 > 79 characters)
./mycroft/skills/container.py:23:80: E501 line too long (88 > 79 characters)
./mycroft/skills/container.py:24:80: E501 line too long (81 > 79 characters)
./mycroft/skills/time_rules.py:30:80: E501 line too long (83 > 79 characters)
./mycroft/skills/time_rules.py:31:80: E501 line too long (93 > 79 characters)
./mycroft/skills/time_rules.py:37:80: E501 line too long (80 > 79 characters)
./mycroft/skills/time_rules.py:66:80: E501 line too long (84 > 79 characters)
./mycroft/skills/time_rules.py:67:80: E501 line too long (110 > 79 characters)
./mycroft/skills/time_rules.py:68:80: E501 line too long (98 > 79 characters)
./mycroft/skills/time_rules.py:71:80: E501 line too long (110 > 79 characters)
./mycroft/skills/time_rules.py:73:80: E501 line too long (85 > 79 characters)
./mycroft/skills/time_rules.py:74:80: E501 line too long (95 > 79 characters)
./mycroft/skills/time_rules.py:75:80: E501 line too long (104 > 79 characters)
./mycroft/skills/time_rules.py:77:80: E501 line too long (102 > 79 characters)
./mycroft/skills/time_rules.py:78:80: E501 line too long (114 > 79 characters)
./mycroft/skills/time_rules.py:86:80: E501 line too long (93 > 79 characters)
./mycroft/skills/scheduled_skills.py:17:80: E501 line too long (90 > 79 characters)
./mycroft/skills/scheduled_skills.py:19:80: E501 line too long (97 > 79 characters)
./mycroft/skills/scheduled_skills.py:56:80: E501 line too long (94 > 79 characters)
./mycroft/skills/scheduled_skills.py:69:80: E501 line too long (95 > 79 characters)
./mycroft/skills/scheduled_skills.py:71:80: E501 line too long (89 > 79 characters)
./mycroft/skills/scheduled_skills.py:73:80: E501 line too long (117 > 79 characters)
./mycroft/skills/scheduled_skills.py:99:80: E501 line too long (84 > 79 characters)
./mycroft/skills/scheduled_skills.py:100:80: E501 line too long (80 > 79 characters)
./mycroft/skills/scheduled_skills.py:101:80: E501 line too long (84 > 79 characters)
./mycroft/skills/scheduled_skills.py:113:80: E501 line too long (90 > 79 characters)
./mycroft/skills/scheduled_skills.py:116:80: E501 line too long (88 > 79 characters)
./mycroft/skills/scheduled_skills.py:120:80: E501 line too long (92 > 79 characters)
./mycroft/skills/scheduled_skills.py:139:80: E501 line too long (88 > 79 characters)
./mycroft/skills/scheduled_skills.py:196:80: E501 line too long (86 > 79 characters)
./mycroft/skills/scheduled_skills.py:225:80: E501 line too long (80 > 79 characters)
./mycroft/skills/naptime/__init__.py:16:80: E501 line too long (86 > 79 characters)
./mycroft/skills/ip_skill/__init__.py:24:80: E501 line too long (113 > 79 characters)
./mycroft/skills/ip_skill/__init__.py:26:80: E501 line too long (108 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:21:80: E501 line too long (118 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:27:80: E501 line too long (140 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:28:80: E501 line too long (111 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:38:80: E501 line too long (85 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:88:80: E501 line too long (87 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:99:80: E501 line too long (137 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:118:80: E501 line too long (80 > 79 characters)
./mycroft/skills/wolfram_alpha/__init__.py:128:80: E501 line too long (99 > 79 characters)
./mycroft/skills/date_time/__init__.py:26:80: E501 line too long (98 > 79 characters)
./mycroft/skills/date_time/__init__.py:46:80: E501 line too long (88 > 79 characters)
./mycroft/skills/audio_record/__init__.py:34:80: E501 line too long (99 > 79 characters)
./mycroft/skills/audio_record/__init__.py:37:80: E501 line too long (98 > 79 characters)
./mycroft/skills/audio_record/__init__.py:41:80: E501 line too long (98 > 79 characters)
./mycroft/skills/audio_record/__init__.py:45:80: E501 line too long (102 > 79 characters)
./mycroft/skills/audio_record/__init__.py:46:80: E501 line too long (91 > 79 characters)
./mycroft/skills/audio_record/__init__.py:58:80: E501 line too long (97 > 79 characters)
./mycroft/skills/audio_record/__init__.py:79:80: E501 line too long (89 > 79 characters)
./mycroft/metrics/__init__.py:15:1: E302 expected 2 blank lines, found 1
./mycroft/metrics/__init__.py:80:80: E501 line too long (90 > 79 characters)
./mycroft/metrics/__init__.py:83:13: E301 expected 1 blank line, found 0
./mycroft/metrics/__init__.py:100:80: E501 line too long (120 > 79 characters)
./mycroft/dialog/__init__.py:41:80: E501 line too long (87 > 79 characters)
./mycroft/dialog/__init__.py:47:80: E501 line too long (81 > 79 characters)
./mycroft/dialog/__init__.py:49:80: E501 line too long (92 > 79 characters)
./mycroft/dialog/__init__.py:56:18: E711 comparison to None should be 'if cond is None:'
./mycroft/dialog/__init__.py:82:80: E501 line too long (111 > 79 characters)
./mycroft/dialog/__init__.py:84:80: E501 line too long (94 > 79 characters)
./mycroft/dialog/__init__.py:88:1: W391 blank line at end of file
./mycroft/filesystem/__init__.py:9:80: E501 line too long (93 > 79 characters)
./mycroft/filesystem/__init__.py:27:80: E501 line too long (92 > 79 characters)
./mycroft/filesystem/__init__.py:29:80: E501 line too long (110 > 79 characters)
./mycroft/util/setup_base.py:11:1: E302 expected 2 blank lines, found 1
./mycroft/util/setup_base.py:14:1: E302 expected 2 blank lines, found 1
./mycroft/util/setup_base.py:21:80: E501 line too long (103 > 79 characters)
./mycroft/util/setup_base.py:36:80: E501 line too long (88 > 79 characters)
./mycroft/util/setup_base.py:36:89: W292 no newline at end of file
./mycroft/util/log.py:3:1: E402 module level import not at top of file
./mycroft/util/audio_test.py:9:80: E501 line too long (109 > 79 characters)
./mycroft/util/audio_test.py:25:80: E501 line too long (143 > 79 characters)
./mycroft/util/audio_test.py:26:80: E501 line too long (137 > 79 characters)
./mycroft/util/__init__.py:24:80: E501 line too long (114 > 79 characters)
./mycroft/util/__init__.py:26:80: E501 line too long (93 > 79 characters)
./mycroft/util/__init__.py:69:1: E302 expected 2 blank lines, found 1
./mycroft/util/__init__.py:70:9: W292 no newline at end of file
./mycroft/configuration/config.py:13:80: E501 line too long (83 > 79 characters)
./mycroft/configuration/config.py:15:80: E501 line too long (80 > 79 characters)
./mycroft/configuration/config.py:38:80: E501 line too long (90 > 79 characters)
./mycroft/configuration/config.py:48:80: E501 line too long (80 > 79 characters)
./mycroft/configuration/config.py:51:80: E501 line too long (80 > 79 characters)
./mycroft/configuration/config.py:73:80: E501 line too long (86 > 79 characters)
./mycroft/configuration/config.py:75:80: E501 line too long (89 > 79 characters)
./mycroft/configuration/config.py:77:80: E501 line too long (98 > 79 characters)
./mycroft/configuration/config.py:81:80: E501 line too long (85 > 79 characters)
./mycroft/configuration/config.py:83:80: E501 line too long (96 > 79 characters)
./mycroft/configuration/config.py:84:80: E501 line too long (136 > 79 characters)
./mycroft/configuration/config.py:86:80: E501 line too long (82 > 79 characters)
./mycroft/configuration/config.py:89:80: E501 line too long (84 > 79 characters)
./mycroft/configuration/config.py:104:80: E501 line too long (91 > 79 characters)

Wikipedia Improvement

"What does Wikipedia say about..." should be added to the prefixes that trigger a Wikipedia search.

The code doesn't pass the flakes static checks

โŸซ pyflakes .
./mycroft/client/text/cli.py:44: local variable 'e' is assigned to but never used
./mycroft/client/speech/listener.py:350: local variable 'e' is assigned to but never used
./mycroft/client/speech/main.py:90: local variable 'e' is assigned to but never used
./mycroft/client/speech/wakeword_recognizer.py:5: 'sys' imported but unused
./mycroft/client/speech/wakeword_recognizer.py:7: 'from pocketsphinx import *' used; unable to detect undefined names
./mycroft/client/speech/wakeword_recognizer.py:46: Decoder may be undefined, or defined from star imports: pocketsphinx
./mycroft/client/speech/wakeword_recognizer.py:56: Decoder may be undefined, or defined from star imports: pocketsphinx
./mycroft/util/setup_base.py:19: local variable 'e' is assigned to but never used
./mycroft/util/setup_base.py:22: local variable 'e2' is assigned to but never used
./mycroft/messagebus/service/ws.py:36: local variable 'e' is assigned to but never used
./mycroft/messagebus/service/main.py:2: 'tornado' imported but unused
./mycroft/skills/intent/init.py:27: local variable 'e' is assigned to but never used
./mycroft/skills/wolfram_alpha/init.py:106: local variable 'e' is assigned to but never used
./mycroft/skills/weather/owm_repackaged/init.py:14: 'timeutils' imported but unused
./mycroft/skills/weather/owm_repackaged/owmhttpclient.py:69: 'urlopen' imported but unused
./mycroft/pairing/client.py:1: 'json' imported but unused
./mycroft/pairing/client.py:4: 'sys' imported but unused
./test/skills/skill_tester.py:2: 'unittest' imported but unused

The dev_setup.sh script should ensure that it is not run with sudo, or at least ask.

After going through the register process the mycroft client doesn't seem to realize that it has been registered and continues to say that the device is not registered and gives a registration code.
Restarting all of mycroft's processes after registration, and then restarting has no effect. The website itself appears to have worked, the device id on the web page matches the id in the identity.json file on my machine.

commit: 9aa9f47

Alternative Distro Support

Documentation on supporting as many distros as possible, as well as how to use Docker to run Mycroft.

Listener Improvements

  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
  6. Faster and more precise Wakeword extraction

On the devices page of the cerberus website, an empty table is shown

When I have no devices registered and go to the devices page in the cerberus website, it shows the headers of the table with no contents.

That is weird. I think that it would be nicer if it just displayed the button to register a new device, or maybe a message saying that you have no registered devices, instead of the table.

ekrankopio de 2016-05-20 13-01-23

Local configuration is sometimes ignored?

When using an external microphone on units, I have used the ~/.mycroft/mycroft.ini configuration file to select another microphone. Here is an example:

[speech_client]
device_index=1

This seems to work fine, until after a reboot (or two,) and then Mycroft uses the default device (device_index=0) regardless of the configuration files contents or existence. This has happened to me twice now, but I don't have the exact steps to reproduce. I suspect that this might be causing other users to have trouble, especially those that have to take steps to specify certain channels and sample rates on their mics.

I think we may have some configuration file loading / parsing issues that are related to pulling down the remote configuration.

Any ideas?

Novelty skill

Mycroft should be able to respond to various quotes and phrases in novel ways, e.g.

User: Mycroft, open the pod bay doors
Mycroft: I'm sorry, Dave. I'm afraid I can't do that.

User: Mycroft, what do you think of Siri?
Mycroft: I think she needs to be more open-minded.

Create unit tests for mic.py with more audio files to test

This should feed a set of recordings into the listen method and verify that in each one the wakeword is correctly detected.

To best simulate real-world situations it might be necessary to have a period of white noise or minimal background noise before the voice comes into the recording.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.