尝试将 Amazon Connect 配置为将对话实时流式传输到 AWS Kinesis Video Streams,然后触发 Lambda 函数 (Python),该函数使用 GetMedia API 对此记录进行采样并将其发送到某个 S3 存储桶。
几乎停留在将原始流转换为 .wav -> 甚至可以用 python 实现吗?找到了类似的实现,但总是偶然发现 Java ( https://github.com/aws-samples/amazon-connect-realtime-transcription )。
例如,我只需将此流转换为 .wav 格式,以便稍后可以由普通音频播放器播放并用作语音邮件和类似用例。
import json
import boto3
import time
bucket='kinesis-video-streams-random'
key = 'streams/latest.raw'
def lambda_handler(event, context):
try:
s3_client = boto3.client('s3',region_name='us-east-1')
kinesis_client = boto3.client('kinesisvideo',region_name='us-east-1')
get_ep = kinesis_client.get_data_endpoint(StreamARN='arn:aws:kinesisvideo:us-east-1:xxxxxxxxx:stream/xxxxxxxx',APIName='GET_MEDIA')
t = get_ep['DataEndpoint']
video_client = boto3.client('kinesis-video-media', endpoint_url=t, region_name='us-east-1')
stream = video_client.get_media(StreamARN='arn:aws:kinesisvideo:us-east-1:xxxxxxxxx:stream/xxxxxxxx',StartSelector={'StartSelectorType': 'EARLIEST'})
s3_client.put_object(Bucket=bucket, Key=key, Body=stream['Payload'].read())
print("Specific Kinesis Stream stored in the S3 bucket " + bucket)
except Exception as e:
return e