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à.
Comprensione dei messaggi di trascrizione
Il SDK servizio Amazon Chime condivide le informazioni di trascrizione con i partecipanti inviando oggetti nei messaggi di dati. TranscriptEvent
A fornisce un o unTranscriptEvent
. 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.results
può 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].alternatives
contiene 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].alternatives
e ignorare le altre.transcription.results[i].alternatives[j].items
include 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].endTimeMs
campo 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].stable
indica 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 risultatiEnablePartialResultsStabilization
impostando sutrue
nella richiesta.transcription.results[i].alternatives[j].entities
include 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].confidence
misura quanto sia potente 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].startTimeMs
registra il momento in cui l'entità ha iniziato a essere parlata.transcription.results[i].alternatives[j].entities[k].endTimeMs
cattura 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 SDK client Amazon Chime per. JavaScript Tuttavia, lo schema è coerente in tutti gli Amazon ChimeSDKs.
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;
TranscriptionController
Ha 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'TranscriptionController
interfaccia denominataDefaultTranscriptionController
. L'implementazione predefinita in DefaultRealtimeController
e DefaultAudioVideoFacade
restituisce un DefaultTranscriptionController
oggetto:
/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }
DefaultRealtimeController
accetta 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'TranscriptionController
oggetto dell'oggetto: AudioVideoFacade
// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););