轉錄多聲道音訊 - Amazon Transcribe

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

轉錄多聲道音訊

如果您有具有多個頻道的音訊檔案或串流,您可以使用頻道識別來轉錄每個頻道的語音。 Amazon Transcribe醫療單獨從每個通道轉錄語音。它將每個通道的單獨轉錄組合到單個轉錄輸出中。

使用頻道識別來識別音訊中不同的頻道,並從每個頻道轉錄語音。在呼叫者和代理程式案例等情況下啟用此功能。使用此功能可將來電者與執行藥物安全監控的聯絡中心的錄音或串流中的代理區分開來電者。

您可以為批次處理和即時串流啟用通道識別。下列清單說明如何針對每個方法啟用此功能。

轉錄多聲道音訊檔案

當您轉錄音訊檔案時,「Amazon Transcribe醫療」會傳回每個頻道的項目清單。項目是轉錄的單字或標點符號。每個單詞都有開始時間和結束時間。如果某個頻道上的使用者透過不同頻道上的某個人說話,則每個頻道項目的開始時間和結束時間會重疊,而個人彼此交談時間也會重疊。

默認情況下,您可以轉錄具有兩個通道的音頻文件。如果您需要轉錄具有兩個以上通道的檔案,可以要求提高配額。如需要請求增加配額的相關資訊,請參閱AWS 服務配額

若要在批次轉錄工作中轉錄多聲道音訊,請使用AWS Management Console或 StartMedicalTranscriptionJobAPI。

若要在批次轉錄工作中使用啟用頻道識別,請先啟用音訊識別,然後啟用頻道識別。AWS Management Console頻道識別是中音訊識別的子集AWS Management Console。

  1. 登入 AWS Management Console

  2. 在導覽窗格中的Amazon Transcribe醫療下,選擇轉錄工作

  3. 選擇 Create job (建立任務)。

  4. 在 [指定工作詳細資料] 頁面上,提供轉錄工作的相關資訊。

  5. 選擇 下一步

  6. 啟用音訊識別

  7. 對於音訊識別類型,請選擇「頻道識別」。

  8. 選擇 建立

轉錄多聲道音訊檔案 (API)
  • 對於 StartMedicalTranscriptionJobAPI,請指定以下內容。

    1. 對於TranscriptionJobName,指定您的專屬名稱AWS 帳戶。

    2. 對於LanguageCode,指定與音訊檔案中所說語言相對應的語言代碼。有效值為 en-US

    3. Media對物件的MediaFileUri參數,指定您要轉錄之媒體檔案的名稱。

    4. 對於Settings物件,ChannelIdentification將設定為true

以下是使用的範例要求AWS SDK for Python (Boto3)。

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', 'us-west-2') job_name = "my-first-transcription-job" job_name = "my-first-med-transcription-job" job_uri = "s3://DOC-EXAMPLE-BUCKET/my-input-files/my-media-file.flac" transcribe.start_medical_transcription_job( MedicalTranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'DOC-EXAMPLE-BUCKET', OutputKey = 'output-files/', LanguageCode = 'en-US', Specialty = 'PRIMARYCARE', Type = 'CONVERSATION', Settings = { 'ChannelIdentification': True } ) while True: status = transcribe.get_transcription_job(MedicalTranscriptionJobName = job_name) if status['MedicalTranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)
使用批次轉錄工作轉錄多聲道音訊檔案 (AWS CLI)
  • 執行下列程式碼。

    aws transcribe start-medical-transcription-job \ --region us-west-2 \ --cli-input-json file://example-start-command.json

    以下是的程式碼example-start-command.json

    { "MedicalTranscriptionJobName": "my-first-med-transcription-job", "Media": { "MediaFileUri": "s3://DOC-EXAMPLE-BUCKET/my-input-files/my-audio-file.flac" }, "OutputBucketName": "DOC-EXAMPLE-BUCKET", "OutputKey": "my-output-files/", "LanguageCode": "en-US", "Specialty": "PRIMARYCARE", "Type": "CONVERSATION", "Settings":{ "ChannelIdentification": true } }

