Transkripte und Commit-Strategien

Diese Anleitung zeigt Ihnen, wie Sie Transkripte und Commit-Strategien mit der ElevenLabs Echtzeit-Spracherkennung verwalten.

Anleitung · Setzt voraus, dass Sie die Anleitung zum clientseitigen oder serverseitigen Streaming abgeschlossen haben.

Übersicht

Bei der Transkription von Audio erhalten Sie partielle und abgeschlossene Transkripte.

  • Partielle Transkripte – die Zwischenergebnisse der Transkription
  • Abgeschlossene Transkripte – die finalen Ergebnisse des Transkriptionssegments, die beim Empfang einer „Commit“-Nachricht gesendet werden. Eine Sitzung kann mehrere abgeschlossene Transkripte enthalten.

Das abgeschlossene Transkript kann optional Zeitstempel auf Wortebene enthalten. Diese werden nur empfangen, wenn die Option „include timestamps“ auf true gesetzt ist.

# Initialize the connection
connection = await elevenlabs.speech_to_text.realtime.connect(RealtimeUrlOptions(
model_id="scribe_v2_realtime",
include_timestamps=True, # Include this to receive the RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS event with word-level timestamps
))

Commit-Strategien

Beim Senden von Audio-Chunks über den WebSocket können Transkriptsegmente auf zwei Arten abgeschlossen werden: manueller Commit oder Voice Activity Detection (VAD).

Manueller Commit

Mit der manuellen Commit-Strategie steuern Sie, wann Transkriptsegmente abgeschlossen werden. Dies ist die standardmäßig verwendete Strategie. Das Abschließen eines Segments löscht das verarbeitete, angesammelte Transkript und beginnt ein neues Segment, ohne Kontext zu verlieren. Um die Latenz zu verbessern, empfiehlt es sich, alle 20–30 Sekunden einen Commit auszuführen. Auch ohne manuellen Commit schließt das Modell nach etwa 36 Sekunden angesammelten Audios automatisch ab.

Für beste Ergebnisse führen Sie Commits während Sprechpausen oder an einem anderen sinnvollen Punkt aus, etwa bei einem Sprecherwechsel.

Die Transkriptverarbeitung beginnt, nachdem die ersten 2 Sekunden Audio gesendet wurden.
await connection.send({
"audio_base_64": audio_base_64,
"sample_rate": 16000,
})
# When ready to finalize the segment
await connection.commit()

Mehrere manuelle Commits in kurzer Folge können die Modellleistung beeinträchtigen.

Vorherigen Textkontext senden

Beim Senden von Audio zur Transkription können Sie zusammen mit dem ersten Audio-Chunk vorherigen Textkontext senden, damit das Modell den Kontext der Sprache besser versteht. Dies ist in einigen Szenarien hilfreich:

  • Agententext für Conversational-KI-Anwendungsfälle – ermöglicht dem Modell, den Gesprächskontext leichter zu verstehen und bessere Transkriptionen zu erzeugen.
  • Wiederverbindung nach einem Netzwerkfehler – ermöglicht dem Modell, die Transkription anhand des vorherigen Texts als Orientierung fortzusetzen.
  • Allgemeine Kontextinformationen – eine kurze Beschreibung des Inhalts der Transkription hilft dem Modell, den Kontext zu verstehen.

Das Senden von previous_text-Kontext ist nur beim Senden des ersten Audio-Chunks über connection.send() möglich. Das Senden in nachfolgenden Chunks führt zu einem Fehler. Vorheriger Text funktioniert am besten, wenn er kürzer als 50 Zeichen ist.

await connection.send({
"audio_base_64": audio_base_64,
"previous_text": "The previous text context",
})

Voice Activity Detection (VAD)

Mit der VAD-Strategie erkennt die Transkriptions-Engine automatisch Sprach- und Stille-Segmente. Wenn ein Stille-Schwellenwert erreicht ist, schließt die Transkriptions-Engine das Transkriptsegment automatisch ab.

Wenn Sie Audio vom Mikrofon in der clientseitigen Integration transkribieren, empfehlen wir die VAD-Strategie.

import { Scribe, AudioFormat, CommitStrategy } from "@elevenlabs/client";
const connection = Scribe.connect({
token: "sutkn_1234567890",
modelId: "scribe_v2_realtime",
audioFormat: AudioFormat.PCM_16000,
commitStrategy: CommitStrategy.VAD,
vadSilenceThresholdSecs: 1.5,
vadThreshold: 0.4,
minSpeechDurationMs: 100,
minSilenceDurationMs: 100,
});

Unterstützte Audioformate

FormatAbtastrateBeschreibung
pcm_80008 kHz16-Bit-PCM, Little-Endian
pcm_1600016 kHz16-Bit-PCM, Little-Endian (empfohlen)
pcm_2205022.05 kHz16-Bit-PCM, Little-Endian
pcm_2400024 kHz16-Bit-PCM, Little-Endian
pcm_4410044.1 kHz16-Bit-PCM, Little-Endian
pcm_4800048 kHz16-Bit-PCM, Little-Endian
ulaw_80008 kHz8-Bit-μ-Law-Kodierung

Best Practices

Audioqualität

  • Verwenden Sie für beste Ergebnisse eine Abtastrate von 16 kHz. Sie bietet ein optimales Gleichgewicht zwischen Qualität und Bandbreite.
  • Stellen Sie einen sauberen Audioeingang mit minimalen Hintergrundgeräuschen sicher.
  • Verwenden Sie eine geeignete Mikrofonverstärkung, um Clipping zu vermeiden.
  • Derzeit wird nur Mono-Audio unterstützt.

Chunk-Größe

  • Senden Sie für reibungsloses Streaming Audio-Chunks mit einer Länge von 0,1 bis 1 Sekunde.
  • Kleinere Chunks führen zu geringerer Latenz, aber mehr Overhead.
  • Größere Chunks sind effizienter, können aber Latenz verursachen.

Nächste Schritte