-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
58 additions
and
196 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,160 +1,21 @@ | ||
# Byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
*$py.class | ||
|
||
# C extensions | ||
*.so | ||
|
||
# Distribution / packaging | ||
.Python | ||
build/ | ||
develop-eggs/ | ||
dist/ | ||
downloads/ | ||
eggs/ | ||
.eggs/ | ||
lib/ | ||
lib64/ | ||
parts/ | ||
sdist/ | ||
var/ | ||
wheels/ | ||
share/python-wheels/ | ||
dev.env | ||
.dev_opts.json | ||
.idea | ||
*.code-workspace | ||
*.pyc | ||
*.swp | ||
*~ | ||
*.egg-info/ | ||
.installed.cfg | ||
*.egg | ||
MANIFEST | ||
|
||
# PyInstaller | ||
# Usually these files are written by a python script from a template | ||
# before PyInstaller builds the exe, so as to inject date/other infos into it. | ||
*.manifest | ||
*.spec | ||
|
||
# Installer logs | ||
pip-log.txt | ||
pip-delete-this-directory.txt | ||
|
||
# Unit test / coverage reports | ||
htmlcov/ | ||
.tox/ | ||
.nox/ | ||
build | ||
dist | ||
.coverage | ||
.coverage.* | ||
.cache | ||
nosetests.xml | ||
coverage.xml | ||
*.cover | ||
*.py,cover | ||
.hypothesis/ | ||
/htmlcov | ||
.installed | ||
.mypy_cache | ||
.vscode | ||
.theia | ||
.venv/ | ||
|
||
# Created by unit tests | ||
.pytest_cache/ | ||
cover/ | ||
|
||
# Translations | ||
*.mo | ||
*.pot | ||
|
||
# Django stuff: | ||
*.log | ||
local_settings.py | ||
db.sqlite3 | ||
db.sqlite3-journal | ||
|
||
# Flask stuff: | ||
instance/ | ||
.webassets-cache | ||
|
||
# Scrapy stuff: | ||
.scrapy | ||
|
||
# Sphinx documentation | ||
docs/_build/ | ||
|
||
# PyBuilder | ||
.pybuilder/ | ||
target/ | ||
|
||
# Jupyter Notebook | ||
.ipynb_checkpoints | ||
|
||
# IPython | ||
profile_default/ | ||
ipython_config.py | ||
|
||
# pyenv | ||
# For a library or package, you might want to ignore these files since the code is | ||
# intended to run in multiple environments; otherwise, check them in: | ||
# .python-version | ||
|
||
# pipenv | ||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. | ||
# However, in case of collaboration, if having platform-specific dependencies or dependencies | ||
# having no cross-platform support, pipenv may install dependencies that don't work, or not | ||
# install all needed dependencies. | ||
#Pipfile.lock | ||
|
||
# poetry | ||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. | ||
# This is especially recommended for binary packages to ensure reproducibility, and is more | ||
# commonly ignored for libraries. | ||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control | ||
#poetry.lock | ||
|
||
# pdm | ||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. | ||
#pdm.lock | ||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it | ||
# in version control. | ||
# https://pdm.fming.dev/#use-with-ide | ||
.pdm.toml | ||
|
||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm | ||
__pypackages__/ | ||
|
||
# Celery stuff | ||
celerybeat-schedule | ||
celerybeat.pid | ||
|
||
# SageMath parsed files | ||
*.sage.py | ||
|
||
# Environments | ||
.env | ||
.venv | ||
env/ | ||
venv/ | ||
ENV/ | ||
env.bak/ | ||
venv.bak/ | ||
|
||
# Spyder project settings | ||
.spyderproject | ||
.spyproject | ||
|
||
# Rope project settings | ||
.ropeproject | ||
|
||
# mkdocs documentation | ||
/site | ||
|
||
# mypy | ||
.mypy_cache/ | ||
.dmypy.json | ||
dmypy.json | ||
|
||
# Pyre type checker | ||
.pyre/ | ||
|
||
# pytype static type analyzer | ||
.pytype/ | ||
|
||
# Cython debug symbols | ||
cython_debug/ | ||
|
||
# PyCharm | ||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can | ||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore | ||
# and can be added to the global gitignore or merged into this file. For a more nuclear | ||
# option (not recommended) you can uncomment the following to ignore the entire idea folder. | ||
#.idea/ | ||
/.gtm/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,51 +1,52 @@ | ||
### HiveMind Server Setups | ||
# HiveMind Voice Relay | ||
|
||
When building your HiveMind servers there are many ways to go about it, with many optional components | ||
OpenVoiceOS Relay, connect to [HiveMind](https://github.com/JarbasHiveMind/HiveMind-core) | ||
|
||
Common setups: | ||
Similar to [voice-satellite](https://github.com/JarbasHiveMind/HiveMind-voice-sat), but STT and TTS are sent to HiveMind instead of handled on device | ||
|
||
- **OVOS Device**, a full OVOS install without hivemind | ||
- **Hivemind Device**, a OVOS device also running hivemind, eg. a Mark2 with it's own satellites. | ||
- **Hivemind Skills Server**, a minimal HiveMind server that satellites can connect to, supports **text** utterances | ||
only | ||
- **Hivemind Sound Server**, a HiveMind server that supports **text** utterances and **streaming audio** | ||
- **Hivemind Persona Server**, exposes a `ovos-persona` (eg. an LLM) that satellites can connect to, without | ||
running `ovos-core`. | ||
> NOTE: if using ovos-installer for the server this requires the `listener` profile | ||
The table below illustrates the most common setups for a OVOS based Mind, each column represents a running OVOS/HiveMind | ||
service on your server | ||
## Install | ||
|
||
| | **hivemind-core** | **hivemind-listener** | **ovos-core** | **ovos-audio** | **ovos-listener** | **hivemind-persona** | | ||
|-----------------------------|-------------------|-----------------------|---------------|----------------|-------------------|----------------------| | ||
| **OVOS Device** | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | | ||
| **Hivemind Device** | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | | ||
| **Hivemind Skills Server** | ✔️ | ❌ | ✔️ | ❌ | ❌ | ❌ | | ||
| **Hivemind Sound Server** | ❌ | ✔️ | ✔️ | ❌ | ❌ | ❌ | | ||
| **Hivemind Persona Server** | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | | ||
Install dependencies (if needed) | ||
|
||
The table below indicates compatibility for each of the setups described above with the most common voice satellites, | ||
each column corresponds to a different satellite | ||
```bash | ||
sudo apt-get install -y libpulse-dev libasound2-dev | ||
``` | ||
|
||
| | **voice satellite** | **voice relay** | **mic satellite** | | ||
|-----------------------------|---------------------|-----------------|-------------------| | ||
| **OVOS Device** | ❌ | ❌ | ❌ | | ||
| **Hivemind Device** | ✔️ | ✔️ | ❌ | | ||
| **Hivemind Skills Server** | ✔️ | ❌ | ❌ | | ||
| **Hivemind Sound Server** | ✔️ | ✔️ | ✔️ | | ||
| **Hivemind Persona Server** | ✔️ | ❌ | ❌ | | ||
Install with pip | ||
|
||
### HiveMind Satellites | ||
```bash | ||
$ pip install git+https://github.com/JarbasHiveMind/HiveMind-voice-relay | ||
``` | ||
|
||
The table below illustrates how plugins from the OVOS ecosystem relate to the various satellites | ||
## Usage | ||
|
||
**Emoji Key** | ||
```bash | ||
Usage: hivemind-voice-relay [OPTIONS] | ||
|
||
- ✔️: Local (on device) | ||
- 📡: Remote (hivemind-listener) | ||
- ❌: Unsupported | ||
connect to HiveMind | ||
|
||
| Supported Plugins | **Microphone** | **VAD** | **Wake Word** | **STT** | **TTS** | **Media Playback** | **Transformers** | **PHAL** | | ||
|-----------------------------------|------------------|------------------|------------------|------------------|------------------|--------------------|--------------------|--------------------| | ||
| **HiveMind Voice Satellite** | ✔️<br>(Required) | ✔️<br>(Required) | ✔️<br>(Required) | ✔️<br>(Required) | ✔️<br>(Required) | ✔️<br>(Optional) | ✔️<br>(Optional) | ✔️<br>(Optional) | | ||
| **HiveMind Voice Relay** | ✔️<br>(Required) | ✔️<br>(Required) | ✔️<br>(Required) | 📡<br>(Remote) | 📡<br>(Remote) | ✔️<br>(Optional) | ✔️<br>(Optional) | ✔️<br>(Optional) | | ||
| **HiveMind Microphone Satellite** | ✔️<br>(Required) | ✔️<br>(Required) | 📡<br>(Remote) | 📡<br>(Remote) | 📡<br>(Remote) | ❌<br>(Unsupported) | ❌<br>(Unsupported) | ❌<br>(Unsupported) | | ||
Options: | ||
--host TEXT hivemind host | ||
--key TEXT Access Key | ||
--password TEXT Password for key derivation | ||
--port INTEGER HiveMind port number | ||
--selfsigned accept self signed certificates | ||
--help Show this message and exit. | ||
|
||
``` | ||
|
||
|
||
## Configuration | ||
|
||
Voice relay uses the default OpenVoiceOS configuration `~/.config/mycroft/mycroft.conf` | ||
|
||
Supported plugin types: | ||
- Microphone (required) | ||
- VAD (required) | ||
- WakeWord (required) | ||
- Audio Transformers (optional, None by default) | ||
- Dialog Transformers (optional, None by default) | ||
- TTS Transformers (optional, None by default) | ||
- PHAL (optional, None by default) |