Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Comprendre les messages de transcription en direct du SDK Amazon Chime
Le service Amazon Chime SDK partage les informations de transcription avec les participants en envoyant des TranscriptEvent
objets dans des messages de données. A TranscriptEvent
livre un Transcript
ou unTranscriptionStatus
.
A Transcript
inclut les résultats horodatés, les mots attribués par l'utilisateur et la ponctuation. Un résultat peut être « partiel », auquel cas le système le met généralement à jour ultérieurementTranscriptEvent
. Cela vous permet de consulter rapidement les transcriptions et d'appliquer des mises à jour en ligne ultérieurement si nécessaire.
A TranscriptStatus
peut présenter l'un des TranscriptionStatusType
événements répertoriés dans l'exemple de la section suivante.
Les nouvelles versions d'Amazon Chime SDKs incluent des types de données supplémentaires et des fonctions d'assistance pour le traitement courant a. TranscriptEvent
TranscriptEvent
Cet exemple montre un événement de transcription typique.
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; }
Directives relatives aux données
Gardez ces directives à l'esprit au fur et à mesure.
-
transcription.results
peut avoir plus d'un résultat. -
Si c'est
transcription.results[i].isPartial = true
le cas, il se peut qu'il y ait une mise à jour pour l'ensemble du résultat. La mise à jour est probable, mais elle n'est pas garantie. Il en va de même pour la mise à jourtranscript.result[i].resultId
. Si vous souhaitez éviter les transcriptions peu fiables, vous pouvez ignorer complètement les résultats partiels. Si vous souhaitez obtenir des résultats à faible latence, vous pouvez afficher des résultats partiels, puis les remplacer complètement lorsque la mise à jour arrive. -
transcription.results[i].alternatives
contient toujours au moins une entrée. S'il contient plusieurs entrées, l'entrée la plus sûre est la première de la liste. Dans la plupart des cas, vous pouvez accepter la première entréetranscription.results[i].alternatives
et ignorer les autres. -
transcription.results[i].alternatives[j].items
inclut une entrée pour chaque mot ou signe de ponctuation. -
transcription.results[i].alternatives[j].items[k].
le contenu est ce qui a été dit. -
transcription.results[i].alternatives[j].items[k].attendee
est l'attribution du contenu à l'utilisateur (qui). -
transcription.results[i].alternatives[j].items[k].startTimeMs
est le « quand » du contenu. Cela permet de word-by-word restituer la transcription attribuée par l'utilisateur à différents utilisateurs dans l'ordre dans lequel les mots ont été prononcés. -
Le
transcription.results[i].alternatives[j].items[k].endTimeMs
champ peut généralement être ignoré, mais il est fourni par souci d'exhaustivité pour savoir qui a dit quoi et quand. -
transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch
est vrai si le contenu correspond à un mot du filtre, sinon il est faux. -
transcription.results[i].alternatives[j].items[k].confidence
est une valeur comprise entre 0 et 1. Cela indique que le moteur est sûr que le contenu de l'élément correspond correctement au mot prononcé, 0 étant le niveau de confiance le plus faible et 1 le niveau de confiance le plus élevé. -
transcription.results[i].alternatives[j].items[k].stable
indique si le mot actuel sera modifié lors des futures mises à jour partielles des résultats. Cette valeur ne peut être vraie que si vous activez la fonction de stabilisation des résultats partielstrue
enEnablePartialResultsStabilization
la définissant dans votre demande. -
transcription.results[i].alternatives[j].entities
inclut une entrée pour chaque entité détectée par les fonctionnalités d'identification du contenu ou de rédaction. La liste n'est remplie que si vous activez l'identification ou la rédaction du contenu. Une entité peut être constituée de données telles que des informations personnelles identifiables ou des informations personnelles sur la santé. Vous pouvez utiliser des entités pour mettre en évidence les mots qui vous intéressent ou agir sur ceux-ci lors de la transcription. -
transcription.results[i].alternatives[j].entities[k].category
est la catégorie de l'entité. Il correspond au type d'identification ou de rédaction du contenu, tel que « PII » ou « PHI », fourni dans la demande. -
transcription.results[i].alternatives[j].entities[k].confidence
mesure la puissance du moteur pour faire en sorte que le contenu en question soit réellement une entité. Notez que cela est différent de la confiance au niveau de l'élément, qui mesure le degré de confiance du moteur dans l'exactitude des mots eux-mêmes. -
transcription.results[i].alternatives[j].entities[k].content
est le texte réel qui constitue l'entité. Il peut s'agir de plusieurs éléments, tels qu'une adresse. -
transcription.results[i].alternatives[j].entities[k].startTimeMs
capture l'heure à laquelle l'entité a commencé à être parlée. -
transcription.results[i].alternatives[j].entities[k].endTimeMs
capture l'heure à laquelle l'entité a fini d'être prononcée. -
transcription.results[i].alternatives[j].entities[k].type
n'est pris en charge que pour le moteur Transcribe et fournit le sous-type de l'entité. Il s'agit de valeurs telles que `ADDRESS`, `CREDIT_DEBIT_NUMBER`, etc.
Enregistrement de gestionnaires d'événements pour TranscriptEvents
Les exemples suivants utilisent la bibliothèque cliente du SDK Amazon Chime pour. JavaScript Cependant, le schéma est le même sur tous les Amazon Chime SDKs.
Le TranscriptionController
in the RealtimeController
et RealtimeControllerFacade
inclut des fonctions spécifiques pour ajouter un gestionnaire qui traite TranscriptionEvents
:
/** * Returns the [[TranscriptionController]] for this real-time controller. */ readonly transcriptionController?: TranscriptionController;
TranscriptionController
Il dispose de deux fonctions pour gérer l'abonnement et le désabonnement aux rappels : 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; }
Utilisation de l'option TranscriptionController
Nous fournissons une implémentation par défaut de TranscriptionController
l'interface nomméeDefaultTranscriptionController
. L'implémentation par défaut dans DefaultRealtimeController
et DefaultAudioVideoFacade
renvoie un DefaultTranscriptionController
objet :
/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }
DefaultRealtimeController
prend également un TranscriptionController
objet optionnel dans son constructeur. Cela vous permet de modifier le DefaultTranscriptionController
comportement. Les applications de développement s'abonnent et se désabonnent à un ou plusieurs rappels via l'TranscriptionController
objet de l'AudioVideoFacade
objet :
// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););