This release is a pre-release and may not be stable for production use.
ovos-audio
ovos-audio is the audio daemon for OpenVoiceOS. It handles text-to-speech (TTS) synthesis and sound playback, and it runs as a background service that connects to the OVOS MessageBus.
Install
pip install ovos-audio[extras]
The extras group installs this package with the default plugins. Without it, you must install and configure TTS modules yourself, as described below.
Configuration
ovos-audio reads its settings from mycroft.conf.
{
// Text to Speech parameters
"tts": {
"module": "ovos-tts-plugin-server",
"fallback_module": "ovos-tts-plugin-mimic",
"ovos-tts-plugin-mimic": {
"voice": "ap"
}
},
// File locations of sounds to play for system events
"sounds": {
"start_listening": "snd/start_listening.wav",
"end_listening": "snd/end_listening.wav",
"acknowledge": "snd/acknowledge.mp3",
"error": "snd/error.mp3"
},
// Mechanism used to play WAV audio files
"play_wav_cmdline": "paplay %1 --stream-name=mycroft-voice",
// Mechanism used to play MP3 audio files
"play_mp3_cmdline": "mpg123 %1",
// Mechanism used to play OGG audio files
"play_ogg_cmdline": "ogg123 -q %1"
}
Persona Support
ovos-audio supports dialog-transformer plugins that rewrite generated speech to match a tone or persona. See the technical manual's dialog transformers page for the full transformer chain and priority rules.
For example, ovos-solver-plugin-openai-persona rewrites text before synthesis, based on a persona string. Sample personas:
"rewrite the text as if you were explaining it to a 5-year-old""rewrite the text as if it was an angry old man speaking""Add more 'dude'ness to it"
Example input and output with the "explain to a 5-year-old" persona:
- Input:
"Quantum mechanics is a branch of physics that describes the behavior of particles at the smallest scales." - Output:
"Quantum mechanics is like a special kind of science that helps us understand really tiny things."
To enable the plugin, add this to mycroft.conf:
"dialog_transformers": {
"ovos-dialog-transformer-openai-plugin": {
"rewrite_prompt": "rewrite the text as if you were explaining it to a 5-year-old"
}
}
Using Legacy AudioService
The legacy audio service handles audio playback through the old Mycroft API. See the implementation in mycroft-core and ovos-bus-client.
By default, OCP delegates to the legacy audio service when needed, so no action is required. If you disable OCP, this API becomes the sole media playback provider.
Note: once
ovos-mediais released, OCP and this API will be disabled by default and deprecated.
See docs/audio-service.md for the module reference, and the technical manual's OCP audio plugin page for how OCP relates to this subsystem.
{
"enable_old_audioservice": true,
"disable_ocp": true,
"Audio": {
"default-backend": "vlc",
"backends": {
"simple": {
"type": "ovos_audio_simple",
"active": true
},
"vlc": {
"type": "ovos_vlc",
"active": true
}
}
}
},
}
Legacy backend plugins:
- ovos-vlc-plugin
- ovos-audio-plugin-simple (no HTTPS support)
- ovos-audio-plugin-mpv (recommended default)
- ovos-media-plugin-chromecast
- ovos-media-plugin-spotify
About OCP:
- OCP was developed for
mycroft-coreunder the legacy audio service system. - OCP is always the default audio plugin, unless
"disable_ocp": trueis set in the config. - OCP uses the legacy API internally to delegate playback when the GUI is unavailable, or when configured to do so.
- OCP does not support old Mycroft CommonPlay skills. The
"ocp_legacy"pipeline inovos-corehandles that instead. - ovos-media will fully replace OCP in
ovos-audio1.0.0.
Related Projects
- ovos-media, the replacement for OCP and the legacy audio service
- ovos-core, the assistant core that starts and manages
ovos-audio - ovos-plugin-manager, plugin discovery for TTS, G2P, and audio backends
- ovos-bus-client, the MessageBus client used to communicate with
ovos-audio
See docs/index.md for a full architecture overview.
License
ovos-audio is licensed under the Apache License 2.0.
Metadata
Release files for ovos-audio 2.2.4a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_audio-2.2.4a1.tar.gz | 26.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_audio-2.2.4a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.2 kB
Release files / ovos_audio-2.2.4a1.tar.gz
| Download URL | ovos_audio-2.2.4a1.tar.gz |
|---|---|
| Size | 26.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aca96cf2b2c58f56bac4c46b001471efb850e8adaab14d7ff1f0fc33f7e5e322
|
|
BLAKE2b-256 checksum How to use checksums |
bda0e19eaad6e25453a11d053204093234c5e7e885d288937ab0e9e5d6e8d307
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_audio-2.2.4a1-py3-none-any.whl
| Download URL | ovos_audio-2.2.4a1-py3-none-any.whl |
|---|---|
| Size | 31.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
63fc32df9eb06c6a26153dc29e66dc86ea0c21bc5617a8bd4789c5dd2d56e74a
|
|
BLAKE2b-256 checksum How to use checksums |
38700719f24c0ba93e0d29cc4ab8c96229210a7d23ed9c73319733269b333dc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|