{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://jambonz.org/schema/components/recognizer-deepgramOptions",
  "title": "Deepgram Recognizer Options",
  "description": "Deepgram-specific STT options. Only applies when recognizer vendor is 'deepgram'.",
  "type": "object",
  "properties": {
    "deepgramSttUri": {
      "type": "string",
      "description": "Custom Deepgram STT endpoint URI."
    },
    "deepgramSttUseTls": {
      "type": "boolean",
      "description": "Whether to use TLS when connecting to the Deepgram STT endpoint."
    },
    "apiKey": {
      "type": "string",
      "description": "Deepgram API key. Overrides the key configured in jambonz."
    },
    "tier": {
      "type": "string",
      "description": "Deepgram model tier."
    },
    "model": {
      "type": "string",
      "description": "Deepgram model name (e.g. 'nova-2', 'nova-2-general')."
    },
    "customModel": {
      "type": "string",
      "description": "ID of a custom-trained Deepgram model."
    },
    "version": {
      "type": "string",
      "description": "Model version."
    },
    "punctuate": {
      "type": "boolean",
      "description": "Enable automatic punctuation."
    },
    "smartFormatting": {
      "type": "boolean",
      "description": "Enable Deepgram smart formatting (dates, numbers, etc.)."
    },
    "noDelay": {
      "type": "boolean",
      "description": "Disable Deepgram's internal buffering for lower latency."
    },
    "profanityFilter": {
      "type": "boolean",
      "description": "Filter profanity from transcripts."
    },
    "redact": {
      "type": "string",
      "enum": ["pci", "numbers", "true", "ssn"],
      "description": "Redact sensitive information from transcripts."
    },
    "diarize": {
      "type": "boolean",
      "description": "Enable speaker diarization."
    },
    "diarizeVersion": {
      "type": "string",
      "description": "Diarization model version."
    },
    "ner": {
      "type": "boolean",
      "description": "Enable named entity recognition."
    },
    "multichannel": {
      "type": "boolean",
      "description": "Enable multichannel processing."
    },
    "alternatives": {
      "type": "number",
      "description": "Number of alternative transcripts to return."
    },
    "numerals": {
      "type": "boolean",
      "description": "Convert spoken numbers to digits."
    },
    "search": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Terms to search for in the transcript."
    },
    "replace": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Terms to replace in the transcript."
    },
    "keywords": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Keywords to boost recognition for."
    },
    "keyterms": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Key terms to boost recognition for."
    },
    "endpointing": {
      "type": ["boolean", "number"],
      "description": "Endpointing sensitivity. Boolean to enable/disable, or number of milliseconds."
    },
    "utteranceEndMs": {
      "type": "number",
      "description": "Milliseconds of silence to detect end of utterance."
    },
    "shortUtterance": {
      "type": "boolean",
      "description": "Optimize for short utterances."
    },
    "vadTurnoff": {
      "type": "number",
      "description": "Milliseconds of silence before VAD turns off."
    },
    "tag": {
      "type": "string",
      "description": "Tag to associate with the request for tracking."
    },
    "fillerWords": {
      "type": "boolean",
      "description": "Include filler words (um, uh) in transcript."
    },
    "eotThreshold": {
      "type": "number",
      "description": "End-of-turn confidence threshold (0-1)."
    },
    "eotTimeoutMs": {
      "type": "number",
      "description": "End-of-turn timeout in milliseconds."
    },
    "mipOptOut": {
      "type": "boolean",
      "description": "Opt out of Deepgram's model improvement program."
    },
    "entityPrompt": {
      "type": "string",
      "description": "Prompt to guide entity detection."
    },
    "eagerEotThreshold": {
      "type": "number",
      "description": "Eager end-of-turn threshold for faster response."
    },
    "languageHints": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Language hints for Deepgram Flux Multilingual. BCP-47 codes (e.g. 'en', 'es', 'fr'). Biases transcription toward specified languages."
    }
  },
  "additionalProperties": false
}
