Configuration Reference

August 1, 2026 · View on GitHub

This page documents all configuration keys for the PalavreadoPipeline OVOS plugin. Configuration is read from the "palavreado" section of mycroft.conf (or ovos.conf).

Source: palavreado/opm.py:42


Configuration location

{
  "intents": {
    "palavreado": {
      "conf_high": 0.65,
      "conf_med":  0.45,
      "conf_low":  0.25,
      "max_words": 50
    }
  }
}

The "palavreado" dict is fetched via:

core_config = Configuration()
config = config or core_config.get("palavreado", {})

Keys

conf_high

PropertyValue
Typefloat
Default0.65
Range0.0 to 1.0

Minimum confidence required for match_high to return a result. OVOS tries high-confidence pipelines first. A result at this tier suppresses the medium and low tier checks.

Raise this value to make palavreado more conservative at the high tier. Fewer false positives result, but more utterances fall through to the medium tier or other pipeline stages. Lower the value to make more intents fire at the high tier.


conf_med

PropertyValue
Typefloat
Default0.45
Range0.0 to 1.0

Minimum confidence for match_medium. Only evaluated if match_high returns None.


conf_low

PropertyValue
Typefloat
Default0.25
Range0.0 to 1.0

Minimum confidence for match_low. Only evaluated if both high and medium tiers return None. Setting this very low may cause spurious keyword hits to fire when a single vocabulary word appears incidentally in an unrelated utterance.


max_words

PropertyValue
Typeint
Default50
UnitWords (tokens split by whitespace)

Utterances longer than max_words are silently discarded before matching. This prevents pathological-length inputs from consuming disproportionate matching time.

If all utterances in a batch exceed this limit, _match_intent logs an error and returns None.


Language configuration

Language settings are not read from the "palavreado" section. They come from the top-level OVOS config:

KeyWhereDescription
langtop-level mycroft.confPrimary language tag (BCP-47). Defaults to "en-US" if not set.
secondary_langstop-level mycroft.confList of additional BCP-47 language tags. One IntentContainer is created per language.
{
  "lang": "en-US",
  "secondary_langs": ["pt-PT", "es-ES"]
}

Source: palavreado/opm.py:36

self.lang = standardize_lang_tag(core_config.get("lang", "en-US"))
langs = core_config.get("secondary_langs") or []
if self.lang not in langs:
    langs.append(self.lang)

The primary language is always included in the language set even if not listed in secondary_langs.


Summary table

KeyTypeDefaultSectionDescription
conf_highfloat0.65palavreadoHigh-confidence match threshold
conf_medfloat0.45palavreadoMedium-confidence match threshold
conf_lowfloat0.25palavreadoLow-confidence match threshold
KeyTypeDefaultSectionDescription
max_wordsint50palavreadoMaximum utterance word count
langstr"en-US"top-levelPrimary language BCP-47 tag
secondary_langslist[str][]top-levelAdditional language BCP-47 tags

Tuning guidance

Reducing false positives

Raise conf_low and conf_med. At the default conf_low of 0.25, an intent with a single matched required slot and no remainder penalty can score around 0.25 to 0.3. This may be too permissive for some skill domains.

Improving recall for short utterances

Short utterances (1 to 3 words) often score lower than medium utterances. There is less total vocabulary to match against, and the remainder ratio is less favourable. If short commands like "play" or "timer" are not firing, lower conf_low or check that the relevant vocabulary slots have single-word entries.

Multi-language deployments

Make sure secondary_langs is populated in mycroft.conf. If a language is not listed, no IntentContainer is created for it, and all utterances in that language return None. _resolve_lang uses BCP-47 closest-match (via langcodes). For this reason, "en-GB" matches an "en-US" container with a small distance penalty.


← OVOS Pipeline Plugin · Home · Benchmark →