Skip to content

The mishearing and confirmation vocabularies are hardcoded English, so a non-English call reports zero findings #3

Description

@royalpinto007

checks.py holds both vocabularies as module constants with no way to override them:

_CONFUSABLE = [(r"\bfifteen\b", r"\bfifty\b"), ...]   # seven -teen/-ty pairs
_CONFIRM = re.compile(r"\b(?:just to confirm|confirm|did you say|...)\b", re.I)

Run this against a Spanish, Hindi or German call and check_misheard and check_acted_without_confirming both return an empty list. Not "no data", not "unsupported": clean. The two most expensive checks in the tool, the ones the README leads with, quietly report success on every call they cannot read.

That is the same failure shape this project exists to catch. A transcript that looks fine because nothing examined it.

Proposal

Move both vocabularies into a locale pack, load the English one by default, and let a suite point at its own. A YAML or JSON file with confusable_pairs and confirmation_phrases is enough, and it makes the English list editable too, which is worth having on its own: every deployment has domain terms its STT mangles.

If a call is in a language with no pack loaded, say so in the output rather than returning no findings.

Acceptance

  • English behaviour is byte-identical with the default pack
  • A suite can supply its own pairs and phrases
  • Running with no pack for the call's language reports that the check did not run, and is not counted as a pass
  • One non-English pack shipped as an example, with a fixture

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions