首页 > 解决方案 > 如何将 AWS Kinesis Video Stream GetMedia API 输出解码为 mp3/wav?

问题描述

我现在使用 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/91343852333181432506572546233025969374566791063'

注意:以上回复太长,所以贴了一些。

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 等。

标签: python-3.xamazon-web-servicesamazon-kinesisamazon-kinesis-agentapache-camel-aws-kinesis

解决方案


我面临同样的问题,我可以将有效负载作为原始文件导出到 S3,但是当我收听它时,它无法正确听到,就像是加密对话一样。

我只是将有效负载保存到一个文件中。

f = open("myAudio.wav", 'w+b')
f.write(stream['Payload'].read())
f.close() 

推荐阅读