Transkriptionsnachrichten - Amazon Chime SDK

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Transkriptionsnachrichten

Der Amazon Chime SDK-Service gibt Transkriptionsinformationen an die Teilnehmer weiter, indem erTranscriptEvent Objekte in Datennachrichten sendet. ATranscriptEvent liefert aTranscript oderTranscriptionStatus a.

ATranscript enthält Ergebnisse mit Zeitstempeln, vom Benutzer zugewiesenen Wörtern und Interpunktion. Ein Ergebnis kann „teilweise“ sein. In diesem Fall aktualisiert das System es in der Regel nachträglichTranscriptEvent. Auf diese Weise können Sie Transkriptionen schnell einsehen und später bei Bedarf Inline-Updates vornehmen.

ATranscriptStatus kann eines derTranscriptionStatusType Ereignisse auslösen, die im Beispiel im nächsten Abschnitt aufgeführt sind.

Neuere Versionen der Amazon Chime SDKs enthalten zusätzliche Datentypen und Hilfsfunktionen für die allgemeine VerarbeitungTranscriptEvent a.

TranscriptEvent

Dieses Beispiel zeigt ein typisches Transkriptionsereignis.

type TranscriptEvent = Transcript | TranscriptionStatus; export class TranscriptEventConverter { static from(dataMessage: DataMessage): TranscriptEvent[] { // convert DataMessage to TranscriptEvents return ... } } export default class TranscriptionStatus { type: TranscriptionStatusType; eventTimeMs: number; transcriptionRegion: string; transcriptionConfiguration: string; message?: string; } enum TranscriptionStatusType { STARTED = 'started', INTERRUPTED = 'interrupted', RESUMED = 'resumed', STOPPED = 'stopped', FAILED = 'failed', } export default class Transcript { results: TranscriptResult[]; // at least one } export class TranscriptResult { resultId: string; isPartial: boolean; startTimeMs: number; endTimeMs: number; alternatives: TranscriptAlternative[]; // most confident first } export default class TranscriptAlternative { items: TranscriptItem[]; // in start time order transcript: string; //concatenated transcript items entities?: TranscriptEntity[]; } export default class TranscriptItem { type: TranscriptItemType; startTimeMs: number; endTimeMs: number; attendee: Attendee; content: string; vocabularyFilterMatch?: boolean; confidence?: number; stable?: boolean; } enum TranscriptItemType { PRONUNCIATION = 'pronunciation',// content is a word PUNCTUATION = 'punctuation',// content is punctuation } export default class TranscriptEntity { category: string; confidence: number; content: string; endTimeMs: number; startTimeMs: number; type?: string; } // This is an existing SDK model export default class Attendee { attendeeId: string; externalUserId: string; }

Datenrichtlinien

Beachten Sie dabei diese Richtlinien.

  1. transcription.resultskann mehr als ein Ergebnis haben.

  2. Wenntranscription.results[i].isPartial = true, dann gibt es möglicherweise ein Update für das gesamte Ergebnis. Das Update ist wahrscheinlich, aber nicht garantiert. Das Update hat dasselbetranscript.result[i].resultId. Wenn Sie Transkriptionen mit geringem Vertrauen vermeiden möchten, können Sie Teilergebnisse komplett überspringen. Wenn Sie Ergebnisse mit geringer Latenz erzielen möchten, können Sie Teilergebnisse anzeigen und dann vollständig überschreiben, wenn das Update eintrifft.

  3. transcription.results[i].alternativesenthält immer mindestens einen Eintrag. Wenn es mehr als einen Eintrag enthält, steht der Eintrag mit der höchsten Sicherheit an erster Stelle in der Liste. In den meisten Fällen können Sie den ersten Eintrag übernehmentranscription.results[i].alternatives und die anderen ignorieren.

  4. transcription.results[i].alternatives[j].itemsenthält einen Eintrag für jedes Wort oder jedes Satzzeichen.

  5. transcription.results[i].alternatives[j].items[k].Inhalt ist das, was gesprochen wurde.

  6. transcription.results[i].alternatives[j].items[k].attendeeist die Benutzerzuweisung (wer) des Inhalts.

  7. transcription.results[i].alternatives[j].items[k].startTimeMsist das „Wann“ des Inhalts. Dies ermöglicht das word-by-word Rendern der vom Benutzer zugewiesenen Transkription für verschiedene Benutzer in der Reihenfolge, in der die Wörter gesprochen wurden.

  8. Dastranscription.results[i].alternatives[j].items[k].endTimeMs Feld kann generell ignoriert werden, wird aber der Vollständigkeit halber angegeben, wer wann was gesagt hat.

  9. transcription.results[i].alternatives[j].items[k].vocabularyFilterMatchist wahr, wenn der Inhalt mit einem Wort im Filter übereinstimmt, andernfalls ist er falsch.

  10. transcription.results[i].alternatives[j].items[k].confidenceist ein Wert zwischen 0 und 1. Es gibt die Sicherheit der Engine an, dass der Inhalt des Elements korrekt mit dem gesprochenen Wort übereinstimmt, wobei 0 die niedrigste Konfidenz und 1 die höchste Konfidenz ist.

  11. transcription.results[i].alternatives[j].items[k].stablegibt an, ob sich das aktuelle Wort bei future Aktualisierungen der Teilergebnisse ändern wird. Dieser Wert kann nur zutreffen, wenn Sie die Funktion zur Stabilisierung partieller Ergebnisse aktivieren, indem Sietrue in Ihrer AnfrageEnablePartialResultsStabilization auf setzen.

  12. transcription.results[i].alternatives[j].entitiesenthält einen Eintrag für jede Entität, die von den Funktionen zur Identifikation oder Bearbeitung von Inhalten erkannt wird. Die Liste wird nur aufgefüllt, wenn Sie die Inhaltsidentifikation oder -redaktion aktivieren. Bei einer Entität kann es sich um Daten wie personenbezogene Daten oder persönliche Gesundheitsinformationen handeln. Sie können Entitäten verwenden, um interessante Wörter während der Transkription hervorzuheben oder Maßnahmen zu ergreifen.

  13. transcription.results[i].alternatives[j].entities[k].categoryist die Kategorie der Entität. Er entspricht der Art der Inhaltsidentifikation oder -redaktion, z. B. „PII“ oder „PHI“, die in der Anfrage angegeben ist.

  14. transcription.results[i].alternatives[j].entities[k].confidencemisst, wie stark der Motor dafür ist, dass der jeweilige Inhalt wirklich eine Einheit ist. Beachten Sie, dass dies etwas anderes ist als das Konfidenzniveau auf Itemebene, das misst, wie sicher die Engine in Bezug auf die Richtigkeit der Wörter selbst ist.

  15. transcription.results[i].alternatives[j].entities[k].contentist der eigentliche Text, aus dem die Entität besteht. Dies können mehrere Elemente sein, z. B. eine Adresse.

  16. transcription.results[i].alternatives[j].entities[k].startTimeMserfasst den Zeitpunkt, zu dem die Entität anfing, gesprochen zu werden.

  17. transcription.results[i].alternatives[j].entities[k].endTimeMserfasst den Zeitpunkt, zu dem die Entität das Sprechen beendet hat.

  18. transcription.results[i].alternatives[j].entities[k].typewird nur für die Transcribe-Engine unterstützt und stellt den Subtyp der Entität bereit. Dies sind Werte wie `ADDRESS`, `CREDIT_DEBIT_NUMBER` und so weiter.

Registrierung von Event-Handlern für TranscriptEvents

In den folgenden Beispielen wird die Amazon Chime SDK-Clientbibliothek für verwendet JavaScript. Das Muster ist jedoch in allen Amazon Chime SDKs konsistent.

DasTranscriptionController in derRealtimeController undRealtimeControllerFacade enthält spezifische Funktionen zum Hinzufügen eines Handlers, der verarbeitet wirdTranscriptionEvents:

/** * Returns the [[TranscriptionController]] for this realtime controller. */ readonly transcriptionController?: TranscriptionController;

DerTranscriptionController hat zwei Funktionen, um das Abonnieren und Abbestellen vonTranscriptionEvent Rückrufen zu verwalten:

import TranscriptEvent from './TranscriptEvent'; export default interface TranscriptionController { /** * Subscribe a callback to handle received transcript event */ subscribeToTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void; /** * Unsubscribe a callback from receiving transcript event */ unsubscribeFromTranscriptEvent(callback: (transcriptEvent: TranscriptEvent) => void): void; }
Verwenden des optionalenTranscriptionController

Wir bieten eine Standardimplementierung vonTranscriptionController interface namedDefaultTranscriptionController. Die Standardimplementierung istDefaultRealtimeController undDefaultAudioVideoFacade gibt einDefaultTranscriptionController Objekt zurück:

/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }

DefaultRealtimeControllernimmt auch ein optionalesTranscriptionController Objekt in seinem Konstruktor auf. Dadurch können Sie dasDefaultTranscriptionController Verhalten überschreiben. Entwickleranwendungen abonnieren und kündigen einen oder mehrere Callbacks über dasTranscriptionController Objekt desAudioVideoFacade Objekts ab:

// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););