For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Hauptnavigation

Sprachaktivitätserkennung (VAD)

Erfahre mehr über die automatische Sprachaktivitätserkennung in der Realtime API.

Die Sprachaktivitätserkennung (VAD) ist eine Funktion der Realtime API, die automatisch erkennt, wann eine Person zu sprechen beginnt oder aufhört. Sie ist in Echtzeitsitzungen für Speech-to-Speech standardmäßig aktiviert, aber optional und kann deaktiviert werden. Bei Echtzeitsitzungen für die Transkription hängt die Unterstützung für die Erkennung von Redebeiträgen vom Transkriptionsmodell ab. Modelle, die VAD unterstützen, verwenden standardmäßig server_vad. Bei gpt-realtime-whisper muss die Einstellung zur Erkennung von Redebeiträgen dagegen weggelassen oder auf null gesetzt werden.

Übersicht

Wenn VAD aktiviert ist, werden die Audiodaten automatisch in Abschnitte unterteilt. Die Realtime API sendet Ereignisse, die anzeigen, wann eine Person zu sprechen beginnt oder aufhört:

  • input_audio_buffer.speech_started: Beginn eines Redebeitrags
  • input_audio_buffer.speech_stopped: Ende eines Redebeitrags

Du kannst diese Ereignisse nutzen, um Redebeiträge in deiner Anwendung zu verarbeiten. Beispielsweise kannst du damit den Gesprächszustand verwalten oder Transkripte abschnittsweise verarbeiten.

Du kannst VAD mit dem Client-Ereignis session.update konfigurieren, indem du session.audio.input.turn_detection festlegst.

Für VAD gibt es zwei Modi:

  • server_vad: Unterteilt die Audiodaten anhand von Sprechpausen automatisch in Abschnitte.
  • semantic_vad: Unterteilt die Audiodaten in Abschnitte, wenn das Modell anhand der gesprochenen Worte davon ausgeht, dass die Person ihre Äußerung abgeschlossen hat.

Für Sitzungen und Modelle, die VAD unterstützen, ist server_vad der Standardwert.

Im Folgenden erfährst du mehr über die verschiedenen Modi.

Server-VAD

Server-VAD ist der Standardmodus für Speech-to-Speech-Sitzungen sowie für Transkriptionssitzungen mit Modellen, die die Erkennung von Redebeiträgen unterstützen. Dieser Modus unterteilt die Audiodaten anhand von Sprechpausen automatisch in Abschnitte.

Mit den folgenden Eigenschaften kannst du die VAD-Einstellungen genauer abstimmen:

  • threshold: Aktivierungsschwelle (0 bis 1). Bei einer höheren Schwelle muss das Audiosignal lauter sein, um das Modell zu aktivieren. Das kann in lauten Umgebungen zu besseren Ergebnissen führen.
  • prefix_padding_ms: Länge des Audioabschnitts (in Millisekunden), der vor dem von VAD erkannten Sprachbeginn zusätzlich einbezogen wird.
  • silence_duration_ms: Dauer der Stille (in Millisekunden), nach der das Ende eines Redebeitrags erkannt wird. Bei kürzeren Werten werden Redebeiträge schneller erkannt.

Hier ist ein Beispiel für eine VAD-Konfiguration:

{
  "type": "session.update",
  "session": {
    "type": "realtime",
    "audio": {
      "input": {
        "turn_detection": {
          "type": "server_vad",
          "threshold": 0.5,
          "prefix_padding_ms": 300,
          "silence_duration_ms": 500,
          "create_response": true, // only in conversation mode
          "interrupt_response": true // only in conversation mode
        }
      }
    }
  }
}

Verwende in Transkriptionssitzungen dasselbe Feld session.audio.input.turn_detection. Lass bei gpt-realtime-whisper die Einstellung zur Erkennung von Redebeiträgen weg oder setze sie auf null.

Die Felder create_response und interrupt_response werden nur in Speech-to-Speech-Gesprächen verwendet. In Transkriptionssitzungen steuert VAD ausschließlich, wie die Audiodaten in Abschnitte unterteilt werden.

Semantische VAD

Die semantische VAD ist ein neuer Modus, der mithilfe eines semantischen Klassifikators anhand der gesprochenen Worte erkennt, wann eine Person zu Ende gesprochen hat. Dieser Klassifikator bewertet die eingehenden Audiodaten danach, wie wahrscheinlich es ist, dass die Person zu Ende gesprochen hat. Bei geringer Wahrscheinlichkeit wartet das Modell eine bestimmte Zeit ab. Bei hoher Wahrscheinlichkeit muss es dagegen nicht warten. Wenn eine Äußerung beispielsweise mit einem zögerlichen „ähm …“ ausklingt, führt das zu einer längeren Wartezeit als bei einer eindeutigen Aussage.

In diesem Modus ist es weniger wahrscheinlich, dass das Modell die sprechende Person während eines Speech-to-Speech-Gesprächs unterbricht oder einen Transkriptabschnitt abschließt, bevor sie zu Ende gesprochen hat.

Du kannst die semantische VAD aktivieren, indem du session.audio.input.turn_detection.type auf semantic_vad setzt.

So kannst du sie konfigurieren:

{
  "type": "session.update",
  "session": {
    "type": "realtime",
    "audio": {
      "input": {
        "turn_detection": {
          "type": "semantic_vad",
          "eagerness": "low" | "medium" | "high" | "auto", // optional
          "create_response": true, // only in conversation mode
          "interrupt_response": true, // only in conversation mode
        }
      }
    }
  }
}

In Transkriptionssitzungen gilt dasselbe Feld session.audio.input.turn_detection. Die Felder create_response und interrupt_response gelten nur für Gespräche.

Mit der optionalen Eigenschaft eagerness kannst du steuern, wie schnell das Modell die sprechende Person unterbricht. Dazu passt du die maximale Wartezeit an. Im Transkriptionsmodus beeinflusst diese Eigenschaft die Unterteilung der Audiodaten in Abschnitte, auch wenn das Modell nicht antwortet.

  • auto ist der Standardwert und entspricht medium.
  • Mit low kann sich die sprechende Person Zeit lassen.
  • Mit high werden die Audiodaten so früh wie möglich in Abschnitte unterteilt.

Wenn das Modell im Gesprächsmodus häufiger antworten oder im Transkriptionsmodus schneller Transkriptionsereignisse zurückgeben soll, kannst du eagerness auf high setzen.

Wenn du dagegen die Person im Gesprächsmodus ungestört sprechen lassen möchtest oder im Transkriptionsmodus größere Transkriptabschnitte bevorzugst, kannst du eagerness auf low setzen.