Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Comprendere i messaggi di trascrizione in tempo reale di Amazon Chime SDK
Il servizio Amazon Chime SDK condivide le informazioni di trascrizione con i partecipanti inviando oggetti nei messaggi di dati. TranscriptEvent A fornisce un o un. TranscriptEvent Transcript TranscriptionStatus
A Transcript include risultati con parole e punteggiatura con data e ora attribuite dall'utente. Un risultato può essere «parziale», nel qual caso il sistema di solito lo aggiorna in un secondo momento. TranscriptEvent Ciò consente di visualizzare rapidamente le trascrizioni e di applicare gli aggiornamenti in linea in un secondo momento, se necessario.
A TranscriptStatus può fornire uno degli TranscriptionStatusType eventi, elencati nell'esempio nella sezione successiva.
Le versioni più recenti di Amazon SDKs Chime includono tipi di dati aggiuntivi e funzioni di supporto per l'elaborazione comune a. TranscriptEvent
TranscriptEvent
Questo esempio mostra un tipico evento di trascrizione.
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; }
Linee guida sui dati
Tieni a mente queste linee guida mentre procedi.
-
transcription.resultspuò avere più di un risultato. -
Se
transcription.results[i].isPartial = true, allora potrebbe esserci un aggiornamento per l'intero risultato. L'aggiornamento è probabile, ma non garantito. L'aggiornamento è lo stessotranscript.result[i].resultId. Se vuoi evitare trascrizioni con scarsa confidenza, puoi saltare completamente i risultati parziali. Se desideri risultati a bassa latenza, puoi visualizzare i risultati parziali e sovrascriverli completamente quando arriva l'aggiornamento. -
transcription.results[i].alternativescontiene sempre almeno una voce. Se contiene più di una voce, la voce più sicura è la prima dell'elenco. Nella maggior parte dei casi, è possibile inserire la prima vocetranscription.results[i].alternativese ignorare le altre. -
transcription.results[i].alternatives[j].itemsinclude una voce per ogni parola o segno di punteggiatura. -
transcription.results[i].alternatives[j].items[k].il contenuto è ciò che è stato detto. -
transcription.results[i].alternatives[j].items[k].attendeeè l'attribuzione dell'utente (chi) del contenuto. -
transcription.results[i].alternatives[j].items[k].startTimeMsè il «quando» del contenuto. Ciò consente la word-by-word riproduzione della trascrizione attribuita dall'utente tra diversi utenti nell'ordine in cui le parole sono state pronunciate. -
Il
transcription.results[i].alternatives[j].items[k].endTimeMscampo può generalmente essere ignorato, ma viene fornito per completezza di chi ha detto cosa e quando. -
transcription.results[i].alternatives[j].items[k].vocabularyFilterMatchè vero se il contenuto corrisponde a una parola nel filtro, altrimenti è falso. -
transcription.results[i].alternatives[j].items[k].confidenceè un valore compreso tra 0 e 1. Indica la fiducia del motore che il contenuto dell'elemento corrisponde correttamente alla parola pronunciata, dove 0 è la confidenza più bassa e 1 la massima. -
transcription.results[i].alternatives[j].items[k].stableindica se la parola corrente cambierà nei futuri aggiornamenti parziali dei risultati. Questo valore può essere vero solo se si abilita la funzione di stabilizzazione parziale dei risultatiEnablePartialResultsStabilizationimpostando sutruenella richiesta. -
transcription.results[i].alternatives[j].entitiesinclude una voce per ogni entità rilevata dalle funzioni di Content Identification o Redaction. L'elenco viene compilato solo se abiliti l'identificazione o la redazione dei contenuti. Un'entità può essere costituita da dati quali informazioni di identificazione personale o informazioni sanitarie personali. Puoi utilizzare le entità per evidenziare o agire in base alle parole che ti interessano durante la trascrizione. -
transcription.results[i].alternatives[j].entities[k].categoryè la categoria dell'entità. È uguale al tipo di identificazione o redazione del contenuto, ad esempio «PII» o «PHI», fornito nella richiesta. -
transcription.results[i].alternatives[j].entities[k].confidencemisura quanto sia forte il motore del fatto che quel particolare contenuto sia realmente un'entità. Nota che questo valore è diverso dalla confidenza a livello di elemento, che misura la fiducia del motore nella correttezza delle parole stesse. -
transcription.results[i].alternatives[j].entities[k].contentè il testo effettivo che costituisce l'entità. Può trattarsi di più elementi, ad esempio un indirizzo. -
transcription.results[i].alternatives[j].entities[k].startTimeMsregistra il momento in cui l'entità ha iniziato a essere parlata. -
transcription.results[i].alternatives[j].entities[k].endTimeMscattura l'ora in cui l'entità ha finito di essere parlata. -
transcription.results[i].alternatives[j].entities[k].typeè supportato solo per il motore Transcribe e fornisce il sottotipo dell'entità. Si tratta di valori come `ADDRESS`, `CREDIT_DEBIT_NUMBER` e così via.
Registrazione di gestori di eventi per TranscriptEvents
I seguenti esempi utilizzano la libreria client Amazon Chime SDK per. JavaScript Tuttavia, lo schema è coerente in tutti gli Amazon Chime SDKs.
The TranscriptionController in the RealtimeController and RealtimeControllerFacade include funzioni specifiche per l'aggiunta di un gestore che elabora: TranscriptionEvents
/** * Returns the [[TranscriptionController]] for this real-time controller. */ readonly transcriptionController?: TranscriptionController;
TranscriptionControllerHa due funzioni per gestire l'iscrizione e l'annullamento dell'iscrizione ai callback: 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; }
Utilizzando l'opzione TranscriptionController
Forniamo un'implementazione predefinita dell'TranscriptionControllerinterfaccia denominataDefaultTranscriptionController. L'implementazione predefinita in DefaultRealtimeController e DefaultAudioVideoFacade restituisce un DefaultTranscriptionController oggetto:
/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }
DefaultRealtimeControlleraccetta anche un TranscriptionController oggetto opzionale nel suo costruttore. Ciò consente di sovrascrivere il DefaultTranscriptionController comportamento. Le applicazioni per sviluppatori si iscrivono e annullano l'iscrizione a uno o più callback tramite l'TranscriptionControlleroggetto dell'oggetto: AudioVideoFacade
// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););