palavreado

August 11, 2026 ยท View on GitHub

Dead-simple keyword-based intent parser for OpenVoiceOS (OVOS) voice assistants. It is a drop-in replacement for Adapt.


Overview

palavreado matches natural-language utterances against named intents built from required and optional keyword slots. Each slot holds a vocabulary list. When the right words are present in the utterance, the intent fires. Optional regex and simplematch autoregex patterns enable structured entity extraction.

The library ships two things:

  • A standalone Python library (IntentContainer + IntentCreator) usable without any OVOS dependency.
  • An OVOS pipeline plugin (PalavreadoPipeline) that responds to the same message-bus events as Adapt, making it a zero-change drop-in for skills.

Key classes

ClassPurposeSource
IntentCreatorFluent builder for slot definitionspalavreado/builder.py:48
IntentContainerHolds registered intents and performs keyword matchingpalavreado/__init__.py:80
PalavreadoPipelineOVOS pipeline plugin wrapping IntentContainerpalavreado/opm.py:22

Helper functions

FunctionPurposeSource
expand_samplesExpand `(ab)/[optional]` notation into flat string lists
pattern2regexConvert simplematch patterns to regex stringspalavreado/builder.py:14
normalize_utteranceNormalise a query at inference timepalavreado/bracket_expansion.py:115
FunctionPurposeSource
normalize_exampleNormalise a training sample at registration timepalavreado/bracket_expansion.py:125
lemmatizeLanguage-agnostic singular/apostrophe stem for matchingpalavreado/bracket_expansion.py:137
get_utterance_remainderReturn the portion of an utterance not consumed by matched slotspalavreado/__init__.py:54

Quick facts

  • Languages: any (normalisation and lemmatizer are language-agnostic. Multi-language OVOS is handled by per-language IntentContainer instances)

  • Matching strategy: keyword lookup, contiguous + non-contiguous multi-word, optional regex / autoregex entity extraction

  • Dependencies: simplematch, quebra_frases (core). The OVOS stack is only required for the pipeline plugin

  • Python: 3.9 to 3.13

  • License: Apache 2.0


Contents

DocumentAudienceSummary
InstallationUserspip, from source, optional deps
Quick StartUsers5-minute guide to building and matching intents
Intent APIDevelopersFull IntentCreator and IntentContainer reference
Confidence ScoringDevelopersFormula, multipliers, penalties, and clamping
DocumentAudienceSummary
NormalisationDevelopersApostrophe handling, whitespace, lemmatizer
Context GatingDevelopersrequire_context / exclude_context system
OVOS PluginIntegratorsPipeline plugin, bus events, mycroft.conf
Hierarchical PipelineIntegratorsHierarchical two-level routing via HierarchicalIntentContainer
ConfigurationIntegratorsAll config keys for the OVOS plugin
DocumentAudienceSummary
BenchmarkEveryone284-case accuracy comparison vs Adapt
TroubleshootingEveryoneCommon problems and fixes