{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/DeepgramTranscriber", "title": "DeepgramTranscriber", "type": "object", "properties": { "provider": { "type": "string", "description": "This is the transcription provider that will be used.", "enum": [ "deepgram" ] }, "model": { "description": "This is the Deepgram model that will be used. A list of models can be found here: https://developers.deepgram.com/docs/models-languages-overview", "oneOf": [ { "type": "string", "enum": [ "nova-3", "nova-3-general", "nova-3-medical", "nova-2", "nova-2-general", "nova-2-meeting", "nova-2-phonecall", "nova-2-finance", "nova-2-conversationalai", "nova-2-voicemail", "nova-2-video", "nova-2-medical", "nova-2-drivethru", "nova-2-automotive", "nova", "nova-general", "nova-phonecall", "nova-medical", "enhanced", "enhanced-general", "enhanced-meeting", "enhanced-phonecall", "enhanced-finance", "base", "base-general", "base-meeting", "base-phonecall", "base-finance", "base-conversationalai", "base-voicemail", "base-video", "whisper", "flux-general-en", "flux-general-multi" ] }, { "type": "string" } ] }, "language": { "type": "string", "description": "This is the language that will be set for the transcription. The list of languages Deepgram supports can be found here: https://developers.deepgram.com/docs/models-languages-overview", "enum": [ "ar", "az", "ba", "be", "bg", "bn", "br", "bs", "ca", "cs", "da", "da-DK", "de", "de-CH", "el", "en", "en-AU", "en-CA", "en-GB", "en-IE", "en-IN", "en-NZ", "en-US", "es", "es-419", "es-LATAM", "et", "eu", "fa", "fi", "fr", "fr-CA", "ha", "haw", "he", "hi", "hi-Latn", "hr", "hu", "id", "is", "it", "ja", "jw", "kn", "ko", "ko-KR", "ln", "lt", "lv", "mk", "mr", "ms", "multi", "nl", "nl-BE", "no", "pl", "pt", "pt-BR", "pt-PT", "ro", "ru", "sk", "sl", "sn", "so", "sr", "su", "sv", "sv-SE", "ta", "taq", "te", "th", "th-TH", "tl", "tr", "tt", "uk", "ur", "vi", "yo", "zh", "zh-CN", "zh-HK", "zh-Hans", "zh-Hant", "zh-TW" ] }, "smartFormat": { "type": "boolean", "description": "This will be use smart format option provided by Deepgram. It's default disabled because it can sometimes format numbers as times but it's getting better.", "example": false }, "mipOptOut": { "type": "boolean", "description": "If set to true, this will add mip_opt_out=true as a query parameter of all API requests. See https://developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program#want-to-opt-out\n\nThis will only be used if you are using your own Deepgram API key.\n\n@default false", "example": false, "default": false }, "numerals": { "type": "boolean", "description": "If set to true, this will cause deepgram to convert spoken numbers to literal numerals. For example, \"my phone number is nine-seven-two...\" would become \"my phone number is 972...\"\n\n@default false", "example": false }, "profanityFilter": { "type": "boolean", "description": "If set to true, Deepgram will replace profanity in transcripts with surrounding asterisks, e.g. \"f***\".\n\n@default false", "example": false }, "redaction": { "type": "array", "description": "Enables redaction of sensitive information from transcripts.\n\nOptions include:\n- \"pci\": Redacts credit card numbers, expiration dates, and CVV.\n- \"pii\": Redacts personally identifiable information (names, locations, identifying numbers, etc.).\n- \"phi\": Redacts protected health information (medical conditions, drugs, injuries, etc.).\n- \"numbers\": Redacts numerical and identifying entities (dates, account numbers, SSNs, etc.).\n\nMultiple values can be provided to redact different categories simultaneously.\nRedacted content is replaced with entity labels like [CREDIT_CARD_1], [SSN_1], etc.\n\nSee https://developers.deepgram.com/docs/redaction for details.", "enum": [ "pci", "pii", "phi", "numbers" ], "example": [ "pci", "phi" ], "items": { "type": "string", "enum": [ "pci", "pii", "phi", "numbers" ] } }, "confidenceThreshold": { "type": "number", "description": "Transcripts below this confidence threshold will be discarded.\n\n@default 0.4", "minimum": 0, "maximum": 1, "example": 0.4 }, "eotThreshold": { "type": "number", "description": "End-of-turn confidence required to finish a turn. Only used with Flux models.\n\n@default 0.7", "minimum": 0.5, "maximum": 0.9, "example": 0.7 }, "eotTimeoutMs": { "type": "number", "description": "A turn will be finished when this much time has passed after speech, regardless of EOT confidence. Only used with Flux models.\n\n@default 5000", "minimum": 500, "maximum": 10000, "example": 5000 }, "languages": { "description": "Language hints to bias Flux Multilingual (`flux-general-multi`) toward specific languages.\nProvide BCP-47 language codes (e.g. \"en\", \"es\", \"fr\"). Multiple hints can be given for\nmultilingual or code-switching scenarios. Omit for auto-detection. Only used with `flux-general-multi`.", "example": [ "en", "es" ], "type": "array", "items": { "type": "string" } }, "keywords": { "description": "These keywords are passed to the transcription model to help it pick up use-case specific words. Anything that may not be a common word, like your company name, should be added here.", "type": "array", "items": { "type": "string", "pattern": "/^\\p{L}[\\p{L}\\d]*(?::[+-]?\\d+)?$/u" } }, "keyterm": { "description": "Keyterm Prompting allows you improve Keyword Recall Rate (KRR) for important keyterms or phrases up to 90%.", "type": "array", "items": { "type": "string" } }, "endpointing": { "type": "number", "description": "This is the timeout after which Deepgram will send transcription on user silence. You can read in-depth documentation here: https://developers.deepgram.com/docs/endpointing.\n\nHere are the most important bits:\n- Defaults to 10. This is recommended for most use cases to optimize for latency.\n- 10 can cause some missing transcriptions since because of the shorter context. This mostly happens for one-word utterances. For those uses cases, it's recommended to try 300. It will add a bit of latency but the quality and reliability of the experience will be better.\n- If neither 10 nor 300 work, contact support@vapi.ai and we'll find another solution.\n\n@default 10", "minimum": 10, "maximum": 500 }, "fallbackPlan": { "description": "This is the plan for transcriber provider fallbacks in the event that the primary transcriber provider fails.", "allOf": [ { "$ref": "#/components/schemas/FallbackTranscriberPlan" } ] } }, "required": [ "provider" ] }