选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

了解 Amazon Chime SDK 实时转录消息

聚焦模式
了解 Amazon Chime SDK 实时转录消息 - Amazon Chime SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Chime SDK 服务通过在数据消息中发送 TranscriptEvent 对象,与与会者共享转录信息。TranscriptEvent 传递 TranscriptTranscriptionStatus

Transcript 包括带有时间戳、用户归属单词和标点符号的结果。结果可能是“部分的”,在这种情况下,系统通常会在后续 TranscriptEvent 中对其进行更新。这使您可以快速查看转录,并在以后根据需要应用内联更新。

TranscriptStatus 可能会传递其中一个 TranscriptionStatusType 事件,如以下部分示例中所列。

较新版本的 Amazon Chime SDKs 包括用于常见处理的其他数据类型和辅助函数 a. 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 为真,否则为假。

  10. transcription.results[i].alternatives[j].items[k].confidence 是 0 到 1 之间的值。它表示引擎对项目内容与所说单词正确匹配的置信度,其中 0 表示置信度最低,1 表示置信度最高。

  11. transcription.results[i].alternatives[j].items[k].stable 表示当前单词是否会在后续部分结果更新中发生变化。仅当您在请求中将 EnablePartialResultsStabilization 设置为 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 引擎并提供实体的子类型。这些是诸如“地址”、“CREDIT_DEBIT_NUMBER”等值。

为注册事件处理程序 TranscriptEvents

以下示例使用适用于 Amazon Chime 软件开发工具包的客户端库。 JavaScript但是,所有亚马逊 Ch SDKs ime 的模式都是一致的。

RealtimeControllerRealtimeControllerFacade 中的 TranscriptionController 包括用于添加处理 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

我们提供了名为 DefaultTranscriptionControllerTranscriptionController 接口的默认实现。DefaultRealtimeControllerDefaultAudioVideoFacade 中的默认实现会返回一个 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););
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。