{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/everyvoice-tts-toolkit-text-configuration/versions/0.3.json",
  "title": "TextConfig",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/EveryVoiceTTS/everyvoice/main/everyvoice/.schema/everyvoice-shared-text-0.3.json",
    "sourceSha256": "8cd81180b1920cc456071de43c540542a84e1038ec0e92845ee57632aeef5bc8",
    "fileMatch": [
      "everyvoice-shared-text.yaml",
      "everyvoice-shared-text.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "symbols": {
      "$ref": "#/$defs/Symbols"
    },
    "to_replace": {
      "type": "object",
      "default": {},
      "title": "To Replace",
      "additionalProperties": {
        "type": "string"
      }
    },
    "cleaners": {
      "items": {
        "type": "string"
      },
      "title": "Cleaners",
      "type": "array"
    },
    "g2p_engines": {
      "type": "object",
      "default": {},
      "description": "User defined or external G2P engines.\nSee <https://github.com/EveryVoiceTTS/everyvoice_g2p_template_plugin> to implement your own G2P.",
      "examples": [
        "{\"fr\": \"everyvoice_plugin_g2p4example.g2p\"}"
      ],
      "title": "External G2P",
      "additionalProperties": {
        "examples": [
          "everyvoice_plugin_g2p4example.g2p"
        ],
        "type": "string"
      }
    }
  },
  "$defs": {
    "Punctuation": {
      "properties": {
        "exclamations": {
          "default": [
            "!",
            "¡"
          ],
          "description": "Exclamation punctuation symbols used in your datasets. Replaces these symbols with <EXCL> internally.",
          "items": {
            "type": "string"
          },
          "title": "Exclamations",
          "type": "array"
        },
        "question_symbols": {
          "default": [
            "?",
            "¿"
          ],
          "description": "Question/interrogative punctuation symbols used in your datasets. Replaces these symbols with <QINT> internally.",
          "items": {
            "type": "string"
          },
          "title": "Question Symbols",
          "type": "array"
        },
        "quotemarks": {
          "default": [
            "\"",
            "'",
            "“",
            "”",
            "«",
            "»"
          ],
          "description": "Quotemark punctuation symbols used in your datasets. Replaces these symbols with <QUOTE> internally.",
          "items": {
            "type": "string"
          },
          "title": "Quotemarks",
          "type": "array"
        },
        "parentheses": {
          "default": [
            "(",
            ")",
            "[",
            "]",
            "{",
            "}"
          ],
          "description": "Punctuation symbols indicating parentheses, brackets, or braces. Replaces these symbols with <PAREN> internally.",
          "items": {
            "type": "string"
          },
          "title": "Parentheses",
          "type": "array"
        },
        "periods": {
          "default": [
            "."
          ],
          "description": "Punctuation symbols indicating a 'period' used in your datasets. Replaces these symbols with <PERIOD> internally.",
          "items": {
            "type": "string"
          },
          "title": "Periods",
          "type": "array"
        },
        "colons": {
          "default": [
            ":"
          ],
          "description": "Punctuation symbols indicating a 'colon' used in your datasets. Replaces these symbols with <COLON> internally.",
          "items": {
            "type": "string"
          },
          "title": "Colons",
          "type": "array"
        },
        "semi_colons": {
          "default": [
            ";"
          ],
          "description": "Punctuation symbols indicating a 'semi-colon' used in your datasets. Replaces these symbols with <SEMICOL> internally.",
          "items": {
            "type": "string"
          },
          "title": "Semi Colons",
          "type": "array"
        },
        "hyphens": {
          "default": [
            "-",
            "—",
            "*"
          ],
          "description": "Punctuation symbols indicating a 'hyphen' used in your datasets. * is a hyphen by default since unidecode decodes middle-dot punctuation as an asterisk. Replaces these symbols with <HYPHEN> internally.",
          "items": {
            "type": "string"
          },
          "title": "Hyphens",
          "type": "array"
        },
        "commas": {
          "default": [
            ","
          ],
          "description": "Punctuation symbols indicating a 'comma' used in your datasets. Replaces these symbols with <COMMA> internally.",
          "items": {
            "type": "string"
          },
          "title": "Commas",
          "type": "array"
        },
        "ellipses": {
          "default": [
            "…"
          ],
          "description": "Punctuation symbols indicating ellipses used in your datasets. Replaces these symbols with <EPS> internally.",
          "items": {
            "type": "string"
          },
          "title": "Ellipses",
          "type": "array"
        }
      },
      "title": "Punctuation",
      "type": "object"
    },
    "Symbols": {
      "type": "object",
      "properties": {
        "silence": {
          "default": [
            "<SIL>"
          ],
          "description": "The symbol(s) used to indicate silence.",
          "items": {
            "type": "string"
          },
          "title": "Silence",
          "type": "array"
        },
        "punctuation": {
          "allOf": [
            {
              "$ref": "#/$defs/Punctuation"
            }
          ],
          "description": "EveryVoice will combine punctuation and normalize it into a set of five permissible types of punctuation to help tractable training."
        }
      },
      "title": "Symbols",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}
