python-3.x - 如何将 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 等。
解决方案
我面临同样的问题,我可以将有效负载作为原始文件导出到 S3,但是当我收听它时,它无法正确听到,就像是加密对话一样。
我只是将有效负载保存到一个文件中。
f = open("myAudio.wav", 'w+b')
f.write(stream['Payload'].read())
f.close()
推荐阅读
- mongodb - 需要有关 mongo 聚合查询的帮助
- shell - 来自shell的pytest中的子进程输出
- algorithm - 递归 Tribonacci 序列时间复杂度
- swiftui - 隐藏选项卡视图及其在某些视图上占用的空间
- python - 如果条件不满足,Python产生空列表
- spring - Spring:从 InitializingBean 的 afterPropertiesSet 方法发布事件不起作用
- python - 在不打开浏览器的情况下浏览网页
- discord - discord.js 中的“MessageEmbed 字段值可能不为空”问题
- terraform - 无法将变量从 .tf 文件传递到 .json 策略模板
- python - 无法从 Excel (xlwings) 运行 Python