本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用語音APIs執行語音分析
為了回溯相容性,您可以使用 Amazon Chime SDK Voice APIs 來啟動和管理語音分析。不過,只有語音分析APIs的媒體洞察管道提供新功能,因此我們強烈建議改用它們。
下列各節說明語音和媒體洞察管道 之間的差異APIs。
停止任務
如果您使用 Voice Connector 啟動語音分析任務,然後使用 UpdateMediaInsightsPipelineStatus API 若要暫停管道,任務會繼續執行。若要停止任務,您必須呼叫 StopSpeakerSearchTask 和 StopVoiceToneAnalysisTask APIs.
了解通知差異
當您使用語音APIs執行語音分析時,通知會與媒體洞察管道產生的通知不同。
語音分析就緒事件僅適用於開始使用語音 的任務APIs。
您需要使用通知中的
voiceConnectorId
、transactionId
或callId
欄位,將語音分析任務與通話建立關聯。如果您使用媒體洞察管道來執行語音分析,您可以使用mediaInsightsPipelineId
和streamArn
或channelId
欄位來將任務與通話建立關聯。
下列主題說明如何搭配語音 使用通知APIs。
語音分析就緒事件
語音分析就緒事件具有VoiceAnalyticsStatus
詳細資訊類型。
您可以使用 Amazon Chime SDK Voice Connectors 來啟動分析任務。當您接收語音分析就緒事件時,您可以觸發通話的發言者搜尋或語音音調分析任務,其由下列屬性識別:
voiceConnectorId
transactionId
注意
只有在啟用語音分析並與 Voice Connector 建立關聯的媒體洞察管道組態時,才會提供此通知。當客戶透過媒體管道 呼叫 CreateMediaInsightsPipeline
API並啟動發言者搜尋任務或聲調分析任務時,就會NOT提供此通知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,該 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
" }