如何将 AWS Kinesis Video Stream GetMedia API 输出解码为 mp3/wav? [英] How to decode AWS Kinesis Video Stream GetMedia API output to mp3/wav?

本文介绍了如何将 AWS Kinesis Video Stream GetMedia API 输出解码为 mp3/wav?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在使用 GetMedia API 通过 AWS Connect 服务将数据摄取到(Kinesis Video Stream)KVS 能够提取有效负载,但如何将此输出转换为 mp3/wav?我想将此输出摄取到 AWS Transcribe 服务,以获取 AWS Connect 服务摄取到 KVS 的音频呼叫的文本格式.

以下代码的Payload输出如下:

00#AWS_KINESISVIDEO_CONTINUATION_TOKENDx87....x1faudio/L16;rate=8000;channels=1;x12Txc......00"AWS_KINESISVIDEO_MILLIS_BEHIND_NOWDx87x10x00x07x40x10x00x00^Exa3x10x00x00#AWS_KINESISVIDEO_CONTINUATION_TOKENDx87x10x00x00/91343852333181432506572549269372546239372506888888888888969650p

注意:以上回复太长,贴了一部分.

导入json导入 boto3kinesis_client = boto3.client('kinesisvideo', region_name='us-east-1')响应 = kinesis_client.get_data_endpoint(StreamARN='arn:aws:kinesisvideo:us-east-1:47...,APIName='GET_MEDIA')t = 响应['数据端点']video_client = boto3.client('kinesis-video-media', endpoint_url=t, region_name='us-east-1')流 = video_client.get_media(StreamARN='arn:aws:kinesisvideo:us-east-1:47...',StartSelector={'StartSelectorType': 'EARLIEST'})streamBody = 流['有效负载']打印(streamingBody.read())

请建议我如何将有效负载输出转换为 mp3/wav 等.

解决方案

我遇到了同样的问题,我可以将有效负载作为原始文件导出到 S3,但是当我听它时,它听不到像加密对话.

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

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

I ingested data to (Kinesis Video Stream) KVS via AWS Connect service now using GetMedia API am able to extract the Payload but how can I convert this output to a mp3/wav ? I want to ingest this output to AWS Transcribe service to get text format of audio call ingested by AWS Connect service to KVS.

Output of Payload for below code is like :

00#AWS_KINESISVIDEO_CONTINUATION_TOKENDx87....x1faudio/L16;rate=8000;channels=1;x12Txc......00"AWS_KINESISVIDEO_MILLIS_BEHIND_NOWDx87x10x00x00x074564302gxc8x10x00x00^Exa3x10x00x00#AWS_KINESISVIDEO_CONTINUATION_TOKENDx87x10x00x00/91343852333181432506572546233025969374566791063'

Note: Above response was too long, so pasted some of it.

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())

Please suggest how can I convert payload output to mp3/wav etc.

解决方案

I am facing the same problem, I can export the payload to S3 as a raw file but when I listen it, it is not properly audible like it was a crypted conversation.

I just save the payload into a file.

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

这篇关于如何将 AWS Kinesis Video Stream GetMedia API 输出解码为 mp3/wav?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