OpenVoiceOS / OpenVoiceOS/ovos-workshop

Proposal: adding metadata to dialog files

Open
#56 8 comments 0 reactions 3 assignees View on GitHub

@NeonDaniel is already working on this.

Since Mar 19, 2023.

enhancement question
Dominant language
Python
Stars
6
Forks
17
Avg merge
1d 13h
Merged PRs (30d)
36

Description

Problems being solved

  • 1 - in some languages TTS utterances grammatical gender may depend on the gender of the person listening (the user)
    • this can later be detected in STT audio via speaker-recognition
    • gender recognition from audio is possible but not accurate, it is best to tie it to a enrolled speaker if possible
  • 2 - in some languages TTS utterances grammatical gender may depend on the gender of the speaker (the assistant)
    • eg. in portuguese you there is no gender neutral way to say "thank you", you say "obrigado"/"obrigada"
    • this would be a setting of the voice assistant
  • 3 - personality settings
    • "increase sarcasm by 20%"

Dialog Json

New file format, .jsonl, where each line in the file contains a json of the format

{"utterance": "XXX", "attitude": "sarcastic", "assistant_gender": "male", "listener_gender": "male", "weight": 0.3}

jsonl format info: https://jsonlines.org

Personality Settings

in mycroft.conf users can tweak personality

weights reflect how likely a dialog is to be selected

"persona": {
    "gender": "male",
    "attitudes": {
        "normal": 10,
        "flippant": 8.0,
        "funny": 8.0,
        "irritable": 0
      }
}

How it works

  • 1 - load .jsonl file if it exists, else old .dialog file
  • 2 - filter samples per assistant gender
  • 3 - select an attitude based on weights defined in mycroft.conf
  • 4 - filter samples per attitudes
  • 5 - select based on weights of .jsonl file

references

previous discussions

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.