{"id":13537612,"url":"https://github.com/MycroftAI/mycroft-precise","last_synced_at":"2025-04-02T04:31:07.525Z","repository":{"id":39740550,"uuid":"101455393","full_name":"MycroftAI/mycroft-precise","owner":"MycroftAI","description":"A lightweight, simple-to-use, RNN wake word listener","archived":false,"fork":false,"pushed_at":"2023-11-25T01:38:56.000Z","size":457,"stargazers_count":888,"open_issues_count":119,"forks_count":235,"subscribers_count":32,"default_branch":"dev","last_synced_at":"2025-03-30T20:06:43.647Z","etag":null,"topics":["embedded-systems","hotword-detection","keyword-spotting","raspberry-pi","speech-recognition","voice-control","voice-recognition","wake-word-detection"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MycroftAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-08-26T01:56:48.000Z","updated_at":"2025-03-30T08:57:06.000Z","dependencies_parsed_at":"2024-01-14T07:59:15.107Z","dependency_job_id":"307e954f-d6a8-4478-95cf-817d4c1d2ba5","html_url":"https://github.com/MycroftAI/mycroft-precise","commit_stats":{"total_commits":270,"total_committers":13,"mean_commits":20.76923076923077,"dds":"0.42592592592592593","last_synced_commit":"e1a635e9675047eb86f64ca489a1b941321c489a"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fmycroft-precise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fmycroft-precise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fmycroft-precise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fmycroft-precise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MycroftAI","download_url":"https://codeload.github.com/MycroftAI/mycroft-precise/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246757127,"owners_count":20828833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded-systems","hotword-detection","keyword-spotting","raspberry-pi","speech-recognition","voice-control","voice-recognition","wake-word-detection"],"created_at":"2024-08-01T09:01:01.098Z","updated_at":"2025-04-02T04:31:07.477Z","avatar_url":"https://github.com/MycroftAI.png","language":"Python","funding_links":[],"categories":["Software","Python"],"sub_categories":["Others"],"readme":"# Mycroft Precise\n\n*A lightweight, simple-to-use, RNN wake word listener.*\n\nPrecise is a wake word listener.  The software monitors an audio stream ( usually a microphone ) and when it recognizes a specific phrase it triggers an event.  For example, at Mycroft AI the team has trained Precise to recognize the phrase \"Hey, Mycroft\".  When the software recognizes this phrase it puts the rest of Mycroft's software into command mode and waits for a command from the person using the device.  Mycroft Precise is fully open source and can be trined to recognize anything from a name to a cough.\n\nIn addition to Precise there are several proprietary wake word listeners out there.  If you are looking to spot a wakeword Precise might be a great solution, but if it's too resource intensive or isn't accurate enough here are some [alternative options][comparison].\n\n[comparison]: https://github.com/MycroftAI/mycroft-precise/wiki/Software-Comparison\n\n## Supported Operating Systems\n\nPrecise is designed to run on Linux.  It is known to work on a variety of Linux distributions including Debian, Ubuntu and Raspbian.  It probably operates on other \\*nx distributions.\n\n## Training Models\n\n### Communal models\n\nTraining takes lots of data. The Mycroft community is working together to jointly\nbuild datasets at: \nhttps://github.com/MycroftAI/precise-community-data.   \nThese datasets are available for anyone to download, use and contribute to. A number \nof models trained from this data are also provided.\n\nThe official models selectable in your device settings at Home.mycroft.ai \n[can be found here](https://github.com/MycroftAI/precise-data/tree/models).  \n\nPlease come and help make things better for everyone!\n\n### Train your own model\n\nYou can find info on training your own models [here][train-guide]. It requires\nrunning through the [**source install instructions**][source-install] first.\n\n[train-guide]:https://github.com/MycroftAI/mycroft-precise/wiki/Training-your-own-wake-word#how-to-train-your-own-wake-word\n[source-install]:https://github.com/MycroftAI/mycroft-precise#source-install\n\n## Installation\n\nIf you just want to use Mycroft Precise for running models in your own application,\nyou can use the binary install option. Note: This is only updated to the latest release,\nindicated by the latest commit on the master branch. If you want to train your own models\nor mess with the source code, you'll need to follow the **Source Install** instructions below.\n\n### Binary Install\n\nFirst download `precise-engine.tar.gz` from the [precise-data][precise-data] GitHub\nrepo. This will get the latest stable version (the master branch). Note that this requires the models to be built the the same latest version in the master branch. Currently, we support both 64 bit Linux desktops (x86_64) and the Raspberry Pi (armv7l).\n\n[precise-data]: https://github.com/mycroftai/precise-data/tree/dist\n\nNext, extract the tar to the folder of your choice. The following commands will work for the pi:\n\n```bash\nARCH=armv7l\nwget https://github.com/MycroftAI/precise-data/raw/dist/$ARCH/precise-engine.tar.gz\ntar xvf precise-engine.tar.gz\n```\n\nNow, the Precise binary exists at `precise-engine/precise-engine`.\n\nNext, install the Python wrapper with `pip3` (or `pip` if you are on Python 2):\n\n```bash\nsudo pip3 install precise-runner\n```\n\nFinally, you can write your program, passing the location of the precise binary like shown:\n\n```python\n#!/usr/bin/env python3\n\nfrom precise_runner import PreciseEngine, PreciseRunner\n\nengine = PreciseEngine('precise-engine/precise-engine', 'my_model_file.pb')\nrunner = PreciseRunner(engine, on_activation=lambda: print('hello'))\nrunner.start()\n\n# Sleep forever\nfrom time import sleep\nwhile True:\n    sleep(10)\n```\n\n### Source Install\n\nStart out by cloning the repository:\n\n```bash\ngit clone https://github.com/mycroftai/mycroft-precise\ncd mycroft-precise\n```\n\nIf you would like your models to run on an older version of precise, like the\nstable version the binary install uses, check out the master branch.\n\nNext, install the necessary system dependencies. If you are on Ubuntu, this\nwill be done automatically in the next step. Otherwise, feel free to submit\na PR to support other operating systems. The dependencies are:\n\n - python3-pip\n - libopenblas-dev\n - python3-scipy\n - cython\n - libhdf5-dev\n - python3-h5py\n - portaudio19-dev\n\nAfter this, run the setup script:\n\n```bash\n./setup.sh\n```\n\nFinally, you can write your program and run it as follows:\n```bash\nsource .venv/bin/activate  # Change the python environment to include precise library\n```\nSample Python program:\n```python\n#!/usr/bin/env python3\n\nfrom precise_runner import PreciseEngine, PreciseRunner\n\nengine = PreciseEngine('.venv/bin/precise-engine', 'my_model_file.pb')\nrunner = PreciseRunner(engine, on_activation=lambda: print('hello'))\nrunner.start()\n\n# Sleep forever\nfrom time import sleep\nwhile True:\n    sleep(10)\n```\n\nIn addition to the `precise-engine` executable, doing a **Source Install** gives you\naccess to some other scripts. You can read more about them [here][executables].\nOne of these executables, `precise-listen`, can be used to test a model using\nyour microphone:\n\n[executables]:https://github.com/MycroftAI/mycroft-precise/wiki/Training-your-own-wake-word#how-to-train-your-own-wake-word\n\n```bash\nsource .venv/bin/activate  # Gain access to precise-* executables\nprecise-listen my_model_file.pb\n```\n\n## How it Works\n\nAt it's core, Precise uses just a single recurrent network, specifically a GRU.\nEverything else is just a matter of getting data into the right form.\n\n![Architecture Diagram](https://images2.imgbox.com/f7/44/6N4xFU7D_o.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMycroftAI%2Fmycroft-precise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMycroftAI%2Fmycroft-precise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMycroftAI%2Fmycroft-precise/lists"}