Microphone Plugins in OVOS
Microphone plugins in Open Voice OS (OVOS) are responsible for capturing audio input and feeding it to the listener. Introduced in ovos-core
version 0.0.8, these plugins allow for flexible integration with different audio backends and platforms.
Usage Guide
To use a microphone plugin in OVOS:
- Install the desired plugin with
pip
:
pip install ovos-microphone-plugin-<name>
- Update your
mycroft.conf
(orovos.conf
) to specify the plugin:
{
"listener": {
"microphone": {
"module": "ovos-microphone-plugin-alsa" // or another plugin
}
}
}
- Restart OVOS to apply the new microphone plugin configuration.
Supported Microphone Plugins
Plugin | Description | OS Compatibility |
---|---|---|
ovos-microphone-plugin-alsa | Based on pyalsaaudio. Offers low-latency and high performance on ALSA-compatible devices. | Linux |
ovos-microphone-plugin-pyaudio | Uses PyAudio. Good general-purpose plugin for Linux. | Linux |
ovos-microphone-plugin-sounddevice | Built on python-sounddevice. Offers cross-platform support. | Linux, macOS, Windows |
ovos-microphone-plugin-files | Uses audio files as input instead of a live microphone—ideal for testing and debugging. | Linux, macOS, Windows |
ovos-microphone-plugin-arecord | Wraps arecord using subprocess calls. Simple and effective on systems with ALSA. |
Linux |
ovos-microphone-plugin-socket | Receives audio over a socket connection. Useful for remote microphone setups. | Linux, macOS, Windows |
Technical Explanation
OVOS uses a plugin architecture to decouple the audio input system from the rest of the voice stack. Microphone plugins implement a common interface, making it easy to swap between different audio sources or backends without changing application code.
Each plugin provides a stream of audio data that OVOS uses to detect wake words and perform speech-to-text (STT) processing. The microphone
module is configured in the main listener settings, and the selected plugin is loaded dynamically at runtime.
Tips & Caveats
- Performance: For best results on Linux, the ALSA plugin typically provides the lowest latency.
- Cross-platform development: Use the
sounddevice
orfiles
plugin when developing on non-Linux systems. - Testing: The
files
plugin is ideal for automated testing environments where live input isn’t available. - Remote audio: The
socket
plugin is a proof-of-concept for networked microphones and is not recommended for production use without customization.
Coming Soon - Standalone usage examples - How to create your own microphone plugin (plugin template)