> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Spracherkennung

## Überblick

Das System-Tool für die `Spracherkennung` ermöglicht Ihrem ElevenLabs-Agenten, seine Ausgabesprache auf jede vom Agenten unterstützte Sprache umzustellen.
Dieses System-Tool ist nicht automatisch aktiviert. Seine Beschreibung kann an Ihren konkreten Anwendungsfall angepasst werden.

> **Note**
>
> Wir empfehlen, nach Möglichkeit alle Sprachen für einen Agenten zu aktivieren und das System-Tool
> für die Spracherkennung zu aktivieren.

Unser Tool zur Spracherkennung löst die Sprachumstellung in zwei Fällen aus. Beide basieren auf der erkannten Sprache und dem Inhalt des empfangenen Audios:

* `detection`: Wenn ein Nutzer eine andere Sprache als die aktuelle Ausgabesprache spricht, wird eine Umstellung ausgelöst.
* `content`: Wenn der Nutzer in der aktuellen Sprache darum bittet, zu einer neuen Sprache zu wechseln, wird eine Umstellung ausgelöst.

**Zweck**: Während Gesprächen automatisch zur erkannten Sprache des Nutzers wechseln.

**Auslösebedingungen**: Das LLM sollte dieses Tool aufrufen, wenn:

* Der Nutzer eine andere Sprache als die aktuelle Gesprächssprache spricht
* Der Nutzer ausdrücklich einen Sprachwechsel anfordert
* Das Gespräch Unterstützung für mehrere Sprachen benötigt

**Parameter**:

* `reason` (String, erforderlich): Der Grund für den Sprachwechsel
* `language` (String, erforderlich): Der Sprachcode, zu dem gewechselt werden soll (muss in der Liste der unterstützten Sprachen enthalten sein)

**Format des Funktionsaufrufs**:

```json
{
  "type": "function",
  "function": {
    "name": "language_detection",
    "arguments": "{\"reason\": \"User requested Spanish\", \"language\": \"es\"}"
  }
}
```

**Implementierung**: Konfigurieren Sie unterstützte Sprachen in den Agent-Einstellungen und fügen Sie das Systemtool zur Spracherkennung hinzu. Der Agent passt Stimme und Antworten automatisch an die erkannten Sprachen an.

## Spracherkennung aktivieren

#### Unterstützte Sprachen konfigurieren

Die Sprachen, zu denen der Agent wechseln kann, müssen im Einstellungs-Tab `Agent` definiert werden.

![Agent-Sprachen](/docs/_fern-img/633707d54276febd3baa054c4f41b186225b74f606307a46e8262607befc8381.webp)

#### Tool zur Spracherkennung hinzufügen

Aktivieren Sie die Spracherkennung, indem Sie das vorkonfigurierte System-Tool im Tab `Agent` zu den Tools Ihres Agenten hinzufügen.
Es ist automatisch als Option verfügbar, wenn Sie `add tool` auswählen.

![System-Tool](/docs/_fern-img/3d17048ab2bc1a0547c49056abb98f624caf866927ff1714af27f898b06ab18f.webp)

#### Tool-Beschreibung konfigurieren

Fügen Sie eine Beschreibung hinzu, die festlegt, wann das Tool aufgerufen werden soll.

![Beschreibung](/docs/_fern-img/3bebc9fe07dba7121bce7793f3793858c710fc8ea1c221347604eb05929271df.webp)

## Sprachwechsel auf den Gesprächsbeginn beschränken

In einem langen Gespräch können Hintergrundgeräusche oder ein ungewöhnlicher Akzent gelegentlich einen Wechsel auslösen, den der
Anrufer nicht beabsichtigt hat. Durch Aktivieren von `only_at_conversation_start` wird der Wechsel auf die ersten beiden Nutzer-
Turns beschränkt.

Wenn die Sprache während dieser beiden Turns nicht wechselt, wird die Spracherkennung für den Rest
des Gesprächs deaktiviert: Jeder spätere Versuch schlägt fehl und der Agent spricht weiterhin die aktuelle Sprache. Wenn
die Sprache innerhalb dieses Zeitfensters wechselt, bleibt der Wechsel für den Rest des
Gesprächs verfügbar, sodass eine falsche Erkennung weiterhin korrigiert werden kann.

Die Option ist standardmäßig deaktiviert.

#### Über das Dashboard aktualisieren

Wählen Sie im Tab **Tools** das Tool **Sprache erkennen** aus und aktivieren Sie **Nur zu Beginn des Gesprächs**.

#### Über die CLI aktualisieren

#### Agentenkonfiguration abrufen

```bash
elevenlabs agents pull
```

#### \`agent_configs/\<agent-name>.json\` bearbeiten

Setzen Sie `only_at_conversation_start` für das Tool zur Spracherkennung. Umgebende Felder sind
hier der Kürze halber ausgelassen.

