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 teilt Transkriptionsinformationen mit Teilnehmern durch SendenTranscriptEventObjekte in Datennachrichten. EINTranscriptEventliefert eineTranscriptoder einTranscriptionStatusaus.

EINTranscriptenthält Ergebnisse mit Zeitstempel, vom Benutzer zugewiesenen Wörtern und Interpunktion. Ein Ergebnis kann „teilweise“ sein, in diesem Fall aktualisiert das System es normalerweise nachfolgendTranscriptEventaus. Auf diese Weise können Sie Transkriptionen schnell sehen und bei Bedarf später Inline-Updates anwenden.

EINTranscriptStatuskann einen derTranscriptionStatusType-Ereignisse, 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 gemeinsame Verarbeitung vonTranscriptEventaus.

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; }

Richtlinien für Daten

Beachten Sie diese Richtlinien, während Sie gehen.

  1. transcription.resultskann über mehr als ein Ergebnis verfügen.

  2. Wenntranscription.results[i].isPartial = true, dann kann es ein Update für das gesamte Ergebnis geben. Das Update ist wahrscheinlich, aber nicht garantiert. Das Update hat das Gleichetranscript.result[i].resultIdaus. Wenn Sie Transkriptionen mit geringem Vertrauen vermeiden möchten, können Sie Teilergebnisse vollständig überspringen. Wenn Sie Ergebnisse mit niedriger Latenz wünschen, 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 sicherste Eintrag an erster Stelle in der Liste. In den meisten Fällen können Sie den ersten Eintrag intranscription.results[i].alternativesund ignoriere die anderen.

  4. transcription.results[i].alternatives[j].itemsenthält einen Eintrag für jedes Wort oder 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 Benutzerzuordnung (wer) des Inhalts.

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

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

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

  10. transcription.results[i].alternatives[j].items[k].confidenceist ein Wert zwischen 0 und 1. Es zeigt die Zuversicht der Engine an, dass der Elementinhalt korrekt mit dem gesprochenen Wort übereinstimmt, wobei 0 das niedrigste Vertrauen ist und 1 das höchste Vertrauen darstellt.

  11. transcription.results[i].alternatives[j].items[k].stablegibt an, ob sich das aktuelle Wort in future teilweisen Ergebnisaktualisierungen ändern wird. Dieser Wert kann nur wahr sein, wenn Sie die Funktion zur Stabilisierung der partiellen Ergebnisse aktivieren, indem SieEnablePartialResultsStabilizationzutruein Ihrer -Anfrage.

  12. transcription.results[i].alternatives[j].entitiesenthält einen Eintrag für jede Entität, die die Funktionen zur Inhaltserkennung oder -schwärzung erkennen. Die Liste wird nur aufgefüllt, wenn Sie Inhaltserkennung oder -schwärzung aktivieren. Ein Unternehmen können Daten wie persönlich nicht identifizierbare Informationen oder persönliche Gesundheitsinformationen sein. Sie können Entitäten verwenden, um Wörter hervorzuheben oder Maßnahmen zu ergreifen, die während der Transkription von Interesse sind.

  13. transcription.results[i].alternatives[j].entities[k].categoryist die Kategorie des Unternehmens. Es entspricht dem Typ „Content Identification“ oder „Redaction“, wie „PII“ oder „PHI“, der in der Anforderung bereitgestellt wird.

  14. transcription.results[i].alternatives[j].entities[k].confidencemisst, wie stark der Motor ist, dass der jeweilige Inhalt wirklich eine Einheit ist. Beachten Sie, dass dies anders ist als das Vertrauen auf Artikelebene, das misst, wie sicher der Motor in der 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 gesprochen wurde.

  17. transcription.results[i].alternatives[j].entities[k].endTimeMserfasst den Zeitpunkt, zu dem die Entität gesprochen wurde.

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

Registrieren von Ereignishandlern für TranscripTevents

Die folgenden Beispiele verwenden das Amazon Chime SDK für JavaScript. Das Muster ist jedoch für alle Amazon Chime SDKs konsistent.

DieTranscriptionControllerimRealtimeControllerundRealtimeControllerFacadeenthält bestimmte Funktionen zum Hinzufügen eines Handlers, der ProzesseTranscriptionEvents:

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

DieTranscriptionControllerverfügt über zwei Funktionen zum Verwalten des Abonnierens und Abmeldens vonTranscriptionEventCallbacks:

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 OptionalTranscriptionController

Wir bieten eine Standardimplementierung vonTranscriptionControllerSchnittstelle mit dem NamenDefaultTranscriptionControlleraus. Die StandardimplementierungDefaultRealtimeControllerundDefaultAudioVideoFacadegibt zurück.DefaultTranscriptionControllerObjekt:

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

DefaultRealtimeControllernimmt auch eine optionaleTranscriptionController-Objekt in seinem Konstruktor. Auf diese Weise können Sie dieDefaultTranscriptionControllerVerhalten. Entwickleranwendungen abonnieren und abbestellen einen oder mehrere Rückrufe über dieTranscriptionControllerObjekt desAudioVideoFacadeObjekt:

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