识别实时流中的演讲者 - Amazon Transcribe
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

识别实时流中的演讲者

您可以在HTTP/2或Websocket流中识别不同的扬声器。扬声器识别最适用于识别两个和五个扬声器。尽管 Amazon Transcribe 可以在流中识别五个以上的扬声器,如果超过该数字,则扬声器识别的准确性会降低。要启动HTTP/2流,请指定 ShowSpeakerLabel 请求参数 StartStreamTranscription 操作。要启动Websocket请求,请使用预签名的URL,即包含启动流所需的信息的URL。要使用控制台将语音转录到麦克风中,请使用以下过程。

您可以在实时流中识别美国英语(美国)的扬声器。

识别麦克风中听到的音频中的扬声器(控制台)

您可以使用 Amazon Transcribe 控制台,以启动实时流并转录麦克风拾取的任何语音。

  1. 登录 AWS 管理控制台并在此处打开 Amazon Transcribe 控制台:Amazon Transcribe 控制台

  2. 在导航窗格中,选择 Real-time transcription (实时转录)

  3. 语言中,选择实时流的语言。

  4. 低于 附加设置,启用 扬声器识别.

  5. 选择 开始流式传输.

  6. 与麦克风对话。

HTTP/2流

以下是HTTP/2请求的参数的语法。

POST /stream-transcription HTTP/2 x-amzn-transcribe-language-code: LanguageCode x-amzn-transcribe-sample-rate: MediaSampleRateHertz x-amzn-transcribe-media-encoding: MediaEncoding x-amzn-transcribe-session-id: SessionId x-amzn-transcribe-vocabulary-filter-name: VocabularyFilterName x-amzn-transcribe-vocabulary-filter-method: VocabularyFilterMethod x-amzn-transcribe-show-speaker-label: ShowSpeakerLabel Content-type: application/json { "AudioStream": { "AudioEvent": { "AudioChunk": blob } } }

要识别HTTP/2流中的扬声器,请使用 StartStreamTranscription 并指定以下内容:

  • 对于 LanguageCode,请指定与音频文件中所讲语言对应的语言代码。

  • 对于 MediaSampleHertz,请指定音频的采样率。

  • ShowSpeakerLabeltrue.

Websocket流式传输

要识别Websocket流中的扬声器,请使用以下格式创建预签名URL以启动Websocket请求并指定 show-speaker-labeltrue。预签名的URL包含用于在应用程序和 Amazon Transcribe.

GET wss://transcribestreaming.region.amazonaws.com:8443/stream-transcription-websocket ?language-code=languageCode &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=Signature Version 4 credential scope &X-Amz-Date=date &X-Amz-Expires=time in seconds until expiration &X-Amz-Security-Token=security-token &X-Amz-Signature=Signature Version 4 signature &X-Amz-SignedHeaders=host &media-encoding=mediaEncoding &sample-rate=mediaSampleRateHertz &session-id=sessionId &show-speaker-label=true

有关完成Websocket请求的更多信息,请参阅 创建预签名 URL.

串流转录输出

以下代码显示流请求的截断示例响应。

{ "Transcript": { "Results": [ { "Alternatives": [ { "Items": [ { "Confidence": 0.97, "Content": "From", "EndTime": 18.98, "Speaker": "0", "StartTime": 18.74, "Type": "pronunciation", "VocabularyFilterMatch": false }, { "Confidence": 1, "Content": "the", "EndTime": 19.31, "Speaker": "0", "StartTime": 19, "Type": "pronunciation", "VocabularyFilterMatch": false }, { "Confidence": 1, "Content": "last", "EndTime": 19.86, "Speaker": "0", "StartTime": 19.32, "Type": "pronunciation", "VocabularyFilterMatch": false }, ... { "Confidence": 1, "Content": "chronic", "EndTime": 22.55, "Speaker": "0", "StartTime": 21.97, "Type": "pronunciation", "VocabularyFilterMatch": false }, ... "Confidence": 1, "Content": "fatigue", "EndTime": 24.42, "Speaker": "0", "StartTime": 23.95, "Type": "pronunciation", "VocabularyFilterMatch": false }, { "EndTime": 25.22, "StartTime": 25.22, "Type": "speaker-change", "VocabularyFilterMatch": false }, { "Confidence": 0.99, "Content": "True", "EndTime": 25.63, "Speaker": "1", "StartTime": 25.22, "Type": "pronunciation", "VocabularyFilterMatch": false }, { "Content": ".", "EndTime": 25.63, "StartTime": 25.63, "Type": "punctuation", "VocabularyFilterMatch": false } ], "Transcript": "From the last note she still has mild sleep deprivation and chronic fatigue True." } ], "EndTime": 25.63, "IsPartial": false, "ResultId": "XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX", "StartTime": 18.74 } ] } }

Amazon Transcribe 根据自然语音段中断您的传入音频流,例如,扬声器的更改或音频中的暂停。转录将逐步返回到您的应用程序,每个响应包含更多转录的语音,直到整个片段被转录。上述代码是完全转录的语音段的截断示例。只为完全转录的片段显示扬声器标签。

以下列表显示了流转录输出中对象和参数的组织。

Transcript

每个语音段都有自己的 Transcript 对象。

Results

Transcript 对象有自己的 Results 对象。此对象包含 isPartial 字段。当它的价值是 false,返回的结果是针对整个语音段。

Alternatives

Results 对象具有 Alternatives 对象。

Items

Alternatives 对象有自己的 Items 包含有关转录输出中每个单词和标点符号的信息的对象。当您启用扬声器识别功能时,每个词语都有一个 Speaker 完全转录的语音段标签。 Amazon Transcribe 使用此标签为流中标识的每个扬声器分配唯一的整数。的 Type 具有值的参数 speaker-change 表示一个人已停止讲话,另一个人即将开始。

Transcript

Items 对象包含已转录的语音段作为 Transcript 字段。