

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

# 使用 Amazon Chime SDK 即時轉錄
<a name="meeting-transcription"></a>

您可以使用 Amazon Chime SDK 即時轉錄來產生會議的即時使用者歸屬文字記錄。Amazon Chime SDK 即時轉錄與 Amazon Transcribe 和 Amazon Transcribe Medical 服務整合，以在進行時產生 Amazon Chime SDK 會議的轉錄。

Amazon Chime SDK 即時轉錄會個別處理每個使用者的音訊，以提升多喇叭案例的準確性。Amazon Chime SDK 使用其作用中的通話者演算法來選取前兩個作用中的通話者，然後透過單一串流，將其音訊以不同的頻道傳送至 Amazon Transcribe。會議參與者會透過 Amazon Chime SDK 資料訊息接收使用者歸屬的轉錄。您可以透過各種方式使用轉錄，例如顯示字幕、建立會議轉錄，或使用轉錄進行內容分析。

在會議轉錄期間，即時轉錄會使用一個串流到 Amazon Transcribe。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。如需詳細資訊，請參閱 [Amazon Transcribe 定價](https://aws.amazon.com/transcribe/pricing/)。有關用量或帳單的問題，請聯絡您的 AWS 客戶經理。

**重要**  
根據預設，Amazon Transcribe 可能會使用和存放服務處理的音訊內容，以開發和改善 AWS AI/ML 服務，如[AWS 服務條款](https://aws.amazon.com/service-terms/)第 50 節所述。使用 Amazon Transcribe 可能受到有關記錄或攔截電子通訊的聯邦和州法律法規的約束。您和最終使用者有責任遵守有關記錄的所有適用法律，包括適當地通知記錄工作階段或通訊中的所有參與者正在記錄工作階段或通訊，並取得所有必要的同意。您可以使用 AWS Organizations 設定 AWS AI 服務選擇退出政策，以選擇退出 AWS 使用音訊內容來開發和改善 AI/ML 服務。

**Topics**
+ [系統架構](#sys-architecture)
+ [帳單和用量](#billing-and-usage)
+ [設定您的帳戶以進行 Amazon Chime SDK 即時轉錄](configure-transcribe.md)
+ [選擇 Amazon Chime SDK 即時轉錄選項](transcription-options.md)
+ [啟動和停止 Amazon Chime SDK 即時轉錄](initiate-transcription.md)
+ [Amazon Chime SDK 即時轉錄參數](#transcription-parameters)
+ [了解 Amazon Chime SDK 即時轉錄事件](transcription-events.md)
+ [了解 Amazon Chime SDK 即時轉錄訊息](process-msgs.md)
+ [處理收到的 Amazon Chime SDK 即時文字記錄事件](delivery-examples.md)
+ [剖析 Amazon Chime SDK 文字記錄](parse-transcripts.md)

## 系統架構
<a name="sys-architecture"></a>

Amazon Chime SDK 透過與您的 Amazon Transcribe 或 Amazon Transcribe Medical 帳戶的服務端整合，建立即時會議轉錄，而無需音訊離開 AWS 網路。為了提高準確性，使用者音訊會分別處理，然後混合到會議。Amazon Chime SDK 使用其作用中的發言者演算法來選取前兩個作用中的發言者，然後透過單一串流將其音訊傳送至個別頻道中的 Amazon Transcribe 或 Amazon Transcribe Medical。為了減少延遲，使用者歸屬的轉錄會透過資料訊息直接傳送給每個會議參與者。使用媒體管道擷取會議音訊時，也會擷取會議的轉錄資訊。

![\[顯示會議轉錄資料流程的圖表。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/transcription-architecture.png)


## 帳單和用量
<a name="billing-and-usage"></a>

在會議轉錄期間，即時轉錄會使用一個串流到 Amazon Transcribe 或 Amazon Transcribe Medical。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。如需詳細資訊，請參閱 [Amazon Transcribe 定價](https://aws.amazon.com/transcribe/pricing/)。有關用量或帳單的問題，請聯絡您的 AWS 客戶經理。

# 設定您的帳戶以進行 Amazon Chime SDK 即時轉錄
<a name="configure-transcribe"></a>

在使用 Amazon Chime SDK 即時轉錄之前，您必須授予 Amazon Chime SDK 許可，以呼叫您 AWS 帳戶中的 Amazon Transcribe 和 Amazon Transcribe Medical。您可以透過將 Chime Transcription 服務連結角色新增至您的帳戶來執行此操作。如需有關為即時轉錄建立服務連結角色的資訊，請參閱《*Amazon Chime SDK 管理指南*》中的[使用具有即時轉錄的角色](https://docs.aws.amazon.com/chime-sdk/latest/ag/using-service-linked-roles-transcription.html)。如需 IAM 服務連結角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

# 選擇 Amazon Chime SDK 即時轉錄選項
<a name="transcription-options"></a>

當您使用 Amazon Chime SDK 即時轉錄時，您會在帳戶中 AWS 使用 [Amazon Transcribe](https://aws.amazon.com/transcribe/) 或 [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/)。您可以存取 [Amazon Transcribe 支援的所有串流語言](https://docs.aws.amazon.com/transcribe/latest/dg/what-is-transcribe.html)，以及[自訂詞彙](https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html)和[詞彙篩選條件](https://docs.aws.amazon.com/transcribe/latest/dg/filter-unwanted-words.html)等功能。使用 Amazon Transcribe Medical 時，您可以選擇醫療專科、對話類型，並選擇性地提供任何自訂詞彙。標準 Amazon Transcribe 和 Amazon Transcribe Medical 費用適用。

選擇轉錄選項的程序遵循下列步驟。

## 步驟 1：選擇轉錄服務
<a name="choose-service"></a>

您需要決定要使用哪些轉錄服務，[Amazon Transcribe](https://aws.amazon.com/transcribe/) 或 [Amazon Transcribe Medical](https://aws.amazon.com/transcribe/medical/)。

如果您的使用案例需要醫學語音轉文字功能，您可能想要使用 Amazon Transcribe Medical。對於所有其他使用案例，您可能想要使用 Amazon Transcribe。

您可以指定呼叫 `StartMeetingTranscription` API 時要使用的轉錄服務：
+ 若要使用 Amazon Transcribe，`TranscriptionConfiguration`請使用 指定 `EngineTranscribeSettings`。
+ 若要使用 Amazon Transcribe Medical，`TranscriptionConfiguration`請使用 指定 `EngineTranscribeMedicalSettings`。

## 步驟 2：選擇轉錄區域
<a name="choose-region"></a>

您需要為轉錄服務選擇 AWS 區域。如需 Amazon Transcribe 和 Amazon Transcribe Medical 可用 AWS 區域的相關資訊，請參閱[AWS 區域服務](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)表。

 一般而言，會議媒體區域與轉錄區域之間的最低延遲可提供最佳的使用者體驗。對於最低延遲，請盡可能使用相同的區域進行媒體和轉錄。不過，在選取區域時，您可能會考慮其他因素，例如法規要求或您設定 Amazon Transcribe 或 Amazon Transcribe Medical 的區域。

Amazon Transcribe 和 Amazon Transcribe Medical 功能是區域特定功能，例如自訂詞彙或詞彙篩選條件。如果您設定任何這些功能，您應該在打算使用即時轉錄的所有 AWS 區域中進行相同的設定。或者，您可以將相同的 Amazon Transcribe 區域用於所有會議。

您可以指定轉錄服務使用的 區域。您可以在呼叫 `StartMeetingTranscription` API 時，將區域名稱新增至轉錄引擎設定的 `Region` 欄位來執行此操作。如果您未指定區域，Amazon Chime SDK 會嘗試在會議的媒體區域中使用轉錄服務。若要讓 Amazon Chime SDK 為您選取轉錄服務的區域，`auto`請在 `Region` 欄位中指定 。當您這樣做時，Amazon Chime 會根據會議的媒體區域選取轉錄服務區域，如下表所述。如需 `StartMeetingTranscription` API 的詳細資訊，請參閱本指南[啟動和停止 Amazon Chime SDK 即時轉錄](initiate-transcription.md)中的 。

**注意**  
Amazon Chime SDK 選取的轉錄區域可能會有所變更 AWS，因為 Amazon Chime SDK、Amazon Transcribe 和 Amazon Transcribe Medical 提供更多區域。

**Amazon Transcribe 的自動區域選擇**  



|  Amazon Chime SDK 媒體區域  |  區域代碼  |  轉錄區域  | 
| --- | --- | --- | 
|  美國東部 (俄亥俄)  |  us-east-2  | us-east-2  | 
|  美國東部 (維吉尼亞北部)  |  us-east-1  | us-east-1  | 
|  美國西部 (加利佛尼亞北部)  |  us-west-1  | us-west-2 | 
|  美國西部 (奧勒岡)  |  us-west-2  | us-west-2  | 
|  非洲 （開普敦）**\$1**  |  af-south-1  | eu-west-2  | 
|  亞太區域 (孟買)  |  ap-south-1  | eu-west-2 | 
|  亞太區域 (首爾)  |  ap-northeast-2  | ap-northeast-2 | 
|  亞太區域 (新加坡)  |  ap-southeast-1  | ap-northeast-1 | 
|  亞太地區 (悉尼)  |  ap-southeast-2  | ap-southeast-2 | 
|  亞太區域 (東京)  |  ap-northeast-1  | ap-northeast-1 | 
|  加拿大 (中部)  |  ca-central-1  | ca-central-1 | 
|  歐洲 (法蘭克福)   |  eu-central-1  | eu-central-1  | 
|  歐洲 (愛爾蘭)  |  eu-west-1  | eu-west-1 | 
|  歐洲 (倫敦)  |  eu-west-2  | eu-west-2  | 
|  歐洲 （米蘭）**\$1**  |  eu-south-1  | eu-central-1  | 
|  Europe (Paris)  |  eu-west-3  | eu-central-1  | 
|  Europe (Stockholm)  |  eu-north-1  | eu-central-1 | 
|  南美洲 (聖保羅)  |  sa-east-1  | sa-east-1 | 
|  GovCloud （美國東部）  |  us-gov-east-1  |  us-gov-west-1  | 
|  GovCloud （美國西部）  |  us-gov-west-1  |  us-gov-west-1  | 

**Amazon Transcribe Medical 的自動區域選擇**  



|  Amazon Chime SDK 媒體區域  |  區域代碼  |  轉錄區域  | 
| --- | --- | --- | 
|  美國東部 (俄亥俄)  |  us-east-2  | us-east-2 | 
|  美國東部 (維吉尼亞北部)  |  us-east-1  | us-east-1 | 
|  美國西部 (加利佛尼亞北部)  |  us-west-1  | us-west-2 | 
|  美國西部 (奧勒岡)  |  us-west-2  | us-west-2 | 
|  非洲 （開普敦）**\$1**  |  af-south-1  |  eu-west-1  | 
|  亞太區域 (孟買)  |  ap-south-1  | eu-west-1  | 
|  亞太區域 (首爾)  |  ap-northeast-2  | us-west-2 | 
|  亞太區域 (新加坡)  |  ap-southeast-1  | ap-southeast-2 | 
|  亞太地區 (悉尼)  |  ap-southeast-2  | ap-southeast-2 | 
|  亞太區域 (東京)  |  ap-northeast-1  | us-west-2 | 
|  加拿大 (中部)  |  ca-central-1  | ca-central-1 | 
|  歐洲 (法蘭克福)   |  eu-central-1  | eu-west-1 | 
|  歐洲 (愛爾蘭)  |  eu-west-1  | eu-west-1 | 
|  歐洲 (倫敦)  |  eu-west-2  | us-east-1 | 
|  歐洲 （米蘭）**\$1**  |  eu-south-1  | eu-west-1 | 
|  Europe (Paris)  |  eu-west-3  | eu-west-1 | 
|  Europe (Stockholm)  |  eu-north-1  | eu-west-1 | 
|  南美洲 (聖保羅)  |  sa-east-1  | us-east-1 | 

**注意**  
若要在標示星號 (**\$1**) 的區域中使用即時轉錄，您必須先在帳戶中 AWS 啟用 區域。如需詳細資訊，請參閱 中的[啟用區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) AWS 一般參考。

如需每個服務的區域和端點的詳細資訊，請參閱：
+ [Amazon Chime SDK 媒體區域](https://docs.aws.amazon.com/chime-sdk/latest/dg/chime-sdk-meetings-regions.html)
+ [Amazon Transcribe 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transcribe.html#transcribe_region)
+ [Amazon Transcribe Medical 端點和配額](https://docs.aws.amazon.com/general/latest/gr/transcribe-medical.html)

## 步驟 3：檢閱服務配額
<a name="transcribe-quotas"></a>

每個具有即時轉錄的 Amazon Chime SDK 會議只需要一個 HTTP/2 串流到 Amazon Transcribe 或 Amazon Transcribe Medical。這兩個服務都有同時 HTTP/2 串流數量的區域服務配額，以及每秒啟動串流交易的配額。如需配額的詳細資訊，請參閱《*Amazon Transcribe 開發人員指南*》中的[準則和配額](https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html)。如需增加配額的相關資訊，請參閱 AWS 主控台中的 Service Quotas。

# 啟動和停止 Amazon Chime SDK 即時轉錄
<a name="initiate-transcription"></a>

您可以使用 Amazon Chime SDK [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_StartMeetingTranscription.html) API，透過將 `TranscriptionConfiguration` 套用至會議來啟動會議轉錄。Amazon Chime SDK 控制器會以非同步方式將組態轉送至會議。啟動會議轉錄的成功或失敗會透過 Amazon Simple Notification Service (Amazon SNS) 和 Amazon EventBridge 的訊息發出訊號。

**開始轉錄**  
此範例示範如何使用 Amazon Transcribe 開始即時轉錄。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{
    "TranscriptionConfiguration": {
        "EngineTranscribeSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "en-US",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_ResponseSyntax)": "tag",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "profanity",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "lingo",
            "Region": "us-east-1"
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": true,  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "high",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "PII",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "ALL",  
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestSyntax)": "language-model"
        }
    }
}
```

此範例示範如何使用 Amazon Transcribe Medical 開始即時轉錄。

```
POST /meetings/meetingId/transcription?operation=start HTTP/1.1 
Content-type: application/json
{  
    "TranscriptionConfiguration": {
        "EngineTranscribeMedicalSettings": {
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "en-US",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PRIMARYCARE",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "CONVERSATION",
            "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "lingo",
            "Region": "us-east-1",
           "[https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)": "PHI", 
        }
   }
}
```

`StartMeetingTranscription` – 開始會議的轉錄。  
`meetingId` – 由 [CreateMeeting API](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateMeeting.html#API_CreateMeeting_ResponseSyntax) 傳回的會議 ID。  
`TranscriptionConfiguration` – 封裝即時轉錄的參數。您必須只指定一個組態，`EngineTranscribeSettings`或 `EngineTranscribeMedicalSettings`。

`EngineTranscribeSettings` – 指定 Amazon Transcribe 的使用，並將其設定傳遞至 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html#API_streaming_StartStreamTranscription_RequestParameters)。  
`LanguageCode` - 必要。  
`VocabularyFilterMethod` - 選用。  
`VocabularyFilterName` - 選用。  
`VocabularyName` - 選用。  
`Region` - 選用。  
`EnablePartialResultsStabilization` - 選用。  
`PartialResultsStability` - 選用。  
` ContentIdentificationType` - 選用。  
`ContentRedactionType` - 選用。  
`PiiEntityTypes ` - 選用。  
`LanguageModelName` - 選用。

`EngineTranscribeMedicalSettings` – 指定 Amazon Transcribe Medical 的使用，並將其設定傳遞至 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html#API_streaming_StartMedicalStreamTranscription_RequestParameters)。  
`LanguageCode` - 必要。  
`Speciality` - 必要。  
`Type` - 必要。  
`VocabularyName` - 選用。  
`Region` - 選用。  
` ContentIdentificationType` - 選用。

**回應**  
Amazon Transcribe 和 Amazon Transcribe Medical 會採取下列回應：
+ `OK` (200)，如果您成功將 套用`TranscriptionConfiguration`到會議，則為空白內文。

**錯誤訊息**  
Amazon Transcribe 和 Amazon Transcribe Medical 會顯示下列錯誤訊息：
+ **BadRequestException (400)：**輸入參數不符合服務的限制。
+ **ForbiddenException (403)：**永久禁止用戶端提出請求。
+ **NotFoundException (404)：** `meetingId` 不存在。
+ **ResourceLimitExceededException (400)：**請求超過資源限制。例如，太多會議已啟用即時轉錄。
+ **ServiceFailureException (500)：**服務遇到意外錯誤。
+ **ServiceUnavailableException (503)：**服務目前無法使用。
+ **ThrottledClientException (429)：**用戶端超過其請求率限制。
+ **UnauthorizedClientException (401)：**用戶端目前未獲授權發出請求。

`StartMeetingTranscription` 再次呼叫 會更新`TranscriptionConfiguration`套用至會議的 。

**停止轉錄**  
您可以使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html) API 來移除指定`meetingID`和結束會議轉錄`TranscriptionConfiguration`的 。結束會議會自動停止轉錄。

此範例顯示叫用 的請求語法`StopMeetingTranscription`。

```
POST/meetings/meetingId/transcription?operation=stop HTTP/1.1
```

**回應**  
Amazon Transcribe 和 Amazon Transcribe Medical 會採取下列回應：
+ `OK` (200)，如果您成功`TranscriptionConfiguration`從會議中移除 。

**錯誤訊息**  
Amazon Transcribe 和 Amazon Transcribe Medical 會顯示下列錯誤訊息：
+ **BadRequestException (400)：**輸入參數不符合服務的限制。
+ **ForbiddenException (403)：**永久禁止用戶端提出請求。
+ **NotFoundException (404)：** `meetingId` 不存在。
+ **ServiceFailureException (500)：**服務遇到意外錯誤。
+ **ServiceUnavailableException (503)：**服務目前無法使用。
+ **ThrottledClientException (429)：**用戶端超過其請求率限制。
+ **UnauthorizedClientException (401)：**用戶端目前未獲授權發出請求。

## Amazon Chime SDK 即時轉錄參數
<a name="transcription-parameters"></a>

Amazon Transcribe 和 Amazon Transcribe Medical APIs啟動串流轉錄時提供許多參數，例如 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartStreamTranscription.html)和 [https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html](https://docs.aws.amazon.com/transcribe/latest/dg/API_streaming_StartMedicalStreamTranscription.html)。除非 Amazon Chime SDK 預先決定參數的值，否則您可以在 `StartMeetingTranscription` API 中使用 t 管參數。例如， `MediaEncoding`和 `MediaSampleRateHertz` 參數不可用，因為 Amazon Chime SDK 會自動設定它們。

Amazon Transcribe 和 Amazon Transcribe Medical 會驗證參數，這可讓您在新參數值可用時立即使用。例如，如果 Amazon Transcribe Medical 啟動支援新語言，您只需在 `LanguageCode` 參數中指定新語言值。

# 了解 Amazon Chime SDK 即時轉錄事件
<a name="transcription-events"></a>

Amazon Chime SDK 會傳送轉錄生命週期事件，您可以使用這些事件來觸發通知並啟動下游工作流程。使用轉錄事件的一些範例包括：
+ 測量 Amazon Chime SDK 會議採用即時轉錄
+ 追蹤語言偏好設定

您可以將事件傳送至 Amazon EventBridge、Amazon Simple Notification Service 和 Amazon Simple Queue Service。如需詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的[來自 AWS 服務的事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html)。

## Amazon Chime SDK 會議轉錄已開始
<a name="transcript-start"></a>

開始會議轉錄或更新 時，Amazon Chime SDK [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStarted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StartMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄已停止
<a name="transcript-stop"></a>

Amazon Chime SDK 會在會議轉錄停止時傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionStopped",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_StopMeetingTranscription.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄中斷
<a name="transcript-interrupted"></a>

如果會議轉錄中斷，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionInterrupted",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄已繼續
<a name="transcript-resumed"></a>

如果會議轉錄在中斷後恢復，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionResumed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

## Amazon Chime SDK 會議轉錄失敗
<a name="transcript-failed"></a>

如果會議轉錄無法啟動，或在中斷後無法繼續，Amazon Chime SDK 會傳送此事件。

**範例：事件資料**  
以下是此事件的範例資料。

```
{
    "version": "0", 
    "source": "aws.chime", 
    "account": "111122223333", 
    "id": "12345678-1234-1234-1234-111122223333", 
    "region": "us-east-1", 
    "detail-type": "Chime Meeting State Change", 
    "time": "yyyy-mm-ddThh:mm:ssZ", 
    "resources": []
    "detail": {
        "version": "0", 
        "eventType": "chime:TranscriptionFailed",
        "timestamp": 12344566754,
        "meetingId": "87654321-4321-4321-1234-111122223333",
        "externalMeetingId": "mymeeting",
        "message": "Internal server error",
        "mediaRegion": "us-west-1",
        "transcriptionRegion": "us-west-2",
        "[https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_TranscriptionConfiguration.html)": "{...}"
    }
}
```

# 了解 Amazon Chime SDK 即時轉錄訊息
<a name="process-msgs"></a>

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

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

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

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

## TranscriptEvent
<a name="transcript-event"></a>

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

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

## 資料準則
<a name="data-guidelines"></a>

請記住這些準則。

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

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

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

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

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

1. `transcription.results[i].alternatives[j].items[k].attendee` 是內容的使用者屬性 （誰）。

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

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

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

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

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

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

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

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

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

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

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

1. `transcription.results[i].alternatives[j].entities[k].type` 僅支援 Transcribe 引擎，並提供實體的子類型。這些是 `ADDRESS`、`CREDIT\$1DEBIT\$1NUMBER` 等值。

## 註冊 的事件處理常式 TranscriptEvents
<a name="register-handler"></a>

下列範例使用適用於 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););
```

# 處理收到的 Amazon Chime SDK 即時文字記錄事件
<a name="delivery-examples"></a>

下列範例示範如何處理收到的 `TranscriptEvent`。

**注意**  
確切的輸出取決於幾個因素，包括個人說話的速度和停頓時間。

## 範例 1：StartMeetingTranscription
<a name="example-1"></a>

此範例顯示典型`StartMeetingTranscription`的操作。

```
meeting.StartMeetingTranscription(
    { EngineTranscribeSettings: { Languagecode: ‘en-US’ } } );
```

操作會產生 `TranscriptEvent`。

```
{   
    status: {        
        type: 'started',        
        eventTimeMs: 1620118800000,        
        transcriptionConfig: {                    
            LanguageCode: 'en-US'        
        }    
    }
}
```

## 範例 2：部分文字記錄結果
<a name="example-2"></a>

在此範例中，一位出席者說：「快速的棕色狐狸跳過鬆散的狗。」 請注意，在此範例中，`isPartial`值為 `true`。如果您深入查看訊息，您可以看到系統將「fox」一詞處理為「facts」。系統會使用相同的 `resultId`來更新文字記錄。

```
{
    transcript: {
        results: [{
            resultId:"1",                               isPartial: true,
            startTimeMs: 1620118800000,                 endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,         endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",        externalUserId: "A"},
                    content: "the",                     vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:"facts",                     vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee:{ attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

## 範例 3：最終文字記錄結果
<a name="example-3"></a>

如果發生部分文字記錄，系統會再次處理該片語。此範例`isPartial`的值為 `false`，且訊息包含「fox」而非「facts」。系統會使用相同的 ID 重新發出訊息。

```
{
    transcript: {
        results: [{
            resultId:"1",                                isPartial: false,
            startTimeMs: 1620118800000,                  endTimeMs: 1620118801000,
            alternatives: [{
                items:[{
                    type:        'pronunciation',
                    startTimeMs: 1620118800000,          endTimeMs: 1620118800200,
                    attendee: { attendeeId: "1",         externalUserId: "A"},
                    content: "the",                      vocabularyFilterMatch: false
                },
                {
                    type:        'pronunciation',
                    startTimeMs: 1620118800200,          endTimeMs: 1620118800400,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"quick",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800400,          endTimeMs: 1620118800750,
                    attendee: { attendeeId: "1",         externalUserId: "A" },
                    content:"brown",                     vocabularyFilterMatch: false
                },
                {
                    type:'pronunciation',
                    startTimeMs: 1620118800750,          endTimeMs: 1620118801000,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:"fox",                       vocabularyFilterMatch: false
                },
                {
                    type:'punctuation',
                    startTimeMs: 1620118801000,          endTimeMs: 1620118801500,
                    attendee: { attendeeId: "1",          externalUserId: "A" },
                    content:    ",",                     vocabularyFilterMatch: false
                }]
            }]
        }]
    }
}
```

# 剖析 Amazon Chime SDK 文字記錄
<a name="parse-transcripts"></a>

使用下列命令從轉錄訊息剖析轉錄內容。命令會從 transcript-message.txt 檔案剖析完整的句子。

```
with open('transcript-message.txt') as f:
        for line in f:
            result_json = json.loads(line)["transcript"]["results"][0]
            if result_json['isPartial'] == False:
                print(result_json["alternatives"][0]["transcript"])
```