```json
{
  "conversation_config": {
    "agent": {
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "params": {
              "system_tool_type": "language_detection",
              "only_at_conversation_start": true
            }
          }
        }
      }
    }
  }
}
```

#### Änderungen übertragen

```bash
elevenlabs agents push
```

#### Über die API aktualisieren

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    conversation_config={
        "agent": {
            "prompt": {
                "built_in_tools": {
                    "language_detection": {
                        "type": "system",
                        "name": "language_detection",
                        "params": {
                            "system_tool_type": "language_detection",
                            "only_at_conversation_start": True,
                        },
                    }
                }
            }
        }
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  conversationConfig: {
    agent: {
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            params: {
              systemToolType: "language_detection",
              onlyAtConversationStart: true,
            },
          },
        },
      },
    },
  },
});
```

> **Note**
>
> Wenn der Wechsel blockiert wird, gibt das Tool einen Fehler an das LLM zurück und weist es an, weiterhin
> die aktuelle Sprache zu sprechen. Der Grund wird dem Anrufer nicht mitgeteilt.

## API-Implementierung

Wenn Sie einen Agenten über die API erstellen, können Sie das Tool für die `Spracherkennung` zu Ihrer Agentenkonfiguration hinzufügen. Es sollte als System-Tool definiert werden:

```python
from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs

elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")

# Create language presets
language_presets = {
    "nl": {"overrides": {"agent": {"first_message": "Hoi, hoe gaat het met je?"}}},
    "fi": {"overrides": {"agent": {"first_message": "Hei, kuinka voit?"}}},
    "tr": {"overrides": {"agent": {"first_message": "Merhaba, nasılsın?"}}},
    "ru": {"overrides": {"agent": {"first_message": "Привет, как ты?"}}},
    "pt": {"overrides": {"agent": {"first_message": "Oi, como você está?"}}},
}

response = elevenlabs.conversational_ai.agents.create(
    conversation_config=ConversationalConfig(
        agent=AgentConfig(
            first_message="Hi how are you?",
            prompt={
                "built_in_tools": {
                    "language_detection": {
                        "type": "system",
                        "name": "language_detection",
                        # Optional: customize when the tool should be triggered
                        "description": "",
                        "params": {"system_tool_type": "language_detection"},
                    }
                },
            },
        ),
        language_presets=language_presets,
    ),
)
```

```javascript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient({
  apiKey: "YOUR_API_KEY",
});

await elevenlabs.conversationalAi.agents.create({
  conversationConfig: {
    agent: {
      firstMessage: "Hi, how are you?",
      prompt: {
        builtInTools: {
          languageDetection: {
            type: "system",
            name: "language_detection",
            description: "", // Optional: Customize when the tool should be triggered
            params: { systemToolType: "language_detection" },
          },
        },
      },
    },
    languagePresets: {
      nl: { overrides: { agent: { firstMessage: "Hoi, hoe gaat het met je?" } } },
      fi: {
        overrides: { agent: { firstMessage: "Hei, kuinka voit?" } },
        firstMessageTranslation: {
          sourceHash: '{"firstMessage":"Hi how are you?","language":"en"}',
          text: "Hei, kuinka voit?",
        },
      },
      tr: { overrides: { agent: { firstMessage: "Merhaba, nasılsın?" } } },
      ru: { overrides: { agent: { firstMessage: "Привет, как ты?" } } },
      pt: { overrides: { agent: { firstMessage: "Oi, como você está?" } } },
      ar: { overrides: { agent: { firstMessage: "مرحبًا كيف حالك؟" } } },
    },
  },
});
```

```bash
curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
     -H "xi-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
  "conversation_config": {
    "agent": {
      "first_message": "Hi how are you?",
      "prompt": {
        "built_in_tools": {
          "language_detection": {
            "type": "system",
            "name": "language_detection",
            "description": "",
            "params": { "system_tool_type": "language_detection" }
          }
        }
      }
    },
    "language_presets": {
      "nl": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hoi, hoe gaat het met je?",
            "language": null
          },
          "tts": null
        }
      },
      "fi": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Hei, kuinka voit?",
            "language": null
          },
          "tts": null
        }
      },
      "tr": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Merhaba, nasılsın?",
            "language": null
          },
          "tts": null
        }
      },
      "ru": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Привет, как ты?",
            "language": null
          },
          "tts": null
        }
      },
      "pt": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "Oi, como você está?",
            "language": null
          },
          "tts": null
        }
      },
      "ar": {
        "overrides": {
          "agent": {
            "prompt": null,
            "first_message": "مرحبًا كيف حالك؟",
            "language": null
          },
          "tts": null
        }
      }
    }
  }
}'
```

> **Tip**
>
> Lassen Sie die Beschreibung leer, um den Standard-Prompt für die Spracherkennung zu verwenden.