diff --git a/CHANGELOG.md b/CHANGELOG.md index fda3f29..4d6c6f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ Naomi has the ability to print a transcript of what it says and hears (useful fo #### VAD Plugin -Created a new plugin type: VADPlugin which is used to detect voice activity specifically to allow Naomi to use webrtc_vad. Re-wrote the current Sound Noise Ratio method as a pure python plugin that can be used as a default (snr_vad). +Created a new plugin type: VADPlugin, which is used to detect voice activity specifically to allow Naomi to use webrtc_vad. Re-wrote the current Sound Noise Ratio method as a pure Python plugin that can be used as a default (snr_vad). #### Profile API @@ -27,7 +27,7 @@ except NameException: input_channels=1 ``` -you can now just use +You can now just use ```py from naomi import profile @@ -58,11 +58,11 @@ This also means that it is no longer necessary to pass a variable containing a c #### Naomi user directory moved -Naomi's user configuration files have moved from ~/.naomi to ~/.config/naomi to better follow current Linux protocol. Naomi's profile.yml file has moved from ~/.naomi/profile.yml to ~/.config/naomi/configs/profile.yml +Naomi's user configuration files have moved from ~/.naomi to ~/.config/naomi to better follow the current Linux protocol. Naomi's profile.yml file has moved from ~/.naomi/profile.yml to ~/.config/naomi/configs/profile.yml #### Plugin settings -The populate.py script has been replaced with settings that exist within the individual plugins. This way in a plugin author needs information from the user to get the plugin working, this information can be encoded within the plugin and not have to be added to a file in the Naomi core. +The populate.py script has been replaced with settings that exist within the individual plugins. This way, a plugin author needs information from the user to get the plugin working, this information can be encoded within the plugin and not have to be added to a file in the Naomi core. Settings have the following structure: ```py @@ -84,15 +84,15 @@ Plugins are listed within profile.yml and can be enabled or disabled by setting #### Passive Listen -Naomi can be set to collect audio then if audio contains the wakeword, use the active listener to scan the captured audio, allowing a more natural conversation style. Requires setting the "passive_listen: true" value in profile.yml or running Naomi with the --passive-listen flag. +Naomi can be set to collect audio, and if audio contains the wakeword, use the active listener to scan the captured audio, allowing a more natural conversation style. Requires setting the "passive_listen: true" value in profile.yml or running Naomi with the --passive-listen flag. #### Asynchronous Say -Talking can happen in a separate thread so Naomi can listen while talking, allowing the user to stop Naomi in the middle of a response by saying "Naomi Stop". Unfortunately, with most audio setups this causes Naomi to react to its own voice, so this is disabled by default while working out how to filter out the sound of Naomi speaking. Currently best used with either headphones or a USB conference phone with hardware level feedback filtering. Activated by either passing the "--listen-while-talking" flag or setting "listen_while_talking: true" in profile.yml. +Talking can happen in a separate thread so Naomi can listen while talking, allowing the user to stop Naomi in the middle of a response by saying "Naomi Stop". Unfortunately, with most audio setups, this causes Naomi to react to its own voice, so this is disabled by default while working out how to filter out the sound of Naomi speaking. Currently best used with either headphones or a USB conference phone with hardware level feedback filtering. Activated by either passing the "--listen-while-talking" flag or setting "listen_while_talking: true" in profile.yml. #### Syncronous Mic -In the original jasper-dev project, the wake word scanner was using three asynchronous listeners all constantly checking the audio stream for the wake word. After detecting the wake word, the audio stream would start recording. Changing this This freed up a lot of resources used in wake word scanning, allows the wake word to appear anywhere in a command, and made it easier to save audio for training VAD noise detection and passive listeners. +In the original jasper-dev project, the wake word scanner was using three asynchronous listeners, all constantly checking the audio stream for the wake word. After detecting the wake word, the audio stream would start recording. Changing this This freed up a lot of resources used in wake word scanning, allowed the wake word to appear anywhere in a command, and made it easier to save audio for training VAD noise detection and passive listeners. #### audiolog @@ -121,7 +121,7 @@ Current command line flags include #### Naomi Plugin Exchange - Web Based -Developed a web based [NPE](https://projectnaomi.com/plugins/) for exploring plugins written by or endorsed by the Naomi Project. Plugins are labeled as "included" if they come pre-installed with Naomi or instructions on how to install will be shown if its an endorsed plugin. +Developed a web based [NPE](https://projectnaomi.com/plugins/) for exploring plugins written by or endorsed by the Naomi Project. Plugins are labeled as "included" if they come pre-installed with Naomi, or instructions on how to install will be shown if it's an endorsed plugin. #### Naomi Plugin Exchange Editor (NPEeditor) - Web Based @@ -129,7 +129,7 @@ Developed a web based [plugin editor](https://npeeditor.projectnaomi.com/) to gi #### Visualizations Plugin -This is a way of designing plugins to provide feedback for Naomi core processes. It requires creating a run_visualization call which references one or more visualization plugins that may or may not be loaded. +This is a way of designing plugins to provide feedback for Naomi core processes. It requires creating a run_visualization call that references one or more visualization plugins that may or may not be loaded. #### TTI Plugin @@ -141,11 +141,11 @@ Naomi now supports multiple wake words. Naomi accepts the first wake word as the #### naomi-setup.sh script -This script went through a lot of permutations this year. Right now it will create a working naomi setup on any Debian derivative. +This script went through a lot of permutations this year. Right now it will create a working Naomi setup on any Debian derivative. #### Oneline Installer -Along with the new setup script there is now a one line command you can execute in any linux based terminal that will setup and install Naomi based on OS & version. +Along with the new setup script, there is now a one line command you can execute in any Linux based terminal that will setup and install Naomi based on OS & version. #### Email access routines moved to app_utils @@ -166,19 +166,19 @@ There should no longer be any reason for plugin developers to need direct access #### Updated to MPD2 -Fixed a few issues with the MPDClient plugin including updating to the mpd2 module, getting playlists to start playing when they are loaded, getting Naomi to pause music before speaking when in music mode. +Fixed a few issues with the MPDClient plugin, including updating to the mpd2 module, getting playlists to start playing when they are loaded, and getting Naomi to pause music before speaking when in music mode. -#### Fixed Google cloud STT and TTS +#### Fixed Google Cloud STT and TTS Thanks to Ole who got these working #### Replacement weather plugin -Replaced the default Yahoo weather plugin with wwis weather. +Replaced the default Yahoo weather plugin with WWIS weather. #### Pocketsphinx self setup -Pocketsphinx will now automatically download the standard language model for English, French or German from the [CMUSphinx standard language models](https://github.com/NaomiProject/CMUSphinx_standard_language_models.git) repository when first loaded. +Pocketsphinx will now automatically download the standard language model for English, French, or German from the [CMUSphinx standard language models](https://github.com/NaomiProject/CMUSphinx_standard_language_models.git) repository when first loaded. #### v2.2 (31/12/2018) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 7c99e79..680ad6f 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -3,7 +3,7 @@ ## Our Pledge In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and +Contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal @@ -49,7 +49,7 @@ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be +representative at an online or offline event. The representation of a project may be further defined and clarified by project maintainers. ## Enforcement diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b9ba4b5..6358d01 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,52 +2,52 @@ Want to contribute to Naomi ? Great ! 🎉 We're always happy to have more contributors. Before you start developing, though, we ask that you read through this document in-full. It's full of tips and guidelines--if you skip it, you'll likely miss something important (and your pull request will probably be rejected as a result). -Throughout the process of contributing, there's one thing we'd like you to remember: Naomi is developed (and is maintained) by what might be described as "volunteers". They earn no money for their work here and give their time solely for the advancement of the software and the enjoyment of its users. While they will do their best to get back to you regarding issues and pull requests, your patience is appreciated. +Throughout the process of contributing, there's one thing we'd like you to remember: Naomi is developed (and is maintained) by what might be described as "volunteers." They earn no money for their work here and give their time solely for the advancement of the software and the enjoyment of its users. While they will do their best to get back to you regarding issues and pull requests, your patience is appreciated. Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. -## What kinds of contributions are we looking for +## What kinds of contributions are we looking for? -From Improving documentation, bug triaging, writing tutorials to developing along side the maintainers by submitting bug reports, feature requests, writing code which can be incorporated into Naomi all to help further Naomi. +From improving documentation, bug triaging, and writing tutorials to developing along with the maintainers by submitting bug reports, feature requests, and writing code that can be incorporated into Naomi, all to help further Naomi. ## Contributions we are NOT looking for -As of time of writing, we are open to any ideas or contributions anyone may have. Once the idea or contribution is fleshed out, has no standing issues or pull requests that conflict, and add to the scope of Naomi, it will most likely be approved and we look forward to your contribution. +As of time of writing, we are open to any ideas or contributions anyone may have. Once the idea or contribution is fleshed out, has no standing issues or pull requests that conflict, and adds to the scope of Naomi, it will most likely be approved, and we look forward to your contribution. ## Responsibilities -* Ensure code compatibility for every change. We do not want to break everything just for one feature. If in testing your contribution causes issues but in its self works as intended, try to fix the issues that have arised. At the end of the day, we are all working towards a better Naomi. +* Ensure code compatibility for every change. We do not want to break everything just for one feature. If in testing your contribution causes issues but in its self works as intended, try to fix the issues that have arisen. At the end of the day, we are all working towards a better Naomi. * Ensure that code that goes into Naomi meets all requirements. * Create issues for any changes and enhancements that you wish to make. Discuss things transparently and get community feedback. # Your First Contribution -Due to the nature of the project and at the time of writing, you can look through [issues](https://www.github.com/naomiproject/naomi/issues) and if there is something that you can aid in, jump right it. Some things might be simple bug fixes that may take only a few lines of code while others may take editing multiple documents and structure already assembled. Those required someone that understands Naomi front to back and has worked on the project for some time. In other words, do not bite off more than you can chew, every little step helps. +Due to the nature of the project and at the time of writing, you can look through [issues](https://www.github.com/naomiproject/naomi/issues) and if there is something that you can aid in, jump right to it. Some things might be simple bug fixes that may take only a few lines of code, while others may take editing multiple documents and structures already assembled. Those required someone that understands Naomi from front to back and has worked on the project for some time. In other words, do not bite off more than you can chew, every little step helps. ## Resource for people who have never contributed to open source before. Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). -At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first :smile_cat: +At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first. :smile_cat: -However, if a maintainer asks you to "rebase" your pull request, they're saying that a lot of code has changed since you started working, and that you need to update your branch so it's easier to merge. +However, if a maintainer asks you to "rebase" your pull request, they're saying that a lot of code has changed since you started working and that you need to update your branch so it's easier to merge. # Getting started -1. Check open issues that are labeled as available to work on. If it is an idea that has no current issue or pull request related to it, create an issue so that the idea can be fleshed out and approved before starting. Do not want you to reinvent the wheel. -2. Create your own fork of the code -3. Do the changes in your fork +1. Check open issues that are labeled as available to work on. If it is an idea that has no current issue or pull request related to it, create an issue so that the idea can be fleshed out and approved before starting. We do not want you to reinvent the wheel. +2. Create your own fork of the code. +3. Do the changes in your fork. 4. If you like the change and think the project could use it: * Be sure you have followed the style of code throughout the project. Make it clean and readable! - * Test the code on a RaspberryPi - * Send a pull request and fillout the template. (All issues and PR have to follow the template or they will not be accepted) - * Once the PR has been submitted a bot will ask you to sign a Contribution License Agreement, CLA. (All contributors to the PR has to accept the CLA in order for the PR to be accepted) + * Test the code on a Raspberry Pi + * Send a pull request and fill out the template. (All issues and PR have to follow the template or they will not be accepted.) + * Once the PR has been submitted, a bot will ask you to sign a Contribution License Agreement, CLA. (All contributors to the PR have to accept the CLA in order for the PR to be accepted.) * The maintainer will review your submission and either ask for clarifications or changes, or approve the PR and it will be merged. -# Labeling conventions for issues & pull requests +# Labelling conventions for issues & pull requests -Our issues and pull request follow a [labelling convention](https://github.com/NaomiProject/Naomi/issues/126) to aid with flow & organization. Please review them so you know what each label means and how they are used. +Our issues and pull requests follow a [labelling convention](https://github.com/NaomiProject/Naomi/issues/126) to aid with flow & organization. Please review them so you know what each label means and how they are used. # How to report a bug @@ -66,19 +66,19 @@ If the answer to either of those two questions is "yes", then you're probably de ## Bug reports If you have found a bug, please create an issue using the bug report template and fill out as much information as you can. ->Note: Again, any issues &/or pull requests that do not follow the template will be asked to resubmit using the template and closed! +> Note: Again, any issues &/or pull requests that do not follow the template will be asked to resubmit using the template and closed! ## How to suggest a feature or enhancement -If you have an idea that you think will improve upon Naomi, create an issue using the proper template and fill it out to the best of your ability. Once submitted the community will discuss with you about the idea to help flesh it out and give it a base to be built upon. This will allow us to determine whether or not the idea should be implemented, put on hold due to other issues or pull requests that are currently open at that time, or abandoned if it does not fit into the scope of Naomi. Once approved, the idea can either be worked on by either the submitter if they so choose or made available for other developers and maintainers to turn the idea into reality. +If you have an idea that you think will improve upon Naomi, create an issue using the proper template and fill it out to the best of your ability. Once submitted, the community will discuss with you the idea to help flesh it out and give it a base to be built upon. This will allow us to determine whether or not the idea should be implemented, put on hold due to other issues or pull requests that are currently open at that time, or abandoned if it does not fit into the scope of Naomi. Once approved, the idea can either be worked on by either the submitter if they so choose or made available for other developers and maintainers to turn the idea into reality. -If you find yourself wishing for a feature that doesn't exist in Naomi, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that Naomi has today have been added because users saw the need. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work. +If you find yourself wishing for a feature that doesn't exist in Naomi, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that Naomi has today have been added because users saw the need. Open an issue on our issues list on GitHub that describes the feature you would like to see, why you need it, and how it should work. ## Code review process -Someone on the core team is active at most times, expect some sort of response within 24 hours, but please be patient. If a maintainer does not have the knowledge needed for said issue or pull request they will direct attention to another that does. This shows the submitter that the issue or PR is being looked at. +Someone on the core team is active at most times, expect some sort of response within 24 hours, but please be patient. If a maintainer does not have the knowledge needed for said issue or pull request, they will direct attention to another that does. This shows the submitter that the issue or PR is being looked at. -Do note: After feedback has been given and required a response from the submitter, we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity. +> Do note: After feedback has been given and required a response from the submitter, we expect responses within two weeks. After two weeks, we may close the pull request if it isn't showing any activity. If everything up to this point has been done correctly but your PR has not been approved or merged, here are some things to look out for. @@ -86,8 +86,8 @@ If everything up to this point has been done correctly but your PR has not been * Reference the status label for the PR, this can give you information that might tell you what's wrong. * Make sure you have signed the CLA and your code has been reviewed by at least one maintainer. -By all means if none of this applies and everything is in order, please reach out to one of the core team and we will be happy to look into what the issue is. +By all means, if none of this applies and everything is in order, please reach out to one of the core team and we will be happy to look into what the issue is. # Community - Naomi is always looking to grow its community whether you are a developer or someone who has interest in the project. You can join our [forum](https://community.projectnaomi.com) to talk with others as well as spread the work about Naomi. Every small step leads Naomi in the right direction. + Naomi is always looking to grow its community, whether you are a developer or someone who has an interest in the project. You can join our [forum](https://community.projectnaomi.com) to talk with others as well as spread the work about Naomi. Every small step leads Naomi in the right direction. diff --git a/README.md b/README.md index 7f05ad9..93df6f6 100644 --- a/README.md +++ b/README.md @@ -52,11 +52,11 @@ * Always Listening * Naomi is always on, always listening for commands, and you can speak from feet away. * 100% Open Source - * Build it yourself with off-the-shelf hardware, and use our documentation to write your own modules. + * Build it yourself with off-the-shelf hardware and use our documentation to write your own modules. * Cross Platform Coming Soon * Raspberry Pi and Linux currently. * Thorough Documentation - * Documentation is kept up to date. + * Documentation is kept up-to-date. ## Documentation @@ -95,7 +95,7 @@ Naomi is an MIT-licensed open source project with its ongoing development made p ## Credits -This software uses code from the initial Jasper Project & the Jasper2fork. +This software uses code from the initial Jasper Project & the Jasper2Fork. * [JasperProject](http://jasperproject.github.io/) * [Jasper2Fork](https://github.com/andweber/j2f)