Как ввести аудио как байты в moviepy - PullRequest
0 голосов
/ 15 января 2020

У меня есть аудио в байтах в виде:

b'ID3\x04\x00\x00\x00\x00\x00#TSSE\x00\x00\x00\x0f\x00\x00\x03Lavf57.71.100\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\...

, которые я получил от веб-сервисов Amazon:

import boto3

client = boto3.client('polly')
response = client.synthesize_speech(
    Engine='neural',
    LanguageCode='en-GB',
    OutputFormat='mp3',
    SampleRate='8000',
    Text='hey whats up this is a test',
    VoiceId='Brian'
)

И я хочу ввести его в аудиофайл moviepy, используя

AudioFileClip()

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

Я пытался:

AudioFileClip(response['AudioStream'].read())

Но это дает ошибка:

Ошибка типа: заканчивается с первым аргументом должно быть байтов или кортежей байтов, а не str

Что я могу сделать?

1 Ответ

0 голосов
/ 15 января 2020

Вам необходимо преобразовать поток аудио в другой тип. (Вот почему он называется TypeError). Вы помещаете это как строку, и она хочет формат байта.

Вы можете преобразовать str в байт, используя функцию bytearray! https://docs.python.org/3/library/functions.html#func -bytearray

Вы также можете посмотреть на этот вопрос: Лучший способ преобразовать строку в байты в Python 3?

Для получения дополнительной помощи просто прокомментируйте этот ответ, и я постараюсь помочь вам как можно скорее.

Надеюсь, это поможет вам в вашем проекте,

PythonMaster Lua

...