ASR & Transcription Settings Reference
Every speech interaction on Capacity Private Cloud is shaped by a small set of settings: how audio is consumed, when voice activity detection decides that a caller has started or stopped speaking, how long the engine waits for a result, and how output is normalized. Most of them have sensible defaults, so the useful skill is knowing which few matter for your application and which layer of the platform you should set them at. This reference lists every ASR and transcription setting in the gRPC API, grouped by the message that carries it, with its type, default, range, and effect.
Before you start. A setting can be defined at the deployment, session, or interaction level, and the most specific level wins. How that resolution works, including why a change made after an interaction was created does not apply to it, is explained in Speech Settings: Hierarchy, Inheritance and Value Types. Every setting below is optional: leave it unset to inherit the value from the level above.
Which settings apply to which interaction
The create request for each interaction type carries only the settings groups that make sense for it. Use the table to find where a setting can be supplied.
| Settings group | ASR (grammar) | Transcription | Grammar parse | Diarization | Language ID | NLU | Normalize text |
|---|---|---|---|---|---|---|---|
| General interaction | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Audio consume | Yes | Yes | – | Yes | Yes | – | – |
| VAD | Yes | Yes | – | – | – | – | – |
| Grammar | Yes | Yes (embedded grammars) | Yes | – | – | – | – |
| Recognition | Yes | Yes | – | – | – | – | – |
| Normalization | – | Yes | – | – | – | – | Yes |
| Phrase list | – | Yes | – | – | – | – | – |
| NLU | – | – | – | – | – | Yes | – |
Neuron and sentiment interactions accept only the general interaction settings. Settings for TTS interactions are in the TTS Settings Reference, and settings for CPA and AMD interactions are in the CPA & AMD Settings Reference.
Session settings
Session settings apply for the life of a session and are set with session_set_settings. They also carry the interaction-level groups as defaults for every interaction the session creates.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
archive_session | Boolean | false | true, false | Archives the session data when the session closes, for tuning and other diagnostic purposes. |
archive_session_delay_seconds | Integer | Not specified | Seconds | Delay before archiving. Until then, session data persists in Redis before it is written to the database. |
custom_session_data | String | None | Free-form (text, JSON, delimited lists) | Data you attach for your own external purposes. The platform does not use it. |
call_id | String | None | Free-form | Call identifier used for CDR tracking, typically the telephony call ID or equivalent. |
channel_id | String (repeated) | None | Free-form | Channel identifier used for CDR tracking, typically a telephony or MRCP channel SDP value or equivalent. |
logging_tag | String (repeated) | None | Free-form | Reserved for future use. |
General interaction settings
These apply to every interaction type.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
secure_context | Boolean | false | true, false | When true, the platform does not log certain ASR and TTS data, so sensitive values such as account numbers and passwords stay out of the logs. Wherever such data would have been recorded, the log shows _SUPPRESSED instead. |
custom_interaction_data | String | None | Free-form (text, JSON, delimited lists) | Data you attach for your own external purposes. The platform does not use it. |
logging_tag | String (repeated) | None | Free-form | Reserved for future use. |
Turn on secure_context for sensitive prompts. If an application collects card numbers, account numbers, passwords, or other regulated data, set secure_context to true for those interactions, so that the values are suppressed in logs from the start rather than scrubbed afterward.
Audio consume settings
These settings control which audio an interaction processes and from where it starts.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
audio_channel | Integer | 0 | 0 to N | For multi-channel audio, the channel to process. Channel 0 is used if you do not specify one. |
audio_consume_mode | Enumeration | AUDIO_CONSUME_MODE_STREAMING | See the table below | Whether the interaction consumes streamed audio or a batch of audio that was loaded beforehand. |
stream_start_location | Enumeration | STREAM_START_LOCATION_STREAM_BEGIN | See the table below | Where processing starts when streaming mode is used. |
start_offset_ms | Integer | 0 | Positive or negative milliseconds | Adjusts the audio start point by this many milliseconds. |
audio_consume_max_ms | Integer | 0 | Positive milliseconds; 0 processes all audio sent | Limits how much audio is processed. |
Audio consume modes
| Value | Meaning |
|---|---|
AUDIO_CONSUME_MODE_STREAMING | Audio is streamed to the interaction. This is the default. |
AUDIO_CONSUME_MODE_BATCH | The interaction processes audio that has already been loaded. Only STREAM_START_LOCATION_STREAM_BEGIN is valid with batch mode. |
Stream start locations
Used only with streaming mode.
| Value | Processing starts from | Valid in batch mode |
|---|---|---|
STREAM_START_LOCATION_STREAM_BEGIN | The beginning of the stream. | Yes (the only valid option) |
STREAM_START_LOCATION_BEGIN_PROCESSING_CALL | The audio streamed after the InteractionBeginProcessing() call was made. | No |
STREAM_START_LOCATION_INTERACTION_CREATED | The audio streamed after the interaction was created. | No |
Voice activity detection (VAD) settings
VAD starts audio processing when a person begins speaking and detects when they stop. These settings decide how patient the platform is with silence, hesitation, and background noise.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
use_vad | Boolean | Not specified | true, false | When false, all audio selected by the audio consume settings is processed. In streaming mode, you then end processing by calling InteractionFinalizeProcessing(). When true, VAD detects when speech starts and stops. In batch mode, the engine looks for the start of speech within the audio and stops at end of speech, so not all of the loaded audio may be processed. |
barge_in_timeout_ms | Integer | -1 (infinite) | -1, or positive milliseconds | The longest silence allowed while waiting for the caller to speak (barge-in) before a timeout is reported. |
end_of_speech_timeout_ms | Integer | -1 (infinite) | -1, or positive milliseconds | After barge-in, STREAM_STATUS_END_SPEECH_TIMEOUT occurs if end of speech is not detected within this time. It is the total time a caller may speak after barge-in is detected, which is different from eos_delay_ms. |
eos_delay_ms | Integer | 800 | Positive milliseconds | Silence required after speech before processing begins. |
bargein_threshold | Integer | 50 | 0 to 100 | A higher value makes VAD more sensitive to speech and less sensitive to non-speech, so the algorithm must be more certain that audio is speech before it triggers barge-in. Raising it rejects more noise but can reject borderline speech. Do not change it from the default without significant tuning and verification. |
wind_back_ms | Integer | 480 | Positive milliseconds | Length of audio wound back at the start of voice activity, which compensates for barge-in that does not capture the very start of speech. The resolution is 1/8 of a second. |
Deprecated VAD settings
The API reference marks the following settings as deprecated. Do not use them in new applications.
| Setting | Default | What it did |
|---|---|---|
noise_reduction_mode | NOISE_REDUCTION_MODE_DEFAULT | Selected the noise reduction algorithm (see the values below). |
snr_sensitivity | 50 (range 0 to 100) | How much louder the speaker must be than the background noise to trigger barge-in. Lower values make barge-in easier to trigger. |
stream_init_delay | 100 ms | Length of the initial audio used to estimate the acoustic environment, such as the noise level. |
volume_sensitivity | 50 (range 0 to 100) | The volume required to trigger barge-in. Lower values are more sensitive. Raising it helps when prompt echo is not cancelled properly. |
Noise reduction modes
| Value | Number | Meaning |
|---|---|---|
NOISE_REDUCTION_MODE_DISABLED | 1 | Noise reduction is disabled. |
NOISE_REDUCTION_MODE_DEFAULT | 2 | The default, recommended noise reduction algorithm. |
NOISE_REDUCTION_MODE_ALTERNATE | 3 | Similar to the default algorithm, but results vary with different noise types and levels. |
NOISE_REDUCTION_MODE_ADAPTIVE | 4 | An adaptive algorithm best suited to varying background noise, such as changing car noise. |
Recognition settings
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
max_alternatives | Integer | 1 | Not specified | The maximum number of recognition hypotheses returned, that is, the number of NBest messages in each AsrInteractionResult. |
trim_silence_value | Integer | 970 | 0 (very aggressive) to 1000 (no silence trimmed) | How aggressively the engine trims leading silence from the input audio. |
enable_partial_results | Boolean | false | true, false | When true, partial result callbacks are enabled for the interaction. |
confidence_threshold | Integer | 0 | 0 to 1000 | Minimum confidence for a result. Applies to grammar-based ASR interactions only. Note the scale: MRCP clients use a 0 to 1 decimal scale instead. |
decode_timeout | Integer (milliseconds) | 10,000,000 (about 2.7 hours) | 0 to 100,000,000 | How long the ASR waits for results before timing out. |
decode_timeout is a safety net, not a tuning knob. The default allows an interaction to run for hours. Use end_of_speech_timeout_ms and barge_in_timeout_ms to bound how long a caller can be silent or speak, and set decode_timeout lower only if your application needs a hard upper limit on a single recognition.
Grammar settings
These settings govern SRGS grammar handling for grammar-based ASR. They also apply to the embedded grammars of transcription interactions and to grammar parse interactions.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
default_tag_format | Enumeration | TAG_FORMAT_SEMANTICS_1_2006 | See the table below | The tag format used for loaded grammars when a grammar does not specify one. |
ssl_verify_peer | Boolean | true | true, false | Verifies the certificate of the peer on HTTPS requests, using a local certificate authority file. Set to false to skip verification for trusted sites. |
load_grammar_timeout_ms | Integer | 200000 (about 3.3 minutes) | 1000 to 2147483647 | The longest time allowed for a grammar to load. When it is exceeded, a timeout error is raised. |
compatibility_mode | Integer | 0 | 0 to 1 | Compatibility mode for certain media server operations. Change it from the default only if you understand the consequences. |
grammar_threshold | Integer | 0 (unlimited) | Not specified | The maximum grammar size permitted. A grammar larger than this fails to load. |
max_enhanced_length | Integer | 6 | 1 or greater | The maximum number of words to parse for enhanced transcription. It does not apply to legacy enhanced transcription. |
probability_boost | Integer | 1 | Not specified | Probability score boost for loaded grammars. Raises or lowers the probability that grammar paths are recognized. |
Tag formats
| Value | Tag format |
|---|---|
TAG_FORMAT_LUMENVOX_1 | lumenvox/1.0 |
TAG_FORMAT_SEMANTICS_1 | semantics/1.0 |
TAG_FORMAT_SEMANTICS_1_LITERALS | semantics/1.0-literals |
TAG_FORMAT_SEMANTICS_1_2006 | semantics/1.0.2006 (default) |
TAG_FORMAT_SEMANTICS_1_2006_LITERALS | semantics/1.0.2006-literals |
Normalization settings
Normalization post-processes transcription output so that it reads as written text. Each step is off unless you enable it.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
enable_inverse_text | Boolean | false | true, false | Inverse text normalization: converts spoken form to written form, for example “twenty two” to “22”. |
enable_punctuation_capitalization | Boolean | false | true, false | Adds punctuation and capitalization. |
enable_redaction | Boolean | false | true, false | Redacts sensitive information. |
enable_srt_generation | Boolean | false | true, false | Generates a SubRip (SRT) subtitle file. |
enable_vtt_generation | Boolean | false | true, false | Generates a WebVTT (VTT) subtitle file. |
request_timeout_ms | Integer | 5000 | 0 to 1,000,000 | How long text normalization waits for results before timing out. |
Phrase list settings
Phrase lists add vocabulary hints to transcription. This setting controls how strongly they influence recognition.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
probability_boost | Integer | 1 | Greater than 0 per the API reference | Raises or lowers the probability that the words or phrases in the list are recognized. |
NLU settings
These settings apply to text NLU processing, either on text you supply or on a transcript.
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
summarization_bullet_points | Integer | 0 (no bullet-point summary) | 1 to 15 | The number of bullet points to summarize the text into. |
summarization_words | Integer | 0 (no word-count summary) | 10 to 1000 | The number of words to summarize the text into. It is mutually exclusive with summarization_bullet_points: specify only one. |
translate_from_language | String | Empty (auto-detect the source language) | A language name or code, such as “American English”, “english”, or en-US | The source language for translation. Translation can be less accurate when the source language is not specified. |
translate_to_language | String | Empty (no translation) | A language name or code, as above | The target language. Setting it enables translation. |
enable_alternate_translations | Boolean | Not specified | true, false | Adds a list of alternate translations to the result when possible. |
enable_language_detect | Boolean | Not specified | true, false | Detects the language of the input text and, where possible, the dialect. |
enable_topic_detect | Boolean | Not specified | true, false | Detects the topic of the input text. |
detect_outcome_type | Enumeration | Not specified | PAYMENT, SUCCESSFUL | Detects whether the specified outcome was achieved, based on the input text. PAYMENT detects whether a payment was successfully made, and SUCCESSFUL detects whether the call was successfully resolved. |
enable_sentiment_analysis | Boolean | Not specified | true, false | Determines the sentiment of the input text. |
request_timeout_ms | Integer | 5000 | 0 to 1,000,000 | How long NLU processing waits for results before timing out. |
Logging settings
| Setting | Type | Default | Range or values | Description |
|---|---|---|---|---|
logging_verbosity | Enumeration | LOGGING_VERBOSITY_INFO | See the table below | How much the platform logs for the session or deployment. |
| Value | Number | What is logged |
|---|---|---|
LOGGING_VERBOSITY_DEBUG | 1 | Internal system events that are not usually observable |
LOGGING_VERBOSITY_INFO | 2 | Routine logging, such as ongoing status or performance (default) |
LOGGING_VERBOSITY_WARNING | 3 | Warnings and above only: service degradation or danger |
LOGGING_VERBOSITY_ERROR | 4 | Functionality is unavailable, invariants are broken, or data is lost |
LOGGING_VERBOSITY_CRITICAL | 5 | Only exceptions and critical errors (not recommended) |
For a worked example of changing this setting, see Configuring Speech Settings Using the Management API.
Relationship to MRCP and client_property.conf settings
MRCP clients configure comparable behavior through MRCP headers and the client_property.conf file, which use different names and, in some cases, different scales and defaults. Do not copy a value from one interface to the other without checking the table below.
| gRPC setting | MRCP / client_property.conf name | Difference |
|---|---|---|
decode_timeout | DECODE_TIMEOUT | The client_property.conf article documents a default of 20,000 ms. |
confidence_threshold | confidence_thrsld (MRCP header) | Integer 0 to 1000 in gRPC; decimal 0 to 1 in MRCP. |
default_tag_format | TAG-FORMAT | The client_property.conf article documents lumenvox/1.0 as the default. |
logging_verbosity | LOGGING_VERBOSITY | The scales run in opposite directions. In gRPC, 1 is DEBUG, the most verbose. In client_property.conf, 1 is the minimal level and values range from 1 to 4. |
noise_reduction_mode | NOISE_REDUCTION_ENABLE | gRPC values run 1 to 4 (disabled, default, alternate, adaptive); client_property.conf values run 0 to 3. |
wind_back_ms | VAD_WIND_BACK (wind-back-time) | The gRPC resolution is 1/8 of a second. |
max_alternatives | MAX_NBEST_RETURNED (nbest_length) | Same default (1). |
trim_silence_value | TRIM_SILENCE_VALUE | Same default (970) and range. |
barge_in_timeout_ms | BARGE_IN_TIMEOUT | Same default (-1). |
end_of_speech_timeout_ms | END_OF_SPEECH_TIMEOUT | Same default (-1). |
bargein_threshold | VAD_BARGEIN_THRESHOLD | Same default (50) and range. |
eos_delay_ms | VAD_EOS_DELAY | Same default (800). |
ssl_verify_peer | SSL_VERIFYPEER | Same default (true). |
load_grammar_timeout_ms | LOAD_GRAMMAR_TIMEOUT | Same default (200000) and range. |
secure_context | SECURE_CONTEXT | Same default (off). |
compatibility_mode | compatibility_mode | Same default (0). |
For the MRCP side, see Speech Client Configuration (client_property.conf), Vendor Specific Parameters, and Media Server Configuration.
