Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

Intent Recognition

Deepgram API Playground

Try this feature out in our API Playground.

intents boolean Default: false

Pre-recorded Streaming:Nova All available languages

Deepgram’s Intent Recognition feature recognizes speaker intent throughout an entire transcript, returning a list of text segments and the intents found within each segment.

The intents that can be identified are not a fixed list; this TSLM powered feature is able to generate intents based on the context of the language content in the transcript. You may also choose to use the optional custom-intent parameter to provide a custom intent you want detected if present within your audio.

To enable Intent Recognition, use the following parameter in the query string when you call Deepgram’s /listen endpoint:

intents=true

To transcribe audio from a file on your computer, run the following curl command in a terminal or your favorite API client.

Bash
Bash
Parameter Value Type Description
intents true boolean Enables intent recognition
language en string The language of your input audio (Only English is supported at this time)
custom_intent ex: unsubscribe string Optional. A custom intent you want the model to detect within your input audio if present. Submit up to 100.
custom_intent_mode extended(default)strict string Optional. Sets how the model will interpret strings submitted to the custom_intent param. When strict, the model will only return intents submitted using the custom_intent param. When extended, the model will return its own detected intents in addition those submitted using the custom_intents param.

When the file is finished processing, you’ll receive a JSON response that has the following basic structure:

JSON
{
  "metadata": {},
  "results": {
    "channels": [
      {
        "alternatives": [...]
      }
    ],
    "intents": {
      "segments": [
        {
          "text": "Can I upgrade my phone?",
          "start_word": 12,
          "end_word": 16,
          "intents": [
            { "intent": "Upgrade phone", "confidence_score": 0.9750028 }
          ]
        }
      ]
    }
  }
}

The response object values for intents are:

  • segments: The list of segments of text identified by the model as containing notable intents.
  • intent: The name of the intent detected by the model. This will always be in the form of a verb.
  • confidence_score: a floating point from 0 to 1 representing the models confidence in this prediction.

If you request Intent Recognition with an unsupported language by specifying a language code such as intents=true&language=es or intents=true&detect_language=true where the detected language is unsupported, you will get the warning message below.

JSON
"warnings": [
  {
    "parameter": "intents",
    "type": "unsupported_language",
    "message": "Intents is only supported for English."
  }
]
Warning Name Warning Message
unsupported_language Feature isn’t supported with the specified or detected language.

Example Warning

Here is an example of the JSON structure of a request with warning object.

JSON
{
 "metadata": {
...
       },
     "warnings": [
       {
         "parameter": "intents",
         "type": "unsupported_language",
         "message": "Intents are only supported for English."
       }
     ]
   },
 "results": {
       "channels": [
            {
                "alternatives": [...]
            }
        ], 
    }
}
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu