Live-Unterschriften

Verwenden Sie die Live Captions API, um Audiostreams zu transkribieren und Echtzeit-Untertitel für Ihre Anwendung zu generieren.

Mit der Vonage Video Live Captions API können Sie Endnutzern in einer Vonage Video-Sitzung mithilfe eines Transkriptionsdienstes Live-Untertitel anzeigen. Wir verwenden AWS Transcribe als Transkriptionsanbieter. Da Live Captions das Audio vom Media Router aufnimmt, kann es auch die Untertitel für das Audio von SIP-Einwahlteilnehmern bereitstellen.

Live Captions ist standardmäßig für alle Projekte aktiviert und es handelt sich um ein nutzungsbasiertes Produkt. Die Nutzung von Live Captions wird auf der Grundlage der Anzahl der Audiostreams von Teilnehmern (oder Stream-IDs) berechnet, die an den Transkriptionsdienst gesendet werden. Weitere Informationen finden Sie unter Preisregeln für Live Captions API.

Die Funktion Live-Untertitel wird nur in gerouteten Sitzungen unterstützt (Sitzungen, die die Medien-Router). Sie können bis zu 50 Audiostreams aus einer einzigen Vonage-Sitzung gleichzeitig an den Transkriptionsdienst für Untertitel senden.

Live caption illustration

Schritte zur Aktivierung von Live-Untertiteln

Verwenden Sie die Methode im Client SDK, um Audio für den Untertitel-Dienst zu veröffentlichen. Siehe Implementierung von Live-Untertiteln

In abonnierenden Clients rufen Sie die entsprechende Client SDK-Methode für einen Abonnenten auf, um Untertitel für einen Stream zu abonnieren.

Nach dem Start der Live-Untertitelung werden die Audiodaten sicher an einen Audiotranskriptionsdienst eines Drittanbieters wie Amazon Transcribe gestreamt.

Verwenden Sie die Untertitel-API in den Client-SDKs, um den Empfang von Live-Untertiteln in Ihrer Anwendung zu aktivieren oder zu deaktivieren:

Das Starten oder Beenden des Empfangs von Live-Untertiteln in einem Web-Client hat keine Auswirkungen auf den Empfang von Untertiteln durch andere Clients, die mit der Sitzung verbunden sind.

Unterstützte Sprachen

Live Captions unterstützt eine Reihe von Sprachen. Geben Sie die gewünschte Sprache als languageCode bei der Aktivierung von Live-Untertiteln mit der Option REST-API:

  • "af-ZA" - Afrikaans
  • "ar-AE" - Arabisch, Golf
  • "ar-SA" - Arabisch, Moderner Standard
  • "eu-ES" - Baskisch
  • "ca-ES" - Katalanisch
  • "zh-HK" - Chinesisch, vereinfacht
  • "zh-CN" - Chinesisch, Kantonesisch
  • "zh-TW" - Chinesisch, traditionell
  • "hr-HR" - kroatisch
  • "cs-CZ" - Tschechisch
  • "da-DK" - Dänisch
  • "nl-NL" - Niederländisch
  • "en-AU" - Englisch, Australisch
  • "en-GB" - Englisch, Britisch
  • "en-IN" - Englisch, Indisch
  • "en-IE" - Englisch, Irisch
  • "en-NZ" - Englisch, Neuseeland
  • "en-AB" - Englisch, Schottisch
  • "en-ZA" - Englisch, Südafrikanisch
  • "en-US" - Englisch, US
  • "en-WL" - Englisch, Walisisch
  • "fa-IR" - Farsi
  • "fi-FI" - Finnisch
  • "fr-FR" - Französisch
  • "fr-CA" - Französisch, Kanadisch
  • "gl-ES" - Galicisch
  • "de-DE" - Deutsch
  • "de-CH" - Deutsch, Schweizerisch
  • "el-GR" - Griechisch
  • "he-IL" - Hebräisch
  • "hi-IN" - Hindi, Indisch
  • "id-ID" - Indonesisch
  • "it-IT" - Italienisch
  • "ja-JP" - Japanisch
  • "ko-KR" - Koreanisch
  • "lv-LV" - Lettisch
  • "ms-MY" - Malaiisch
  • "no-NO" - Norwegisch Bokmål
  • "pl-PL" - Polnisch
  • "pt-PT" - Portugiesisch
  • "pt-BR" - Portugiesisch, Brasilianisch
  • "ro-RO" - rumänisch
  • "ru-RU" - Russisch
  • "sr-RS" - serbisch
  • "sk-SK" - Slowakisch
  • "so-SO" - somalisch
  • "es-ES" - Spanisch
  • "es-US" - Spanisch, US
  • "sv-SE" - Schwedisch
  • "tl-PH" - Tagalog/Filipino
  • "th-TH" - Thailändisch
  • "uk-UA" - ukrainisch
  • "vi-VN" - Vietnamesisch
  • "zu-ZA" - Zulu