下列程式碼會顯示在兩個通道上具有交談的音訊檔案的轉錄輸出。

{ "jobName": "job id", "accountId": "111122223333", "results": { "transcripts": [ { "transcript": "When you try ... It seems to ..." } ], "channel_labels": { "channels": [ { "channel_label": "ch_0", "items": [ { "start_time": "12.282", "end_time": "12.592", "alternatives": [ { "confidence": "1.0000", "content": "When" } ], "type": "pronunciation" }, { "start_time": "12.592", "end_time": "12.692", "alternatives": [ { "confidence": "0.8787", "content": "you" } ], "type": "pronunciation" }, { "start_time": "12.702", "end_time": "13.252", "alternatives": [ { "confidence": "0.8318", "content": "try" } ], "type": "pronunciation" }, ... ] }, { "channel_label": "ch_1", "items": [ { "start_time": "12.379", "end_time": "12.589", "alternatives": [ { "confidence": "0.5645", "content": "It" } ], "type": "pronunciation" }, { "start_time": "12.599", "end_time": "12.659", "alternatives": [ { "confidence": "0.2907", "content": "seems" } ], "type": "pronunciation" }, { "start_time": "12.669", "end_time": "13.029", "alternatives": [ { "confidence": "0.2497", "content": "to" } ], "type": "pronunciation" }, ... ] } }

轉錄多聲道音訊串流

您可以使用 StartMedicalStreamTranscriptionAPI 從 HTTP/2 或 WebSocket串流中的不同頻道轉錄音訊。

默認情況下,您可以使用兩個通道轉錄流。如果您需要轉錄具有兩個以上通道的串流,可以要求提高配額。如需請求增加配額的相關資訊,請參閱AWS服務配額

在 HTTP/2 串流中轉錄多聲道音訊

若要轉錄 HTTP/2 串流中的多聲道音訊,請使用 StartMedicalStreamTranscriptionAPI 並指定下列項目:

  • LanguageCode— 音訊的語言代碼。有效值為 en-US

  • MediaEncoding— 音訊的編碼。有效值為 ogg-opusflacpcm

  • EnableChannelIdentificationtrue

  • NumberOfChannels— 您的串流音訊中頻道的數量。

如需設定 HTTP/2 串流以轉錄醫療對話的詳細資訊,請參閱設定 HTTP/2 串流

轉錄 WebSocket 串流中的多聲道音訊

若要分割 WebSocket 串流中的喇叭,請使用下列格式建立預先簽署的 URI 並啟動 WebSocket 要求。指定enable-channel-identificationtrue和您串流中的頻道數量number-of-channels。預先簽署的 URI 包含在您的應用程式和Amazon Transcribe醫療之間建立雙向通訊時所需的資訊。

GET wss://transcribestreaming.us-west-2.amazonaws.com:8443/medical-stream-transcription-websocket ?language-code=languageCode &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20220208%2Fus-west-2%2Ftranscribe%2Faws4_request &X-Amz-Date=20220208T235959Z &X-Amz-Expires=300 &X-Amz-Security-Token=security-token &X-Amz-Signature=Signature Version 4 signature &X-Amz-SignedHeaders=host &media-encoding=flac &sample-rate=16000 &session-id=sessionId &enable-channel-identification=true &number-of-channels=2

您可以在 API 參考中找到參數定義;所有AWS API 作業的共用參數會列在「一般參數」區段中。

如需有關 WebSocket 請求的詳細資訊,請參閱設定 WebSocket 串流

多頻道串流輸出

HTTP/2 和 WebSocket請求的流轉錄的輸出是相同的。以下為範例輸出。

{ "resultId": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX", "startTime": 0.11, "endTime": 0.66, "isPartial": false, "alternatives": [ { "transcript": "Left.", "items": [ { "startTime": 0.11, "endTime": 0.45, "type": "pronunciation", "content": "Left", "vocabularyFilterMatch": false }, { "startTime": 0.45, "endTime": 0.45, "type": "punctuation", "content": ".", "vocabularyFilterMatch": false } ] } ], "channelId": "ch_0" }

對於每個語音區段,都有一個channelId標誌,指出該語音所屬的通道。