Как декодировать выходные данные AWS Kinesis Video Stream GetMedia API в mp3 / wav? - PullRequest
0 голосов
/ 18 марта 2019

Я загружал данные в (Kinesis Video Stream) KVS через сервис AWS Connect, теперь с помощью API GetMedia могу извлечь Полезная нагрузка , но как я могу преобразовать этот вывод в mp3 / wav?Я хочу перенаправить эти выходные данные в сервис AWS Transcribe, чтобы получить текстовый формат аудиовызова, передаваемого сервисом AWS Connect в KVS.

Вывод Полезная нагрузка для приведенного ниже кода выглядит следующим образом:

00 # AWS_KINESISVIDEO_CONTINUATION_TOKEND \ x87 .... \ x1faudio / L16, скорость = 8000; каналы = 1; \ x12T \ хс ...... 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 '

*, длинная длина * *1010* 1011некоторые из них.

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 и т. д.

1 Ответ

1 голос
/ 01 апреля 2019

Я столкнулся с той же проблемой, я могу экспортировать полезную нагрузку в S3 в виде необработанного файла, но когда я его слушаю, он не слышен должным образом, как зашифрованный разговор.

Я просто сохраняю данные в файл.

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