> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/labs-voice-agent/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/labs-voice-agent/_mcp/server.

# nemo_voice_agent.utils.config_manager

## Module Contents

### Classes

| Name                                                                    | Description                                       |
| ----------------------------------------------------------------------- | ------------------------------------------------- |
| [`ConfigManager`](#nemo_voice_agent-utils-config_manager-ConfigManager) | Manages configuration for the voice agent server. |

### API

```python
class nemo_voice_agent.utils.config_manager.ConfigManager(
    server_base_path: str,
    server_config_path: typing.Optional[str] = None
)
```

Manages configuration for the voice agent server.
Handles loading, merging, and providing access to all configuration parameters.

**`_generic_hf_llm_model_id`**

---

**`model_registry`**

---

**`model_registry_path`**

---

**`server_config`**

---

**`use_model_registry`**

---

```python
nemo_voice_agent.utils.config_manager.ConfigManager._configure_diarization()
```

Configure diarization parameters.
Currently only NeMo End-to-End Diarization is supported.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._configure_llm()
```

Configure LLM parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._configure_stt()
```

Configure STT parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._configure_tts()
```

Configure TTS parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._configure_turn_taking()
```

Configure turn taking parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._initialize_config_parameters()
```

Initialize all configuration parameters from the loaded config.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._load_model_registry() -> typing.Dict[str, typing.Any]
```

Load model registry from YAML file.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._load_server_config() -> omegaconf.OmegaConf
```

Load and process the main server configuration.

```python
nemo_voice_agent.utils.config_manager.ConfigManager._resolve_backchannel_phrases(
    backchannel_phrases
)
```

Resolve `turn_taking.backchannel_phrases_path` to something usable.

The setting is either an inline list of phrases, `None`/`""` to
disable backchanneling, or a path to a YAML file. Only the path form
needs resolving; the others are passed through untouched.

A relative path is tried against the current working directory first,
then against the server base directory, so the shipped config works
whether the server is launched from the repo root or from
`examples/generic_voice_agent/server`.

**Raises:**

* `FileNotFoundError`: If a path was given but exists at neither
  location. Failing here, naming both paths tried, beats letting
  it reach `NeMoTurnTakingService` — which used to report a bad
  path as "Invalid backchannel phrases of type \<class 'str'>".

```python
nemo_voice_agent.utils.config_manager.ConfigManager.get_diar_params() -> nemo_voice_agent.pipecat.services.nemo.diar.NeMoDiarInputParams
```

Get diarization parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager.get_model_registry() -> typing.Dict[str, typing.Any]
```

Get the model registry configuration.

```python
nemo_voice_agent.utils.config_manager.ConfigManager.get_server_config() -> omegaconf.OmegaConf
```

Get the complete server configuration.

```python
nemo_voice_agent.utils.config_manager.ConfigManager.get_stt_params() -> nemo_voice_agent.pipecat.services.nemo.stt.NeMoSTTInputParams
```

Get STT parameters.

```python
nemo_voice_agent.utils.config_manager.ConfigManager.get_vad_params() -> pipecat.audio.vad.silero.VADParams
```

Get VAD parameters.