Anwendungsfälle

Live-Untertitel können die Benutzerfreundlichkeit einer Anwendung und das Engagement der Benutzer verbessern. Untertitel verbessern die Bewertung der Zugänglichkeit Ihrer Anwendung, was häufig zur Teilnahme von Menschen mit Hörbehinderungen führt. Einige Gesetze auf der ganzen Welt schreiben vor, dass Anwendungen Untertitel enthalten müssen.

Untertitel können in unkontrollierten Umgebungen zu einer besseren Verständlichkeit der Sprecher führen und so das Engagement der Nutzer verbessern.

Live-Untertitel sind nur für geroutete Sitzungen verfügbar (Sitzungen, die die Medien-Router).

Nach dem Aktivieren der Funktion Live-Untertitel:

  • Verwenden Sie die Client-Audiobeschriftungs-API, um die Audiobeschriftung für jeden veröffentlichten Stream zu starten.
  • Der Audiostrom wird an einen Audiotranskriptionsdienst eines Drittanbieters (AWS Transcribe) gesendet.
  • Verwenden Sie die Client-Audio-Captioning-API, um die Live-Untertitel für jeden veröffentlichten Stream zu abonnieren.
  • Die Entscheidung eines einzelnen Teilnehmers, keine Untertitel zu empfangen, hat keine Auswirkungen auf den Empfang von Untertiteln durch andere Teilnehmer in anderen mit der Sitzung verbundenen Clients.
  • Wenn die Sitzung beendet ist (wenn alle Clients die Veröffentlichung von Streams für die Sitzung gestoppt haben), können Sie die Untertitelung mit der API "Stop Captions" explizit beenden. Andernfalls wird die Audiountertitelung automatisch nach der maximalen Dauer (die beim Aufruf der Funktion Start Untertitel API) ist ausgelaufen.
  • Live-Untertitel für eine Sitzung enden während der Serverrotation. Sie können Live-Untertitel als Reaktion auf Benachrichtigungsereignisse zur Serverrotation neu starten. Siehe Server-Rotation und Sitzungsmigration.
  • Die Live-Untertitelung endet automatisch nach einer maximalen Dauer von 4 Stunden, aber Sie können eine andere maximale Dauer konfigurieren, indem Sie die Funktion Start Untertitel API. Nach Ablauf der Frist wird die Untertitelung beendet, ohne dass dies Auswirkungen auf die laufende Sitzung hat.

Live-Statusaktualisierung von Untertiteln

Sie können einen Webhook einrichten, um Ereignisse zu empfangen, wenn Live-Untertitel für eine Sitzung starten, stoppen und fehlschlagen.

  1. Gehen Sie zu Ihrem Video API-Konto und wählen Sie das Projekt in der Liste der Projekte im linken Menü aus.
  2. Unter Projekt-Einstellungenfinden Live-Überwachung von Untertiteln und klicken Sie Konfigurieren Sie.
  3. Übermitteln Sie die URL, an die die Rückrufe gesendet werden sollen.

Sichere Rückrufe: Einstellen Unterschrift Geheimnis um sichere Webhook-Rückrufanforderungen mit signierten Rückrufen zu verwenden, die das Signaturgeheimnis verwenden. Siehe Sichere Rückrufe.

Wenn sich der Status von Live-Untertiteln ändert, wird ein HTTP POST an die Callback-URLs gesendet. Wenn keine Callback-URL konfiguriert ist, wird keine Statusaktualisierung übermittelt. Die Rohdaten der HTTP-Anforderung sind eine JSON-kodierte Nachricht der folgenden Form:

{
  "captionId": "<captionsId>",
  "applicationId": "<applicationId>",
  "sessionId": "<sessionId>",
  "status": "stopped",
  "createdAt": 1651253477,
  "updatedAt": 1651253837,
  "duration": 360,
  "stream": {
    "streamId": "<streamId>",
    "streamStatus": "stopped"
  },
  "languageCode": "en-US",
  "reason": "Maximum duration exceeds.",
  "provider": "aws-transcribe",
  "status": "stopped",
  "group": "captions"
}

