Python: объединение аудио файлов в формате io.BytesIO - PullRequest
0 голосов
/ 14 января 2020

У меня есть служба, которая отправляет текст во внешний текст в службу речи, которая возвращает ответное аудио в ответе. Вот как я получаю доступ к аудио:

res = requests.get(TTS_SERVICE_URL, params={"text":text_to_synth})
bytes_content = io.BytesIO(bytes(res.content))
audio = bytes_content.getvalue()

Теперь я хотел бы отправить несколько строк текста в разных запросах и получить весь аудио контент в байтах, объединить их в один аудио и затем отобразить его, Кто-нибудь может подсказать мне, как я смогу объединить bytes_content в один поток аудиобайтов

1 Ответ

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

Я получил это на работу, разместив ответ здесь, если кто-то еще столкнулся с такой же проблемой, решил ее как таковой

Считайте bytes_content в массив numpy, используя звуковой файл:

data, samplerate = sf.read(bytes_content)
datas.append(data)

где datas - это пустой массив, в который добавляется каждый файл для объединения

Затем снова объедините файлы

combined = np.concatenate(datas)

и при необходимости преобразуйте обратно в поток байтов

out = io.BytesIO()
sf.write(out, combined, samplerate=samplerate, format="wav")

Я почти уверен, что это неправильный способ делать что-то, но это то, что мне помогло

...