了解 Amazon Chime SDK 即時轉錄訊息 - Amazon Chime SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解 Amazon Chime SDK 即時轉錄訊息

Amazon Chime SDK 服務透過在資料訊息中傳送TranscriptEvent物件,與出席者共用轉錄資訊。TranscriptEvent 提供 TranscriptTranscriptionStatus

Transcript 包含時間戳記、使用者歸屬單字和標點符號的結果。結果可能是「部分」,在這種情況下,系統通常會在後續的 中更新它TranscriptEvent。這可讓您快速查看轉錄,並在必要時稍後套用內嵌更新。

TranscriptStatus 可能會交付其中一個TranscriptionStatusType事件,列於下一節的範例。

較新版本的 Amazon Chime SDKs包含用於常見處理 的其他資料類型和協助程式函數TranscriptEvent

TranscriptEvent

此範例顯示典型轉錄事件。

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; }

資料準則

請記住這些準則。

  1. transcription.results 可能有多個結果。

  2. 如果為 transcription.results[i].isPartial = true,則整個結果可能會有更新。更新可能是可能的,但不保證。更新具有相同的 transcript.result[i].resultId。如果您想要避免低可信度轉錄,您可以完全略過部分結果。如果您想要低延遲的結果,您可以顯示部分結果,然後在更新送達時完全覆寫。

  3. transcription.results[i].alternatives 一律包含至少一個項目。如果它包含多個項目,最有信心的項目會排在清單中。在大多數情況下,您可以在 中取得第一個項目transcription.results[i].alternatives,並忽略其他項目。

  4. transcription.results[i].alternatives[j].items 包含每個單字或標點符號的項目。

  5. transcription.results[i].alternatives[j].items[k]. 內容是說出的內容。

  6. transcription.results[i].alternatives[j].items[k].attendee 是內容的使用者屬性 (誰)。

  7. transcription.results[i].alternatives[j].items[k].startTimeMs 是內容的「時間」。這可讓不同使用者之間word-by-word轉譯使用者歸屬的轉錄,其順序是說出單字。

  8. transcription.results[i].alternatives[j].items[k].endTimeMs 欄位通常可以忽略,但是為了完整說出時間的人員而提供。

  9. transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch 如果內容符合篩選條件中的字詞,則為 true,否則為 false。

  10. transcription.results[i].alternatives[j].items[k].confidence 是介於 0 和 1 之間的值。它表示引擎對項目內容正確符合口語字詞的可信度,0 表示最低可信度,1 表示最高可信度。

  11. transcription.results[i].alternatives[j].items[k].stable 指出目前單字在未來的部分結果更新中是否會變更。只有在您透過在請求trueEnablePartialResultsStabilization將 設定為 來啟用部分結果穩定功能時,此值才能為 true。

  12. transcription.results[i].alternatives[j].entities 包含內容識別或修訂功能偵測的每個實體的項目。只有在您啟用內容識別或修訂時,才會填入清單。實體可以是個人身分識別資訊或個人健康資訊等資料。您可以使用實體在轉錄期間反白或對感興趣的字詞採取行動。

  13. transcription.results[i].alternatives[j].entities[k].category 是實體的類別。它等於請求中提供的內容識別或修訂類型,例如「PII」或「PHI」。

  14. transcription.results[i].alternatives[j].entities[k].confidence 會測量引擎對於特定內容真正是實體的強度。請注意,這與項目層級可信度不同,這會測量引擎對單字本身正確性的可信度。

  15. transcription.results[i].alternatives[j].entities[k].content 是組成實體的實際文字。這可以是多個項目,例如 地址。

  16. transcription.results[i].alternatives[j].entities[k].startTimeMs 會擷取實體開始說話的時間。

  17. transcription.results[i].alternatives[j].entities[k].endTimeMs 會擷取實體完成說話的時間。

  18. transcription.results[i].alternatives[j].entities[k].type 僅支援 Transcribe 引擎,並提供實體的子類型。這些是 `ADDRESS`、`CREDIT_DEBIT_NUMBER` 等值。

註冊 的事件處理常式 TranscriptEvents

下列範例使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫。不過,模式在所有 Amazon Chime SDKs之間都是一致的。

RealtimeControllerTranscriptionController中的 RealtimeControllerFacade包含特定函數,用於新增處理 的處理常式TranscriptionEvents

/** * Returns the [[TranscriptionController]] for this real-time controller. */ readonly transcriptionController?: TranscriptionController;

TranscriptionController 有兩個函數可管理訂閱和取消訂閱回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; }
使用選用的 TranscriptionController

我們提供名為 的TranscriptionController介面預設實作DefaultTranscriptionControllerDefaultRealtimeController 和 中的預設實作會DefaultAudioVideoFacade傳回DefaultTranscriptionController物件:

/** get transcriptionController(): TranscriptionController { return this.realtimeController.transcriptionController; }

DefaultRealtimeController 也會在其建構函數中採用選用TranscriptionController物件。這可讓您覆寫DefaultTranscriptionController行為。開發人員應用程式透過 AudioVideoFacade 物件的 TranscriptionController 物件訂閱和取消訂閱一或多個回呼:

// Subscribe this.audioVideo.transcriptionController?.subscribeToTranscriptEvent(this.transcriptEventHandler); // Unsubscribe this.audioVideo.transcriptionController?.unsubscribeFromTranscriptEvent(this.transcriptEventHandler););