Как декодировать выходные данные AWS Kinesis Video Stream GetMedia API в mp3/wav?
Я загружал данные в (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'
Примечание: выше ответ был слишком длинным, поэтому вставил некоторые из них.
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 ответ
Я сталкиваюсь с той же проблемой, я могу экспортировать полезную нагрузку в S3 в виде необработанного файла, но когда я слушаю его, он не слышен должным образом, как это был зашифрованный разговор.
Я просто сохраняю полезную нагрузку в файл.
f = open("myAudio.wav", 'w+b')
f.write(stream['Payload'].read())
f.close()