我现在使用GetMedia API通过AWS Connect服务将数据提取到(Kinesis Video Stream)KVS,能够提取有效负载,但是如何将输出转换为mp3 / wav?我想将此输出提取到AWS Transcribe服务,以获取AWS Connect服务提取到KVS的音频呼叫的文本格式。
以下代码的有效负载的输出类似于:
00#AWS_KINESISVIDEO_CONTINUATION_TOKEND \ x87 .... \ x1faudio / L16; rate = 8000; channels = 1; \ x12T \ xc ...... 00“ AWS_KINESISVIDEO_MILLIS_BEHIND_NOWD \ x87 \ x10 \ x00 \ x00 \ x074564302g \ xc8 \ x10 \ x00 \ x00 ^ E \ xa3 \ x10 \ x00 \ x00#AWS_KINESISVIDEO_CONTINUATION_TOKEND \ x87 \ x10 \ x00 \ x00 / 91343852333181432506572546233025969376791063'
注意:响应时间过长,因此请粘贴其中一些。
import json
import boto3
kinesis_client = boto3.client('kinesisvideo', region_name='us-east-1')
response = kinesis_client.get_data_endpoint(
StreamARN='arn:aws:kinesisvideo:us-east-1:47...,
APIName='GET_MEDIA')
t = response['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:47...',
StartSelector={'StartSelectorType': 'EARLIEST'})
streamingBody = stream['Payload']
print(streamingBody.read())
请建议如何将有效负载输出转换为mp3 / wav等。
答案 0 :(得分:1)
我面临着同样的问题,我可以将有效负载作为原始文件导出到S3,但是当我收听它时,它像被加密的对话一样无法正常听见。
我只是将有效负载保存到文件中。
f = open("myAudio.wav", 'w+b')
f.write(stream['Payload'].read())
f.close()