> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Models and voices

> Choose compatible language, speech-recognition and speech-generation models, saved voices, and language settings for an agent configuration.

An agent configuration selects the models used for its task. Model availability
and language support vary by provider, so use the current catalog rather than
assuming that every model supports the same options.

<Frame caption="Recording pending: Choose models and a saved voice. Follow the written guide below.">
  <img src="https://mintcdn.com/threetonelabs-c2efc9c8/RV32i5440UZIaFHA/images/tutorials/recording-pending.webp?fit=max&auto=format&n=RV32i5440UZIaFHA&q=85&s=55f66d2eef49d8c92c9ac46f84bace35" alt="Recording pending for choosing models and a saved voice. No playable video is available yet." width="1600" height="900" className="w-full h-auto aspect-video" loading="lazy" noZoom data-path="images/tutorials/recording-pending.webp" />
</Frame>

## Understand the choices

| Choice | Configuration field | Purpose |
| - | - | - |
| Language model | `agent.prompt.llm` | Select the model for the agent's responses and tool decisions. |
| Speech recognition | `asr.model_id` and `asr.recognition` | Define a speech-recognition model and its input-language policy. |
| Speech generation | `tts.model_id` | Select a text-to-speech model. |
| Saved voice | `tts.voice_id` | Reference a voice available in your workspace. |
| Base language | `agent.language` | Set the agent's base language. |
| Response-language policy | `agent.response_language_policy` | Choose the base language or the recognized input language for responses. |

These paths are relative to `conversation_config`. A saved speech configuration
does not by itself confirm that a live conversation can start.

<Note>
  The dashboard submits the **LLM** selection through publication, which requires an eligible managed text-only configuration. Its **Voices**, **Language**, and **ASR**
  controls are currently previews whose changes are not saved. Use the
  [voice and language API workflow](/agents-platform/configure/voice-and-language/overview)
  for speech and language settings, then confirm the saved server draft. Voice and custom-model publication remain unavailable.
</Note>

## Choose a compatible configuration

<Steps>
  <Step title="Check the model catalog">
    Use [List available AI models](/api-reference/agents-platform/list-available-ai-models)
    and [Get available AI model](/api-reference/agents-platform/get-available-ai-model)
    to inspect the model you intend to configure. Model identifiers use
    provider-qualified values such as `provider/model`.
  </Step>

  <Step title="Choose a saved voice">
    Use [List my voices](/api-reference/voices/list-my-voices) to find a workspace
    `voice_id`. Check that it is compatible with the selected TTS provider and
    model. A provider's public voice identifier is not automatically a saved
    workspace voice.
  </Step>

  <Step title="Set input and response languages">
    Choose the ASR recognition policy and the agent's response-language policy
    separately. Confirm that the selected recognition model, response model and
    voice support the intended languages.
  </Step>

  <Step title="Review the saved values">
    Submit speech and language changes through [Update agent](/api-reference/agents-platform/update-agent)
    with an explicit `branch_id`, then read the selected branch or version back.
    Check the model IDs, voice ID and language policies before making further changes.
  </Step>
</Steps>

## Input and response language policies

The public configuration defines these ASR modes:

* `fixed`: select a single input language.
* `automatic_provider_languages`: use the provider-supported automatic recognition mode.
* `automatic_selected_languages`: restrict automatic recognition to selected languages.

Only choose a mode that the selected model supports. The request schema in
[Create agent](/api-reference/agents-platform/create-agent) describes the fields
required for each mode.

For responses, `base_language` uses the configured base language.
`recognized_language` requests the recognized input language. Choosing a response
policy does not expand a model's or voice's language coverage.

## When a choice is rejected

* A model may be unavailable to the workspace or incompatible with the requested options.
* A saved voice may belong to a different provider or may no longer be accessible.
* Voice authoring can store ASR and TTS settings in a server draft. Voice publication remains unavailable even with compatible settings.
* Copying a model ID from a screenshot can leave an outdated identifier in your request.

Read the returned validation error and recheck the catalog. Do not substitute an
unverified model or voice ID just to get past an error.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Can I use any provider voice ID directly?" id="faq-models-saved-voice">
    Select a saved workspace voice through [List my voices](/api-reference/voices/list-my-voices). Its provider and model must be compatible with the TTS configuration. A public provider ID alone does not establish workspace access.
  </Accordion>

  <Accordion title="Does automatic recognition support every language?" id="faq-models-language-coverage">
    No. Recognition modes and language coverage depend on the selected ASR model. Review the current catalog and the input policy separately from the response-language policy.
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.