本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用語音 APIs來執行 Amazon Chime SDK 的語音分析
為了回溯相容性,您可以使用 Amazon Chime SDK Voice APIs來啟動和管理語音分析。不過,只有用於語音分析的媒體洞察管道 APIs 提供新功能,因此我們強烈建議改用它們。
下列各節說明語音和媒體洞察管道 APIs 之間的差異。
停止任務
如果您使用語音連接器啟動語音分析任務,然後使用 UpdateMediaInsightsPipelineStatus API 暫停管道,任務會繼續執行。若要停止任務,您必須呼叫 StopSpeakerSearchTask和 StopVoiceToneAnalysisTask APIs。
了解通知差異
當您使用語音 APIs執行語音分析時,通知會與媒體洞見管道所產生的通知不同。
-
語音分析就緒事件僅適用於開始使用語音 APIs的任務。
-
您需要使用通知中的
voiceConnectorId
、transactionId
或callId
欄位,將語音分析任務與通話建立關聯。如果您使用媒體洞察管道來執行語音分析,您可以使用mediaInsightsPipelineId
和streamArn
或channelId
欄位來將任務與通話建立關聯。
下列主題說明如何搭配語音 APIs使用通知。
語音分析就緒事件
語音分析就緒事件具有VoiceAnalyticsStatus
詳細資訊類型。
您可以使用 Amazon Chime SDK Voice Connectors 來啟動分析任務。當您收到語音分析就緒事件時,您可以觸發通話的發言者搜尋或語音音調分析任務,由下列屬性識別:
-
voiceConnectorId
-
transactionId
注意
只有在啟用語音分析並與語音連接器建立關聯的媒體洞見管道組態時,才會提供此通知。當客戶呼叫 CreateMediaInsightsPipeline
API 並透過 Media Pipelines SDK 啟動發言者搜尋任務或音調分析任務時,不會提供此通知。
Voice Connector 傳回的 SIP 標頭包含 transactionId
。如果您無法存取 SIP 標頭,AnalyticsReady
通知事件也會包含 voiceConnectorId
和 transactionId
。這可讓您以程式設計方式接收資訊,並呼叫 StartSpeakerSearchTask、 或 StartVoiceToneAnalysisTask APIs。
當語音分析準備好進行處理時,語音連接器會將事件"detailStatus": "AnalyticsReady"
以 JSON 內文形式傳送至通知目標。如果您使用 Amazon SNS 或 Amazon SQS,則該內文會出現在 Amazon SNS 或 Amazon SQS 承載的「記錄」欄位中。
下列範例顯示典型的 JSON 內文。
{ "detail-type": "VoiceAnalyticsStatus", "version": "0", "id": "
Id-f928dfe3-f44b-4965-8a17-612f9fb92d59
", "source": "aws.chime", "account": "123456789012
", "time": "2022-08-26T17:55:15.563441Z
", "region": "us-east-1", "resources": [], "detail": { "detailStatus": "AnalyticsReady", "callDetails": { "isCaller":false
, "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436
", "voiceConnectorId": "fuiopl1fsv9caobmqf2vy7
" } } }
此通知可讓您在呼叫語音分析任務 APIs 之前,觸發應用程式的其他回呼,並處理任何法律要求,例如通知和同意。
發言者搜尋事件
發言者搜尋事件具有SpeakerSearchStatus
詳細資訊類型。
Amazon Chime SDK Voice Connectors 會傳送下列發言者搜尋事件:
-
識別相符項目
-
語音內嵌產生
事件可以具有下列狀態:
-
IdentificationSuccessful
– 成功識別至少有一個相符的語音設定檔 ID,在指定的語音設定檔網域中具有高可信度分數。 -
IdentificationFailure
– 無法執行識別。原因:來電者至少 10 秒沒有說話,音訊品質不佳。 -
IdentificationNoMatchesFound
– 在指定的語音設定檔網域中找不到高度可信相符項目。發起人可能是新的,或其語音可能已變更。 -
VoiceprintGenerationSuccessful
– 系統使用 20 秒的非靜音音訊產生語音內嵌。 -
VoiceprintGenerationFailure
– 系統無法產生語音內嵌。原因:來電者至少 20 秒沒有說話,音訊品質不佳。
識別相符項目
在呼叫給定 的 StartSpeakerSearchTask API 之後transactionId
,語音連接器服務會在 10 秒的非無提示語音後傳回身分比對通知。服務會傳回前 10 個相符項目,以及 【0, 1】 範圍內的語音設定檔 ID 和可信度分數。可信度分數越高,通話的發言者與語音設定檔 ID 相符的可能性就越高。如果機器學習模型找不到相符項目,通知detailStatus
的欄位會包含 IdentificationNoMatchesFound
。
下列範例顯示成功配對的通知。
{ "version": "0", "id": "
12345678-1234-1234-1234-111122223333
", "detail-type": "SpeakerSearchStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "111122223333
", "time": "yyyy-mm-ddThh:mm:ssZ
", "region": "us-east-1
", "resources": [], "detail": { "taskId": "uuid
", "detailStatus": "IdentificationSuccessful
", "speakerSearchDetails" : { "results": [ { "voiceProfileId": "vp-505e0992-82da-49eb-9d4a-4b34772b96b6
", "confidenceScore": "0.94567856
", }, { "voiceProfileId": "vp-fba9cbfa-4b8d-4f10-9e41-9dfdd66545ab
", "confidenceScore": "0.82783350
", }, { "voiceProfileId": "vp-746995fd-16dc-45b9-8965-89569d1cf787
", "confidenceScore": "0.77136436
", } ] }, "isCaller": false, "voiceConnectorId": "abcdef1ghij2klmno3pqr4
", "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436
" } }
語音內嵌產生
經過額外的 10 秒的非無聲語音後,語音連接器會傳送語音內嵌產生通知至通知目標。您可以在語音設定檔中註冊新的語音內嵌,或更新已在語音設定檔中的列印。
下列範例顯示成功配對的通知,這表示您可以更新相關聯的語音設定檔。
{ "version": "0", "id": "
12345678-1234-1234-1234-111122223333
", "detail-type": "SpeakerSearchStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "111122223333
", "time": "yyyy-mm-ddThh:mm:ssZ
", "region": "us-east-1
", "resources": [], "detail": { "taskId": "guid
", "detailStatus": "VoiceprintGenerationSuccess
", "isCaller":false
, "transactionId": "12345678-1234-1234
", "voiceConnectorId": "abcdef1ghij2klmno3pqr
" } }
音調分析事件
語音音調分析事件具有VoiceToneAnalysisStatus
詳細資訊類型。分析可以傳回這些狀態:
-
VoiceToneAnalysisSuccessful
– 成功分析發起人和客服人員的語音,使其成為情緒的機率:正面、負面或中性。 -
VoiceToneAnalysisFailure
– 無法執行音調分析。如果來電者未通話就掛斷 10 秒,或音訊品質變得太差,就可能發生這種情況。 -
VoiceToneAnalysisCompleted
– 成功分析使用者和客服人員的語音,使其成為整個通話情緒的可能性。這是語音音調分析完成時傳送的最終事件。
下列範例顯示典型的音調分析事件。
{ "detail-type": "VoiceToneAnalysisStatus", "service-type": "VoiceAnalytics", "source": "aws.chime", "account": "
216539279014
", "time": "2022-08-26T17:55:15.563441Z
", "region": "us-east-1
", "detail": { "taskId": "uuid
", "detailStatus": "VoiceToneAnalysisSuccessful
", "voiceToneAnalysisDetails": { "currentAverageVoiceTone": { "startTime": "2022-08-26T17:55:15.563Z
", "endTime": "2022-08-26T17:55:45.720Z
", "voiceToneLabel": "neutral
", "voiceToneScore": { "neutral": "0.83
", "positive": "0.13
", "negative": "0.04
" } }, "overallAverageVoiceTone": { "startTime": "2022-08-26T16:23:13.344Z
", "endTime": "2022-08-26T17:55:45.720Z
", "voiceToneLabel": "positive
", "voiceToneScore": { "neutral": "0.25
", "positive": "0.65
", "negative": "0.1
" } } }, "isCaller": true, "transactionId": "daaeb6bf-2fe2-4e51-984e-d0fbf2f09436
", "voiceConnectorId": "fuiopl1fsv9caobmqf2vy7
" }, "version": "0", "id": "Id-f928dfe3-f44b-4965-8a17-612f9fb92d59
" }