This release is a pre-release and may not be stable for production use.
OVOS Transcription Validator Plugin
This plugin is a utterance transformer for OVOS. It uses an OpenAI-compatible large language model (LLM) to check speech-to-text (STT) transcriptions before your voice assistant processes them.
The plugin filters out garbled, nonsensical, or incomplete utterances. This reduces confusion and improves the accuracy of downstream skills.
Features
- Validates transcriptions in multiple languages.
- Works with OpenAI-compatible LLMs (for example, the OpenAI API, Ollama, or a custom server).
- Filters out invalid utterances before the assistant processes them.
- Plays an error sound or shows a dialog when it rejects an utterance.
- Supports per-request configuration overrides.
How It Works
- The plugin receives an STT transcription and a language code.
- It sends a structured prompt with examples to the configured OpenAI-compatible LLM API.
- The LLM answers
True(valid) orFalse(invalid). - If the LLM answers
False, the plugin cancels the utterance. It also triggers a dialog prompt or an error sound if you configure one.
Installation
pip install ovos-transcription-validator-plugin
Configuration
Add the plugin to the utterance_transformers section of your mycroft.conf.
By default, the plugin uses https://llama.smartgic.io/v1 with the qwen2.5:7b model and a placeholder API key sk-xxxx.
{
"utterance_transformers": {
"ovos-transcription-validator-plugin": {
"api_url": "https://llama.smartgic.io/v1",
"api_key": "sk-xxxx",
"model": "qwen2.5:7b",
"prompt_template_system": "/path/to/system_template.txt",
"prompt_template_user": "/path/to/user_template.txt",
"error_sound": true,
"mode": "ignore"
}
}
}
Available Settings
| Key | Description | Default Value |
|---|---|---|
| api_url | The URL of your OpenAI-compatible LLM API endpoint. | https://llama.smartgic.io/v1 |
| api_key | Your API key for the LLM service. Set it to null, or omit it, if the service needs no key (some local Ollama setups). | sk-xxxx (placeholder) |
| model | The name of the LLM model to use (for example, qwen2.5:7b, gpt-3.5-turbo, or gemma3:1b). | qwen2.5:7b |
| prompt_template_system | Path to a .txt file that overrides the default system prompt for the LLM. Optional. | (internal default) |
| prompt_template_user | Path to a .txt file that overrides the default user prompt template for the LLM. Optional. | (internal default) |
| error_sound | Set to true to play a sound on error, false to disable it, or give a string path to a custom sound file. | false |
| mode | Set to reprompt to ask the user to repeat the utterance, or ignore to cancel the invalid input silently. | ignore |
| max_tokens | The maximum number of tokens in the LLM's response. | 3 |
| temperature | The LLM generation temperature. Lower values (for example, 0.0) make the output more deterministic, which suits True/False responses. | 0.0 |
| top_p | The LLM sampling parameter. | 0.2 |
| stop_token | A list of strings that stop the LLM from generating further tokens when it encounters them. | ["\n", " "] |
| api_timeout | The timeout, in seconds, for the LLM API request. | 10 |
Requirements & Notes
- You need an OpenAI-compatible LLM API endpoint, for example the OpenAI API, Ollama running locally, or another custom server.
- The model you configure must already be available on your chosen LLM server.
- The plugin adapts to different languages based on the LLM's capabilities and training.
Related Projects
- OpenVoiceOS — the org that maintains the OVOS core and the utterance transformer framework this plugin extends.
Feedback & Contributions
Found a bug or want to contribute? Open an issue or a pull request.
Metadata
Release files for ovos-transcription-validator-plugin 0.1.3a2
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_transcription_validator_plugin-0.1.3a2.tar.gz | 22.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_transcription_validator_plugin-0.1.3a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.8 kB
Release files / ovos_transcription_validator_plugin-0.1.3a2.tar.gz
| Download URL | ovos_transcription_validator_plugin-0.1.3a2.tar.gz |
|---|---|
| Size | 22.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
87d69e805bf3c8de0e36957a65f4e95bfd72d8e9a3a0f92dcc7d7acb7d2d8153
|
|
BLAKE2b-256 checksum How to use checksums |
1ed4202f0839f3635e52e840653e677913d1519a14d364150911e00780d736d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / ovos_transcription_validator_plugin-0.1.3a2-py3-none-any.whl
| Download URL | ovos_transcription_validator_plugin-0.1.3a2-py3-none-any.whl |
|---|---|
| Size | 28.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8476c6715217f4414bd5bf4ea6f87337920e817c12b9f6a67e70ce491e2134bd
|
|
BLAKE2b-256 checksum How to use checksums |
c3d03e3211d6c4b5256207d26744874e2195b514d5b78ad657f3353d349c8012
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|