本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Chime SDK 服務透過傳送資料訊息中的TranscriptEvent
物件,與出席者共用轉錄資訊。TranscriptEvent
提供 Transcript
或 TranscriptionStatus
。
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;
}
資料準則
請記住這些準則。
-
transcription.results
可能有多個結果。 -
如果
transcription.results[i].isPartial = true
,則整個結果可能會有更新。更新很可能會,但無法保證。更新具有相同的transcript.result[i].resultId
。如果您想要避免低可信度轉錄,您可以完全略過部分結果。如果您想要低延遲結果,您可以顯示部分結果,然後在更新送達時完全覆寫。 -
transcription.results[i].alternatives
一律包含至少一個項目。如果它包含多個項目,最有信心的項目會先在清單中。在大多數情況下,您可以在 中擷取第一個項目transcription.results[i].alternatives
,並忽略其他項目。 -
transcription.results[i].alternatives[j].items
包含每個字詞或標點符號的項目。 -
transcription.results[i].alternatives[j].items[k].
內容是所說的內容。 -
transcription.results[i].alternatives[j].items[k].attendee
是內容的使用者屬性 (誰)。 -
transcription.results[i].alternatives[j].items[k].startTimeMs
是內容的「時間」。這可讓不同使用者之間以字詞的順序word-by-word轉譯使用者歸屬的轉錄。 -
通常可以忽略
transcription.results[i].alternatives[j].items[k].endTimeMs
欄位,但是為了完整說出時間的人員而提供。 -
transcription.results[i].alternatives[j].items[k].vocabularyFilterMatch
如果內容符合篩選條件中的字詞,則為 true,否則為 false。 -
transcription.results[i].alternatives[j].items[k].confidence
是介於 0 和 1 之間的值。它表示引擎的可信度,項目內容正確符合口語,0 表示可信度最低,1 表示可信度最高。 -
transcription.results[i].alternatives[j].items[k].stable
指出目前單字在未來的部分結果更新中是否會變更。只有在您透過在請求true
中EnablePartialResultsStabilization
將 設定為 來啟用部分結果穩定功能時,此值才能為 true。 -
transcription.results[i].alternatives[j].entities
包含內容識別或編輯功能偵測的每個實體的項目。只有在您啟用內容識別或編輯時,才會填入清單。實體可以是個人識別資訊或個人健康資訊等資料。您可以使用實體在轉錄期間反白或對感興趣的字詞採取動作。 -
transcription.results[i].alternatives[j].entities[k].category
是實體的類別。它等於請求中提供的內容識別或修訂類型,例如「PII」或「PHI」。 -
transcription.results[i].alternatives[j].entities[k].confidence
會測量引擎對於特定內容真正是實體的強度。請注意,這與項目層級可信度不同,這會測量引擎對單字本身正確性的可信度。 -
transcription.results[i].alternatives[j].entities[k].content
是組成實體的實際文字。這可以是多個項目,例如 地址。 -
transcription.results[i].alternatives[j].entities[k].startTimeMs
會擷取實體開始說話的時間。 -
transcription.results[i].alternatives[j].entities[k].endTimeMs
會擷取實體完成發言的時間。 -
transcription.results[i].alternatives[j].entities[k].type
僅支援 Transcribe 引擎,並提供實體的子類型。這些是 `ADDRESS`、`CREDIT_DEBIT_NUMBER` 等值。
註冊 的事件處理常式 TranscriptEvents
下列範例使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫。不過,模式在所有 Amazon Chime SDKs中都一致。
RealtimeController
和 TranscriptionController
中的 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
介面預設實作DefaultTranscriptionController
。DefaultRealtimeController
和 中的預設實作會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););