ovos-core listener daemon client
Project description
OVOS Simple Listener
ovos-simple-listener
is a lightweight alternative to ovos-dinkum-listener
, designed for efficient wake word detection and speech recognition.
This listener provides a streamlined approach for integrating voice command capabilities into your applications using the Open Voice OS (OVOS) framework.
It was made to power hivemind-listener and hivemind-mic-satellite, but can also be used in place of ovos-dinkum-listener in your OVOS setups
at around 150 Lines of code, this repo is a good clean reference of how to use OVOS audio plugins in your own applications
Features
- Wake Word Detection: Supports customizable wake word engines to initiate listening.
- Voice Activity Detection (VAD): Detects silence and speech to optimize audio processing.
- Speech Recognition: Utilizes various speech-to-text (STT) engines to transcribe audio input.
- Callback System: Provides a flexible callback mechanism to handle state changes and processed audio.
- Multithreading Support: Operates in a separate thread to avoid blocking the main application flow.
Installation
TODO: This has not yet been packaged and published on pypi, you must run the code manually
To use ovos-simple-listener
, clone this repository and install the necessary dependencies. You can do this using pip:
git clone https://github.com/TigreGotico/ovos-simple-listener
cd ovos-simple-listener
pip install -r requirements.txt
OVOS Usage
run ovos_simple_listener/__main__.py
in place of ovos-dinkum-listener, plugins are selected from the default OVOS config ~/.config/mycroft/mycroft.conf
Library Usage
To use ovos-simple-listener
, you can initialize it with the desired components (microphone, STT, VAD, and wake word) as shown in the example below:
from ovos_simple_listener import SimpleListener
from ovos_plugin_manager.microphone import OVOSMicrophoneFactory
from ovos_plugin_manager.stt import OVOSSTTFactory
from ovos_plugin_manager.vad import OVOSVADFactory
from ovos_plugin_manager.wakewords import OVOSWakeWordFactory
listener = SimpleListener(
mic=OVOSMicrophoneFactory.create(),
vad=OVOSVADFactory.create(),
wakeword=OVOSWakeWordFactory.create_hotword("hey_mycroft"),
stt=OVOSSTTFactory.create()
)
listener.run()
Callbacks
You can implement your own callbacks by extending the ListenerCallbacks
class to handle events such as starting a command, ending listening, processing audio, errors, and recognizing text.
from ovos_simple_listener import ListenerCallbacks
class MyCallbacks(ListenerCallbacks):
@classmethod
def listen_callback(cls):
# Handle when the listener starts processing a command
pass
@classmethod
def end_listen_callback(cls):
# Handle when the listener stops processing a command
pass
@classmethod
def audio_callback(cls, audio):
# Handle processed audio data
pass
@classmethod
def error_callback(cls, audio):
# Handle STT errors
pass
@classmethod
def text_callback(cls, utterance, lang):
# Handle recognized text
pass
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
Acknowledgements
- Open Voice OS for providing the framework and plugins.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ovos-simple-listener-0.0.3.tar.gz
.
File metadata
- Download URL: ovos-simple-listener-0.0.3.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68fc7a7489f9d01075c4baaff931f8f29377a03df8215ff5f6c9362c9e38df76 |
|
MD5 | 633bf2fac4dbfd901033a9ffec25a771 |
|
BLAKE2b-256 | 5392df1531ce00f9ba9c46c42cf2b02ddf8705a285a0a19078698d6ef7b8e92b |
File details
Details for the file ovos_simple_listener-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: ovos_simple_listener-0.0.3-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd7c799b47b798db698a13f27ef5a640ad64b460295659bf4127f53a281cfbaf |
|
MD5 | 9bd6362c40fd1571e726eb0824e27e7c |
|
BLAKE2b-256 | c60fab4eb186bb1a6cd574fd3120a2894155d278e243717aa1c6ebd291e885f9 |