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 verstehen
Der Amazon Chime SDK Chime-Service gibt Transkriptionsinformationen an die Teilnehmer weiter, indem er TranscriptEvent
Objekte in Datennachrichten sendet. A TranscriptEvent
liefert ein Transcript
oder ein. TranscriptionStatus
A Transcript
beinhaltet Ergebnisse mit Zeitstempel, vom Benutzer zugewiesenen Wörtern und Satzzeichen. Ein Ergebnis kann „teilweise“ sein. In diesem Fall aktualisiert das System es in der Regel zu einem späteren Zeitpunkt. TranscriptEvent
Auf diese Weise können Sie Transkriptionen schnell einsehen und bei Bedarf später Inline-Aktualisierungen vornehmen.
A TranscriptStatus
kann eines der TranscriptionStatusType
Ereignisse auslösen, die im Beispiel im nächsten Abschnitt aufgeführt sind.
Neuere Versionen von Amazon Chime SDKs enthalten zusätzliche Datentypen und Hilfsfunktionen für die allgemeine Verarbeitung a. TranscriptEvent
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
Behalten Sie diese Richtlinien stets im Hinterkopf.
transcription.results
kann mehr als ein Ergebnis haben.Wenn
transcription.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 geringer Zuverlässigkeit vermeiden möchten, können Sie Teilergebnisse komplett überspringen. Wenn Sie Ergebnisse mit niedriger Latenz wünschen, können Sie Teilergebnisse anzeigen und sie dann vollständig überschreiben, wenn das Update eintrifft.transcription.results[i].alternatives
enthält immer mindestens einen Eintrag. Wenn es mehr als einen Eintrag enthält, steht der vertrauenswürdigste Eintrag 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.transcription.results[i].alternatives[j].items
enthält einen Eintrag für jedes Wort oder Satzzeichen.transcription.results[i].alternatives[j].items[k].
Inhalt ist das, was gesprochen wurde.transcription.results[i].alternatives[j].items[k].attendee
ist die Benutzerzuweisung (wer) des Inhalts.transcription.results[i].alternatives[j].items[k].startTimeMs
ist das „Wann“ des Inhalts. Auf diese Weise kann die vom Benutzer zugeordnete Transkription für verschiedene Benutzer in der Reihenfolge word-by-word wiedergegeben werden, in der die Wörter gesprochen wurden.Das
transcription.results[i].alternatives[j].items[k].endTimeMs
Feld kann im Allgemeinen ignoriert werden, wird aber nur der Vollständigkeit halber angegeben, wer was wann gesagt hat.transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch
ist wahr, wenn der Inhalt mit einem Wort im Filter übereinstimmt, andernfalls ist es falsch.transcription.results[i].alternatives[j].items[k].confidence
ist ein Wert zwischen 0 und 1. Er gibt die Gewissheit der Engine an, dass der Inhalt des Elements korrekt mit dem gesprochenen Wort übereinstimmt, wobei 0 die niedrigste und 1 die höchste Konfidenz darstellt.transcription.results[i].alternatives[j].items[k].stable
gibt an, ob sich das aktuelle Wort bei future Aktualisierungen von Teilergebnissen ändern wird. Dieser Wert kann nur wahr sein, wenn Sie die Funktion zur Stabilisierung von Teilergebnissen aktivieren, indem Sietrue
in Ihrer AnfrageEnablePartialResultsStabilization
auf einstellen.transcription.results[i].alternatives[j].entities
enthält einen Eintrag für jede Entität, die von den Funktionen zur Inhaltserkennung oder Redaktion erkannt wird. Die Liste wird nur aufgefüllt, wenn Sie die Option Inhaltsidentifizierung oder Schwärzung 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 entsprechende Maßnahmen zu ergreifen.transcription.results[i].alternatives[j].entities[k].category
ist die Kategorie der Entität. Sie entspricht dem Typ Inhaltsidentifikation oder Redaktion, z. B. "PII" oder "PHI„, der in der Anfrage angegeben ist.transcription.results[i].alternatives[j].entities[k].confidence
misst, wie stark der Motor dafür ist, dass es sich bei dem jeweiligen Inhalt wirklich um eine Einheit handelt. Beachten Sie, dass dies etwas anderes ist als die Konfidenz auf Artikelebene, mit der gemessen wird, wie sicher die Engine von der Richtigkeit der Wörter selbst ist.transcription.results[i].alternatives[j].entities[k].content
ist der eigentliche Text, aus dem die Entität besteht. Dies können mehrere Elemente sein, z. B. eine Adresse.transcription.results[i].alternatives[j].entities[k].startTimeMs
erfasst den Zeitpunkt, zu dem die Entität anfängt, gesprochen zu werden.transcription.results[i].alternatives[j].entities[k].endTimeMs
erfasst den Zeitpunkt, zu dem das Sprechen der Entität beendet wurde.transcription.results[i].alternatives[j].entities[k].type
wird nur für die Transcribe-Engine unterstützt und stellt den Untertyp der Entität bereit. Dies sind Werte wie `ADDRESS`, `CREDITDEBIT_ _NUMBER` usw.
Registrierung von Event-Handlern für TranscriptEvents
In den folgenden Beispielen wird die Amazon Chime SDK Chime-Clientbibliothek für JavaScript verwendet. Das Muster ist jedoch in allen Amazon Chime SDKs einheitlich.
Das TranscriptionController
im RealtimeController
und RealtimeControllerFacade
beinhaltet spezifische Funktionen zum Hinzufügen eines Handlers, der Folgendes verarbeitetTranscriptionEvents
:
/** * Returns the [[TranscriptionController]] for this real-time controller. */ readonly transcriptionController?: TranscriptionController;
Der TranscriptionController
hat zwei Funktionen zur Verwaltung des An- und Abmeldens von Callbacks: TranscriptionEvent
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 der optionalen TranscriptionController
Wir bieten eine Standardimplementierung der TranscriptionController
Schnittstelle namedDefaultTranscriptionController
. Die Standardimplementierung in DefaultRealtimeController
und DefaultAudioVideoFacade
gibt ein DefaultTranscriptionController
Objekt zurück:
/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }
DefaultRealtimeController
nimmt auch ein optionales TranscriptionController
Objekt in seinen Konstruktor auf. Dadurch können Sie das DefaultTranscriptionController
Verhalten überschreiben. Entwickleranwendungen abonnieren oder kündigen einen oder mehrere Callbacks über das TranscriptionController
Objekt des AudioVideoFacade
Objekts:
// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););