Update README
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
- /.venv/
|
- /.venv/
|
||||||
|
- /.mypy_cache/
|
||||||
|
|||||||
@@ -1,3 +1,112 @@
|
|||||||
# Wyoming Satellite
|
# Wyoming Satellite
|
||||||
|
|
||||||
Satellite using the [Wyoming protocol](https://github.com/rhasspy/wyoming).
|
Remote satellite using the [Wyoming protocol](https://github.com/rhasspy/wyoming).
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/setup
|
||||||
|
```
|
||||||
|
|
||||||
|
You will need a Wyoming microphone and (optionally) a Wyoming sound service:
|
||||||
|
|
||||||
|
* [wyoming-mic-external](https://github.com/rhasspy/wyoming-mic-external)
|
||||||
|
* Record audio with an external program like `arecord`
|
||||||
|
* [wyoming-snd-external](https://github.com/rhasspy/wyoming-snd-external)
|
||||||
|
* Play audio with an external program like `aplay`
|
||||||
|
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Start your microphone service and (optionally) your sound service. In this example, we will run the microphone service on port `10600` and the sound service on port `10601`.
|
||||||
|
|
||||||
|
Start microphone service:
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/run \
|
||||||
|
--program 'arecord -r 16000 -c 1 -f S16_LE -t raw' \
|
||||||
|
--rate 16000 \
|
||||||
|
--width 2 \
|
||||||
|
--channels 1 \
|
||||||
|
--uri 'tcp://127.0.0.1:10600'
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `arecord -D <DEVICE> ...` if you need to use a different recording device (list them with `arecord -L` and prefer `plughw:` devices). Add `--debug` to print additional logs.
|
||||||
|
|
||||||
|
In a separate terminal, start the sound service:
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/run \
|
||||||
|
--uri 'tcp://127.0.0.1:10601' \
|
||||||
|
--program 'aplay -r 22050 -c 1 -f S16_LE -t raw' \
|
||||||
|
--rate 22050 \
|
||||||
|
--width 2 \
|
||||||
|
--channels 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `aplay -D <DEVICE> ...` if you need to use a different playback device (list them with `aplay -L` and prefer `plughw:` devices). Add `--debug` to print additional logs.
|
||||||
|
|
||||||
|
Lastly, start the satellite in a separate terminal:
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/run \
|
||||||
|
--name 'test satellite' \
|
||||||
|
--uri 'tcp://0.0.0.0:10700' \
|
||||||
|
--mic-uri 'tcp://127.0.0.1:10600' \
|
||||||
|
--snd-uri 'tcp://127.0.0.1:10601'
|
||||||
|
```
|
||||||
|
|
||||||
|
This will run the satellite on port `10700` and use the local microphone/sound services. Add `--debug` to print additional logs.
|
||||||
|
|
||||||
|
Audio will be continuously streamed to the server, where wake word detection, etc. will occur.
|
||||||
|
|
||||||
|
### Local Wake Word Detection
|
||||||
|
|
||||||
|
Install a wake word detection service, such as [wyoming-openwakeword](https://github.com/rhasspy/wyoming-openwakeword/) and start it:
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/run \
|
||||||
|
--uri 'tcp://0.0.0.0:10400' \
|
||||||
|
--preload-model 'ok_nabu'
|
||||||
|
```
|
||||||
|
|
||||||
|
Add `--debug` to print additional logs. See `--help` for more information.
|
||||||
|
|
||||||
|
Included wake words are:
|
||||||
|
|
||||||
|
* `ok_nabu`
|
||||||
|
* `hey_jarvis`
|
||||||
|
* `alexa`
|
||||||
|
* `hey_mycroft`
|
||||||
|
* `hey_rhasspy`
|
||||||
|
|
||||||
|
[Community trained wake words](https://github.com/fwartner/home-assistant-wakewords-collection) are also available and can be included with `--custom-model-dir <DIR>` where `<DIR>` contains `.tflite` file(s).
|
||||||
|
|
||||||
|
Next, start the satellite with some additional arguments:
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
script/run \
|
||||||
|
--name 'test satellite' \
|
||||||
|
--uri 'tcp://0.0.0.0:10700' \
|
||||||
|
--mic-uri 'tcp://127.0.0.1:10600' \
|
||||||
|
--snd-uri 'tcp://127.0.0.1:10601' \
|
||||||
|
--wake-uri 'tcp://127.0.0.1:10400' \
|
||||||
|
--wake-word 'ok_nabu'
|
||||||
|
```
|
||||||
|
|
||||||
|
Audio will only be streamed to the server after the wake word has been detected.
|
||||||
|
|
||||||
|
### Event Service
|
||||||
|
|
||||||
|
Satellites can respond to events from the server using an event service (`--event-uri`). See `wyoming_satellite/example_event_client.py` for a basic client that just logs events.
|
||||||
|
|
||||||
|
Available events are:
|
||||||
|
|
||||||
|
* `Detect` - start of wake word detection
|
||||||
|
* `Detection` - wake word is detected
|
||||||
|
* `VoiceStarted` - user has started speaking
|
||||||
|
* `VoiceStopped` - user has stopped speaking
|
||||||
|
* `Transcript` - text spoken by user
|
||||||
|
* `Synthesize` - text response that will be spoken
|
||||||
|
* `AudioStart` - response audio started
|
||||||
|
* `AudioStop` - response audio stopped
|
||||||
|
|||||||
Reference in New Issue
Block a user