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.
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 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.transcription.results[i].alternatives
enthä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.transcription.results[i].alternatives[j].items
enthält einen Eintrag für jedes Wort oder jedes 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. 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.Das
transcription.results[i].alternatives[j].items[k].endTimeMs
Feld kann generell ignoriert werden, wird aber der Vollständigkeit halber angegeben, wer wann was gesagt hat.transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch
ist wahr, wenn der Inhalt mit einem Wort im Filter übereinstimmt, andernfalls ist er falsch.transcription.results[i].alternatives[j].items[k].confidence
ist 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.transcription.results[i].alternatives[j].items[k].stable
gibt 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.transcription.results[i].alternatives[j].entities
enthä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.transcription.results[i].alternatives[j].entities[k].category
ist die Kategorie der Entität. Er entspricht der Art der Inhaltsidentifikation oder -redaktion, z. B. „PII“ oder „PHI“, die in der Anfrage angegeben ist.transcription.results[i].alternatives[j].entities[k].confidence
misst, 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.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 anfing, gesprochen zu werden.transcription.results[i].alternatives[j].entities[k].endTimeMs
erfasst den Zeitpunkt, zu dem die Entität das Sprechen beendet hat.transcription.results[i].alternatives[j].entities[k].type
wird 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; }
DefaultRealtimeController
nimmt 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););