Das JSON-Objekt enthält die folgenden Eigenschaften:

  • captionsId Die eindeutige ID für die Audio Captioning-Sitzung.
  • applicationId Ihre eindeutige Video Application ID.
  • sessionId OpenTok-Sitzung, für die Audio Captioning gestartet wurde.
  • status Aktueller Status der Live-Untertitel.
    • "started" Die Vonage Video API Plattform hat erfolgreich die notwendigen Ressourcen zugewiesen, um Audiostreams für die Untertitelung zu senden.
    • "transcribing" Der Transkriptionsdienst hat begonnen (und die Untertitelung ist in Arbeit).
    • "stopped" Die Untertitelung wurde beendet und alle Ressourcen wurden gelöscht.
    • "failed" Die Untertitelung hat nicht die erforderlichen Ressourcen zugewiesen oder keine Streams für die Untertitelung gesendet.
  • createdAt Der Unix-Zeitstempel (Epoch), zu dem die Audiountertitelung begonnen hat.
  • updatedAt Der Unix-Zeitstempel (Epoch), zu dem die Audiountertitel aktualisiert wurden. Wenn der status ist "stopped"Der Wert updatedAt gibt den Zeitpunkt an, zu dem die Untertitelung beendet wurde.
  • stream Ein Objekt, das die Stream-ID und den Status des untertitelten Streams enthält.
  • languageCode Der verwendete BCP-47-Sprachcode.
  • reason Zusätzliche Fehlerinformationen über die Statusänderung.
  • providerDer Drittanbieter, der für die Audiountertitelung verwendet wird:
    • "aws-transcribe" Amazon Transcribe.
  • group Der Typ des Ereignisses, der bei API-Ereignissen für Audiobeschriftungen immer auf "Untertitel" gesetzt ist.

Implementierung von Live-Untertiteln

Verwenden Sie die Live-Untertitel API um die Echtzeit-Audiountertitelung der mit einer Sitzung verbundenen Herausgeber und Abonnenten zu ermöglichen.

Die Live-Untertitelung muss auf Sitzungsebene über die Option REST-API.

Live-Untertitelung wird nur unterstützt in weitergeleitete Sitzung.

Publishing live captions

To enable live captions, initialize the `OTPublisher` component with the optional boolean `publishCaptions` property of the `properties` prop set to true:
<OTPublisher
  style={{width: 400, height: 300}}
  properties={{
    publishCaptions: true,
    // ... other properties
  }}
/>

Diese Einstellung ist false standardmäßig.

Sie können diese Eigenschaft dynamisch ändern (basierend auf einer React-Zustandsänderung), um die Beschriftungen für den veröffentlichten Stream ein- und auszuschalten.

Subscribing to live captions

To start receiving captions, set the `subscribeToCaptions` property of the `properties` prop of the `OTSubscriber` component:
<OTSubscriber
  style={{width: 200, height: 200}}
  properties={{
    subscribeToCaptions: true,
    // ... other properties
  }}
  eventHandlers={{
    captionReceived: event => {
      console.log('Caption received:', event.text);
      console.log('Caption final:', event.isFinal);
    },
  }}
/>

Sie können die subscribeToCaptions Eigenschaft zu true unabhängig davon, ob der Client, der den Stream veröffentlicht, gerade Live-Untertitel veröffentlicht. Der Abonnent erhält die Untertiteldaten, sobald der Herausgeber mit der Veröffentlichung der Untertitel beginnt.

Die Abonnenten erhalten die Untertitel über die captionReceived Ereignishandler (siehe oben).

Das captionReceived-Ereignisobjekt hat zwei properties:

  • Text - Der Text der Beschriftung (eine Zeichenkette)
  • isFinal - ob der Überschriftentext für eine Phrase endgültig ist (true) oder teilweise (false). Das React Native SDK zeigt den Text der Beschriftungsereignisse nicht an. Sie können Ihr eigenes UI-Element erstellen, um den Beschriftungstext basierend auf Beschriftungsereignissen anzuzeigen.

Eigene Live-Titel empfangen

Das Vonage Client SDK unterstützt nicht, dass ein Publisher Ereignisse für seine eigenen Untertitel empfängt. Um Untertitel für einen vom lokalen Client veröffentlichten Stream zu rendern, erstellen Sie einen versteckten Abonnenten (für den Stream des lokalen Herausgebers), der auf die Untertitelereignisse wartet. Setzen Sie die Eigenschaft subscribeToSelf des OTSubscriber zu true. Sie sollten das Video dieses Abonnenten nicht wiedergeben (indem Sie seine width und height auf 0 setzen) und Sie sollten kein Audio abonnieren (um ein Echo zu vermeiden, setzen Sie subscribeToAudio auf false).

Sie können die Beschriftungen in die Benutzeroberfläche einfügen, wie Sie es auch bei anderen Streams tun würden. Siehe Benutzerdefiniertes Rendering von Abonnenten.

Bekannte Probleme

  • Wenn ein Teilnehmer länger als 15 Sekunden stummgeschaltet ist, wird die Verbindung zum Drittanbieter der Transkription unterbrochen, um Kosten zu sparen. Es kann 2-5 Sekunden dauern, bis die Verbindung wiederhergestellt ist und die Untertitel wieder angezeigt werden.

Weitere Informationen

Siehe dieser Vonage API-Support-Artikel für weitere technische Spezifikationen und FAQs.

Siehe dieser Vonage API-Support-Artikel für Informationen über die Preise der Live Captions API.