Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemroses analisis panggilan dan tujuan keluaran untuk Amazon Chime SDK
Anda hanya dapat menentukan elemen unik sekali per konfigurasi pipeline wawasan media. Semua prosesor dan sink harus berada di AWS akun yang sama, dan Anda harus membuatnya di Wilayah yang sama AWS dengan titik akhir yang Anda panggil. Misalnya, jika Anda menggunakan us-east-1 titik akhir untuk Amazon Chime SDK Media Pipelines, Anda tidak dapat meneruskan Aliran Data Kinesis dari wilayah tersebutus-west-2.
Perluas setiap bagian untuk informasi tentang setiap tujuan.
Wastafel yang didukung:KinesisDataStreamSink.
Anda tidak dapat menggabungkan prosesor ini dengan prosesor Amazon Transcribe. Untuk informasi selengkapnya tentang Amazon Transcribe Call Analytics, lihat analisis Real-time panggilan, di Panduan Pengembang Amazon Transcribe. Jika Anda mengaktifkan analisis Pasca panggilan dengan menyer PostCallAnalyticsSettings takan dalam panggilan AmazonTranscribeCallAnalyticsProcessorConfiguration API, Anda akan menerima artefak di lokasi Amazon S3 yang ditentukan saat pipeline wawasan media berhenti dan pemrosesan selesai.
catatan
Jika Anda menjeda pipeline selama lebih dari 35 detik dan kemudian melanjutkannya, artefak pasca-panggilan dihasilkan dalam file terpisah dengan ID sesi berbeda di bucket Amazon S3.
Post-call artefak termasuk file JSON analitik dan rekaman audio WAV atau file Opus. URL bucket Amazon S3 untuk file rekaman yang disunting (jika Anda mengaktifkan penyuntingan konten) dan file rekaman yang tidak disunting dikirim ke Aliran Data Kinesis sekali untuk setiap sesi Pasca Panggilan analitik Amazon Transkribe sebagai bagian dari bagian metadata. onetimeMetadata
Analisis panggilan dengan Amazon Transcribe call analytics mengambil input data audio dari Kinesis Video Stream.
-
Pengkodean media yang didukung: PCM menandatangani audio little-endian 16-bit.
-
Kecepatan sampel media yang didukung: Antara 8.000 Hz dan 48.000 Hz.
StreamConfigurationmasukan untuk proses Amazon Transcribe Analytics:
-
Anda harus menentukan
KinesisVideoStreamArnuntuk setiap aliran. -
(Opsional) KVS
FragmentNumbermemulai pekerjaan analisis panggilan dengan potongan setelah fragmen tertentu. Jika tidak disediakan, ia menggunakan potongan terbaru pada aliran video Kinesis. -
Itu men
StreamChannelDefinitiondefinisikan siapa yang berbicara. Analisis panggilan Amazon Transcribe memerlukan audio dua saluran. Anda harus menentukan speaker mana yang berada di saluran mana saat Anda memanggil CreateMediaInsightsPipeline API. Misalnya, jika agen Anda berbicara lebih dulu, Anda mengatur0toChannelIduntuk menunjukkan saluran pertama, danParticipantRoleAGENTuntuk menunjukkan bahwa agen berbicara.
catatan
Saat Anda menggunakan Konektor Suara untuk membuat MediaInsightsPipeline prosesor analisis panggilan Amazon Transcribe, audio kaki akun Konektor Suara adalah AGENT dan audio kaki PSTN adalah CUSTOMER untuk. ParticipantRole
Untuk Konektor Suara SIPREC, kami mengandalkan metadata SIPREC. Dalam kebanyakan kasus, label aliran dengan nilai leksikografi terendah dianggap sebagai. AGENT
Contoh berikut menunjukkan input Stream Video Kinesis untuk satu aliran audio saluran ganda.
"StreamChannelDefinition" : { "NumberOfChannels" : 2 "ChannelDefinitions": [ { "ChannelId": 0, "ParticipantRole": "AGENT" }, { "ChannelId": 1, "ParticipantRole": "CUSTOMER" } ] }
Sebaliknya, contoh berikut menunjukkan dua input mono dari dua aliran Video Kinesis yang berbeda.
KVS-1: "StreamChannelDefinition" : { "NumberOfChannels" : 1 "ChannelDefinitions": [ { "ChannelId": 0, "ParticipantRole": "AGENT" } ] } KVS-2: "StreamChannelDefinition" : { "NumberOfChannels" : 1 "ChannelDefinitions": [ { "ChannelId": 1, "ParticipantRole": "CUSTOMER" } ] }
Setiap catatan Amazon Transcribe berisi satu UtteranceEvent atau aCategoryEvent, tetapi tidak keduanya. CategoryEventsmemiliki satu detail-type dariTranscribeCallAnalyticsCategoryEvent.
Contoh berikut menunjukkan format output metadata satu kali untuk Amazon Transcribe.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "CallAnalyticsMetadata", "mediaInsightsPipelineId": "string", "metadata": "string" // JSON encoded string of the metadata object } // metadata object { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string", "oneTimeMetadata": "string" // JSON encoded string of oneTimeMetadata object } // onetimeMetadata object { "inviteHeaders": "string", // JSON encoded string of SIP Invite headers key-value pair "siprecMetadata": "string", // siprec metadata in XML "siprecMetadataJson": "string", // siprec metadata in JSON (converted from above XML) // If PostcallSettings are enabled for Amazon Transcribe Call Analytics "s3RecordingUrl": "string", "s3RecordingUrlRedacted": "string" } // inviteHeaders object { "string": "string" }
Contoh berikut menunjukkan format output Amazon Transcribe Call Analytics.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "TranscribeCallAnalytics", "mediaInsightsPipelineId": "string", "metadata": { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string" }, "UtteranceEvent": { "UtteranceId": "string", "ParticipantRole": "string", "IsPartial":boolean, "BeginOffsetMillis":number, "EndOffsetMillis":number, "Transcript": "string", "Sentiment": "string", "Items": [{ "Content": "string", "Confidence":number, "VocabularyFilterMatch":boolean, "Stable":boolean, "ItemType": "string", "BeginOffsetMillis":number, "EndOffsetMillis":number, }, ] "Entities": [{ "Content": "string", "Confidence":number, "Category": "string", // Only PII is supported currently "Type": "string", "BeginOffset":number, "EndOffset":number, }, ], "IssuesDetected": [{ "CharacterOffsets": { "Begin":number, "End":number} }] }, "CategoryEvent": { "MatchedCategories": ["string"], "MatchedDetails": { "string": { "TimestampRanges": [{ "BeginOffsetMillis":number, "EndOffsetMillis":number}] } } } }
Jika konfigurasi analisis panggilan dikaitkan dengan Konektor Suara Amazon Chime SDK, payload Pembaruan Konektor Suara berikut akan dikirim saat ada pembaruan streaming Konektor Suara.
Contoh berikut menunjukkan format metadata pembaruan untuk prosesor Amazon Transcribe dan prosesor Transcribe Call Analytics.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "CallAnalyticsMetadata", "callevent-type": "Update", "metadata": "string" // JSON encoded string of the metadata object } // metadata object { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string", "oneTimeMetadata": "string" // JSON encoded string of oneTimeMetadata object } // onetimeMetadata object { "sipHeaders": "string", // JSON encoded string of SIP Invite headers key-value pair "siprecMetadata": "string", // siprec metadata in XML "siprecMetadataJson": "string" // siprec metadata in JSON (converted from above XML) } // sipHeaders object { "string": "string" }
Contoh berikut menunjukkan format metadata pembaruan untuk Call Analytics Amazon S3 Recording.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "Recording", "callevent-type": "Update", "metadata": "string" // JSON encoded string of the metadata object } // metadata object { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string", "oneTimeMetadata": "string" // JSON encoded in string of oneTimeMetadata object } // onetimeMetadata object { "sipHeaders": "string", // JSON encoded string of SIP Invite headers key-value pair "siprecMetadata": "string", // siprec metadata in XML "siprecMetadataJson": "string" // siprec metadata in JSON (converted from above XML) } // sipHeaders object { "string": "string" }
Contoh berikut menunjukkan metadata untuk merekam panggilan SIP antara dua orang, Alice dan Bob. Kedua peserta mengirim dan menerima audio dan video. Untuk kesederhanaan, contoh hanya memiliki cuplikan SIP dan SDP, dan SRC merekam aliran setiap peserta ke SRS tanpa pencampuran.
INVITE sip:recorder@example.com SIP/2.0 Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9 From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247 To: <sip:recorder@example.com> Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a Session-ID: ab30317f1a784dc48ff824d0d3715d86 ;remote=00000000000000000000000000000000 CSeq: 101 INVITE Max-Forwards: 70 Require: siprec Accept: application/sdp, application/rs-metadata, application/rs-metadata-request Contact: <sip:2000@src.example.com>;+sip.src Content-Type: multipart/mixed;boundary=boundaryContent-Length: [length] Content-Type: application/SDP ... m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:96 a=sendonly ... m=video 49174 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:97 a=sendonly ... m=audio 51372 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:98 a=sendonly ... m=video 49176 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:99 a=sendonly .... Content-Type: application/rs-metadata Content-Disposition: recording-session <?xml version="1.0" encoding="UTF-8"?> <recording xmlns='urn:ietf:params:xml:ns:recording:1'> <datamode>complete</datamode> <group group_id="7+OTCyoxTmqmqyA/1weDAg=="> <associate-time>2010-12-16T23:41:07Z</associate-time> <!-- Standardized extension --> <call-center xmlns='urn:ietf:params:xml:ns:callcenter'> <supervisor>sip:alice@atlanta.com</supervisor> </call-center> <mydata xmlns='http://example.com/my'> <structure>structure!</structure> <whatever>structure</whatever> </mydata> </group> <session session_id="hVpd7YQgRW2nD22h7q60JQ=="> <sipSessionID>ab30317f1a784dc48ff824d0d3715d86; remote=47755a9de7794ba387653f2099600ef2</sipSessionID> <group-ref>7+OTCyoxTmqmqyA/1weDAg== </group-ref> <!-- Standardized extension --> <mydata xmlns='http://example.com/my'> <structure>FOO!</structure> <whatever>bar</whatever> </mydata> </session> <participant participant_id="srfBElmCRp2QB23b7Mpk0w=="> <nameID aor="sip:alice@atlanta.com"> <naSRCme xml:lang="it">Alice</name> </nameID> <!-- Standardized extension --> <mydata xmlns='http://example.com/my'> <structure>FOO!</structure> <whatever>bar</whatever> </mydata> </participant> <participant participant_id="zSfPoSvdSDCmU3A3TRDxAw=="> <nameID aor="sip:bob@biloxy.com"> <name xml:lang="it">Bob</name> </nameID> <!-- Standardized extension --> <mydata xmlns='http://example.com/my'> <structure>FOO!</structure> <whatever>bar</whatever> </mydata> </participant> <stream stream_id="UAAMm5GRQKSCMVvLyl4rFw==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <label>96</label> </stream> <stream stream_id="i1Pz3to5hGk8fuXl+PbwCw==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <label>97</label> </stream> <stream stream_id="8zc6e0lYTlWIINA6GR+3ag==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <label>98</label> </stream> <stream stream_id="EiXGlc+4TruqqoDaNE76ag==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <label>99</label> </stream> <sessionrecordingassoc session_id="hVpd7YQgRW2nD22h7q60JQ=="> <associate-time>2010-12-16T23:41:07Z</associate-time> </sessionrecordingassoc> <participantsessionassoc participant_id="srfBElmCRp2QB23b7Mpk0w==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <associate-time>2010-12-16T23:41:07Z</associate-time> </participantsessionassoc> <participantsessionassoc participant_id="zSfPoSvdSDCmU3A3TRDxAw==" session_id="hVpd7YQgRW2nD22h7q60JQ=="> <associate-time>2010-12-16T23:41:07Z</associate-time> </participantsessionassoc> <participantstreamassoc participant_id="srfBElmCRp2QB23b7Mpk0w=="> <send>i1Pz3to5hGk8fuXl+PbwCw==</send> <send>UAAMm5GRQKSCMVvLyl4rFw==</send> <recv>8zc6e0lYTlWIINA6GR+3ag==</recv> <recv>EiXGlc+4TruqqoDaNE76ag==</recv> </participantstreamassoc> <participantstreamassoc participant_id="zSfPoSvdSDCmU3A3TRDxAw=="> <send>8zc6e0lYTlWIINA6GR+3ag==</send> <send>EiXGlc+4TruqqoDaNE76ag==</send> <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv> <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv> </participantstreamassoc> </recording>
Contoh berikut menunjukkan metadata yang diperbarui ketika satu peserta panggilan menunda yang lain. Dalam hal ini, participant_id
srfBElmCRp2QB23b7Mpk0w== hanya menerima aliran media dan tidak mengirim media apa pun, sehingga elemen send XML dihilangkan. Sebaliknya, participant_id zSfPoSvdSDCmU3A3TRDxAw== mengirim media ke, tetapi tidak menerima media dari, peserta lain, sehingga elemen recv XML dihilangkan.
INVITE sip:recorder@example.com SIP/2.0 Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9 From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247 To: <sip:recorder@example.com> Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a Session-ID: ab30317f1a784dc48ff824d0d3715d86 ;remote=f81d4fae7dec11d0a76500a0c91e6bf6 CSeq: 101 INVITE Max-Forwards: 70 Require: siprec Accept: application/sdp, application/rs-metadata, application/rs-metadata-request Contact: <sip:2000@src.example.com>;+sip.src Content-Type: multipart/mixed;boundary=foobar Content-Length: [length] Content-Type: application/SDP ... m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:96 a=sendonly ... m=video 49174 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:97 a=sendonly ... m=audio 51372 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:98 a=sendonly ... m=video 49176 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:99 a=sendonly .... Content-Type: application/rs-metadata Content-Disposition: recording-session <?xml version="1.0" encoding="UTF-8"?> <recording xmlns='urn:ietf:params:xml:ns:recording:1'> <datamode>partial</datamode> <participantstreamassoc participant_id="srfBElmCRp2QB23b7Mpk0w=="> <recv>8zc6e0lYTlWIINA6GR+3ag==</recv> <recv>EiXGlc+4TruqqoDaNE76ag==</recv> </participantstreamassoc> <participantstreamassoc participant_id="zSfPoSvdSDCmU3A3TRDxAw=="> <send>8zc6e0lYTlWIINA6GR+3ag==</send> <send>EiXGlc+4TruqqoDaNE76ag==</send> </participantstreamassoc> </recording>
Contoh berikut menunjukkan pembaruan metadata saat panggilan dilanjutkan. Payload sekarang memiliki elemen send dan recv XML.
INVITE sip:recorder@example.com SIP/2.0 Via: SIP/2.0/TCP src.example.com;branch=z9hG4bKdf6b622b648d9 From: <sip:2000@example.com>;tag=35e195d2-947d-4585-946f-09839247 To: <sip:recorder@example.com> Call-ID: d253c800-b0d1ea39-4a7dd-3f0e20a Session-ID: ab30317f1a784dc48ff824d0d3715d86 ;remote=f81d4fae7dec11d0a76500a0c91e6bf6 CSeq: 101 INVITE Max-Forwards: 70 Require: siprec Accept: application/sdp, application/rs-metadata, application/rs-metadata-request Contact: <sip:2000@src.example.com>;+sip.src Content-Type: multipart/mixed;boundary=foobar Content-Length: [length] Content-Type: application/SDP ... m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:96 a=sendonly ... m=video 49174 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:97 a=sendonly ... m=audio 51372 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=label:98 a=sendonly ... m=video 49176 RTP/AVPF 96 a=rtpmap:96 H.264/90000 a=label:99 a=sendonly .... Content-Type: application/rs-metadata Content-Disposition: recording-session <?xml version="1.0" encoding="UTF-8"?> <recording xmlns='urn:ietf:params:xml:ns:recording:1'> <datamode>partial</datamode> <participantstreamassoc participant_id="srfBElmCRp2QB23b7Mpk0w=="> <send>i1Pz3to5hGk8fuXl+PbwCw==</send> <send>UAAMm5GRQKSCMVvLyl4rFw==</send> <recv>8zc6e0lYTlWIINA6GR+3ag==</recv> <recv>EiXGlc+4TruqqoDaNE76ag==</recv> </participantstreamassoc> <participantstreamassoc participant_id="zSfPoSvdSDCmU3A3TRDxAw=="> <send>8zc6e0lYTlWIINA6GR+3ag==</send> <send>EiXGlc+4TruqqoDaNE76ag==</send> <recv>i1Pz3to5hGk8fuXl+PbwCw==</recv> <recv>UAAMm5GRQKSCMVvLyl4rFw==</recv> </participantstreamassoc> </recording>
Wastafel yang didukung:KinesisDataStreamSink.
Anda tidak dapat menggabungkan prosesor ini dengan analisis panggilan Amazon Transcribe. Untuk informasi selengkapnya tentang input ke, dan output dari, Amazon Transcribe, lihat Trans cribe streaming audio di Panduan Pengembang Transkrip Amazon.
Sesi analisis panggilan dengan Amazon Transcribe mengambil input data audio dari Kinesis Video Stream.
-
Didukung MediaEncoding: PCM menandatangani audio little-endian 16-bit.
-
Tingkat MediaSampleRate sampel yang didukung: Antara 8.000 Hz dan 48.000 Hz.
StreamConfigurationmasukan untuk prosesor Amazon Transcribe:
-
Anda harus menentukan
KinesisVideoStreamArnuntuk setiap aliran. -
(Opsional) KVS
FragmentNumber- Memulai pekerjaan analisis panggilan dengan potongan setelah fragmen tertentu. Jika tidak disediakan, itu akan menggunakan potongan terbaru yang tersedia di Kinesis Video Stream. -
StreamChannelDefinitionAmazon Transcribe saat ini mendukung audio dengan dua saluran. Anda harus menentukanNumberOfChannelsdalam runtimeStreamChannelDefinition. Selain itu, Anda harus melewatiChannelIdjika Anda mengirim audio mono dalam dua saluran terpisah. Dalam transkrip Anda, saluran diberi labelch_0danch_1. Contoh berikut menunjukkan input KVS untuk satu aliran saluran audio mono.
"StreamChannelDefinition" : {" NumberOfChannels" : 1 }
Contoh berikut menunjukkan input KVS untuk dua input audio mono dalam dua aliran yang berbeda.
KVS-1: "StreamChannelDefinition" : { "NumberOfChannels" : 1 "ChannelDefinitions": [ { "ChannelId": 0 } ] } KVS-2: "StreamChannelDefinition" : { "NumberOfChannels" : 1 "ChannelDefinitions": [ { "ChannelId": 1 } ] }
catatan
Untuk Konektor Suara yang dibuat MediaInsightsPipeline dengan prosesor Amazon Transcribe, audio kaki akun Voice Connector ditetapkan ke channel-0 dan audio kaki PSTN ditetapkan ke. channel-1
Untuk Konektor Suara SIPREC, kami mengandalkan metadata SIPREC. Dalam kebanyakan kasus, label aliran dengan nilai leksikografi terendah ditetapkan ke. channel-0
Untuk prosesor analisis panggilan Amazon Transcribe dan Amazon Transcribe, jika Anda melewati dua aliran Video Kinesis, dan setiap aliran berisi saluran audio mono, kami menyisipkan kedua saluran ke satu aliran audio sebelum memproses data analisis panggilan Transcribe atau Transkribe.
Contoh berikut menunjukkan format output metadata satu kali untuk Amazon Transcribe.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "CallAnalyticsMetadata", "mediaInsightsPipelineId": "string", "metadata": "string" // JSON encoded string of the metadata object } // metadata object { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string", "oneTimeMetadata": "string" // JSON encoded string of oneTimeMetadata object } // onetimeMetadata object { "inviteHeaders": "string", // JSON encoded string of SIP Invite headers key-value pair "siprecMetadata": "string", // siprec metadata in XML "siprecMetadataJson": "string" // siprec metadata in JSON (converted from above XML) } // inviteHeaders object { "string": "string" }
Contoh berikut menunjukkan format output Amazon Transcribe.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "Transcribe", "mediaInsightsPipelineId": "string", "metadata": { "voiceconnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string" } "TranscriptEvent": { "Transcript": { "Results": [{ "Alternatives": [{ "Entities": [{ "Category": "string", "Confidence":number, "Content": "string", "EndTime":number, "StartTime":number, "Type": "string" }], "Items": [{ "Confidence":number, "Content": "string", "EndTime":number, "Speaker": "string", "Stable":boolean, "StartTime":number, "Type": "string", "VocabularyFilterMatch":boolean}], "Transcript": "string" }], "ChannelId": "string", "EndTime":number, "IsPartial":boolean, "LanguageCode": "string", "LanguageIdentification": [{ "LanguageCode": "string", "Score":number}], "ResultId": "string", "StartTime":number}] } } }
Wastafel yang didukung: KinesisDataStreamSinkSqsQueueSink,SnsTopicSink,, danLambdaFunctionSink.
Anda dapat menggabungkan prosesor ini dengan prosesor analisis panggilan Amazon Transcribe, prosesor Amazon Transcribe, atau perekaman panggilan. Anda harus menggunakan StartVoiceToneAnalysisTask API StartSpeakerSearchTask or untuk memanggil prosesor analisis suara. Untuk informasi selengkapnya tentang menggunakan analitik suara, lihat Menggunakan analisis suara Amazon Chime SDK.
Catatan Kinesis Data Stream (KDS) yang dihasilkan oleh analitik panggilan mencakup ID saluran media, tipe detail, metadata, dan bagian khusus prosesor. Untuk informasi tentang penggunaan data dari Aliran Data Kinesis, lihat Membaca Data dari Amazon Kinesis Data Streams, di panduan Pengembang Amazon Kinesis Streams. Untuk membuat konfigurasi dengan wastafel ini, Anda harus memiliki kinesis:DescribeStream izin pada aliran yang ditentukan.
Metadata
metadataBagian dari catatan KDS yang dihasilkan berisi pasangan kunci-nilai yang ditentukan CallAnalyticsRuntimeMetadata selama panggilan API. CreateMediaInsightsPipeline Jika sesi analisis panggilan dimulai oleh Konektor Suara, bagian metadata secara otomatis diisi dengan parameter berikut:
-
transactionId -
fromNumber -
toNumber -
callId -
voiceConnectorId -
direction
Selain parameter yang ditunjukkan di atas, bagian metadata untuk sesi analisis panggilan yang dimulai Voice Connector akan diisi dengan oneTimeMetadata bidang yang berisi:
-
inviteHeaders -
siprecMetadata
Ini dipublikasikan ke Kinesis Data Streams hanya sekali di awal sesi dan memiliki nilai detail-type ofCallAnalyticsMetadata.
Anda dapat meneruskan pengidentifikasi unik di MediaInsightsRuntimeMetadata untuk setiap panggilan CreateMediaInsightsPipeline API sehingga Anda dapat mengidentifikasi secara unik sumber setiap rekaman yang dikirimkan ke Aliran Data Kinesis Anda.
Rekaman analitik panggilan membaca audio dari aliran KVS, merekamnya sebagai file audio, dan mengunggah file ke Bucket Amazon S3 yang ditentukan. Setelah merekam analitik panggilan juga mengirimkan metadata panggilan bersama dengan lokasi file ke KDS. Jika Anda mengaktifkan gudang data, metadata panggilan (termasuk metadata SIPREC jika SIPREC digunakan) dikirimkan ke gudang data dalam kumpulan tabel Parquet yang dapat Anda kueri.
Seperti prosesor analitik panggilan lainnya, Anda harus terlebih dahulu membuat konfigurasi untuk pipeline. Anda dapat menggunakan Amazon Chime SDK Console atau CLI untuk membuat konfigurasi. Anda kemudian menggunakan CLI untuk membuat pipeline. Untuk informasi selengkapnya tentang menggunakan konsol untuk membuat konfigurasi perekaman, lihatMembuat konfigurasi analisis panggilan untuk Amazon Chime SDK, sebelumnya di bagian ini. Untuk informasi selengkapnya tentang menggunakan alur kerja perekaman, lihatMemahami alur kerja untuk merekam panggilan untuk Amazon Chime SDK, sebelumnya di bagian ini.
Untuk menggunakan CLI untuk membuat konfigurasi
Jalankan perintah berikut:
aws chime-sdk-media-pipeline create-media-insights-pipeline-configuration --cli-input-json file://configuration.json
Contoh berikut menunjukkan file JSON konfigurasi dengan hanya perekaman yang diaktifkan:
{ "MediaInsightsPipelineConfigurationName": configuration_name, "ResourceAccessRoleArn":role_arn, "Elements": [ { "KinesisDataStreamSinkConfiguration": { "InsightsTarget":KDS_arn//Where recording live metadata will be delivered. }, "Type": "KinesisDataStreamSink" }, { "S3RecordingSinkConfiguration": { "Destination": "arn:aws:s3:::kvs-recording-testing", "RecordingFileFormat":file_format// Specify "Opus" or "WAV" as the recording file format. }, "Type": "S3RecordingSink" } ] }
Ingat hal berikut:
-
Untuk mengaktifkan perekaman panggilan melalui Kinesis Video Streams, audio harus ditandatangani PCM 16-bit little-endian. Laju sampel harus 8kHz.
-
Pembangun harus menetapkan periode retensi data yang cukup lama untuk Stream Video Kinesis untuk memastikan fragmen dipertahankan dan dapat dikonsumsi oleh analitik panggilan.
-
Jika Anda mengaktifkan perekaman panggilan, baik dengan sendirinya atau dalam kombinasi dengan prosesor lain, Anda harus menyediakan dua ARN Kinesis Video Stream untuk merekam. Rekaman panggilan tidak mendukung input audio stereo tunggal.
Contoh berikut menunjukkan format keluaran metadata untuk analitik panggilan perekaman Amazon S3.
{ "time": "string", // ISO8601 format "service-type": "CallAnalytics", "detail-type": "Recording", "mediaInsightsPipelineId": "string", "s3MediaObjectConsoleUrl": "string", "recordingDurationSeconds": "number", "metadata": "string" // JSON encoded string of the metadata object } // metadata object { "voiceConnectorId": "string", "callId": "string", "transactionId": "string", "fromNumber": "string", "toNumber": "string", "direction": "string", "startTime": "string", // ISO8601 format "endTime": "string", // ISO8601 format "oneTimeMetadata": "string" // JSON encoded in string of oneTimeMetadata object } // onetimeMetadata object { "sipHeaders": "string", // JSON encoded string of SIP Invite headers key-value pair "siprecMetadata": "string", // siprec metadata in XML "siprecMetadataJson": "string" // siprec metadata in JSON (converted from above XML) } // sipHeaders object { "string": "string" }
Untuk mengaktifkan peningkatan suara, sertakan VoiceEnhancementSinkConfiguration elemen dalam panggilan CreateMediaInsightsPipelineConfiguration API.
Contoh ini menunjukkan elemen khas.
{ "Type":"VoiceEnhancementSink", "VoiceEnhancementSinkConfiguration": { "Disabled":Boolean(string) // FALSE ==> Voice Enhancement will be performed }
Untuk memperbarui konfigurasi, tambahkan VoiceEnhancementSinkConfiguration elemen ke panggilan UpdateMediaInsightsPipelineConfiguration API. Ketika Anda melakukannya, GetMediaInsightsPipelineConfiguration API menyertakan VoiceEnhancementSinkConfiguration elemen dalam hasil.
Contoh permintaan ini menunjukkan cara mengaktifkan Peningkatan Suara dan perekaman Amazon S3.
POST /media-insights-pipeline-configurations HTTP/1.1 Content-type: application/json { "MediaInsightsPipelineConfigurationName":"media_insights_configuration_name", "ResourceAccessRoleArn":"arn:aws:iam::account_id:role/resource_access_role", "Elements":[ { "Type":"S3RecordingSink", "S3RecordingSinkConfiguration":{ "Destination":"arn:aws:s3:::input_bucket_path", "RecordingFileFormat":"Wav" } }, { "Type":"VoiceEnhancementSink", "VoiceEnhancementSinkConfiguration": { "disabled":"false" } } ], "ClientRequestToken":"client_request_token" }
catatan
VoiceEnhancementSinkElemen selalu membutuhkan S3RecordingSink elemen dalam konfigurasi analitik panggilan.