Как объединить список байтовых аудиоданных (из внешнего интерфейса) в один WAV-файл?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как объединить список байтовых аудиоданных (из внешнего интерфейса) в один WAV-файл?

Сообщение Anonymous »

Тело:
Я работаю с двумя типами аудиоданных, оба в байтовой форме. Один тип отлично работает с библиотеками обработки звука, такими как pydub и AudioSegment, что позволяет мне объединять и экспортировать аудио в файл WAV. Однако второй тип аудиоданных, которые я получаю от внешнего интерфейса, не может быть обработан этими библиотеками.
Я могу объединить байтовые данные для транскрипции, используя b''.join(list ), но когда я пытаюсь сохранить или воспроизвести объединенный звук, воспроизводится только первый сегмент. После его остановки мне нужно вручную нажать кнопку воспроизведения, чтобы прослушать следующий сегмент.
Вот метод, который работает для первого типа звука, но не работает для второго:

Код: Выделить всё

from pydub import AudioSegment
import io
import numpy as np

def audio_saver_AI(path, audio, dtype=np.int16):
combined_audio = AudioSegment.empty()
if isinstance(audio, list):
for audio_file in audio:
temp_audio = io.BytesIO(audio_file)
audio_segment = AudioSegment.from_wav(temp_audio)  # Works with one type of audio
combined_audio += audio_segment
combined_audio.export(path, format='wav')
Проблема:
  • Этот код отлично работает для первого типа аудио, с которым я имею дело, но для аудиоданных исходящий из внешнего интерфейса, не включает заголовок RIFF, необходимый для его обработки как файла .wav, он не может быть обработан AudioSegment или другими подобными библиотеками.
  • Для транскрипции b''.join(list) отлично работает для обоих типов аудио, но я не могу объединить их и воспроизвести как один непрерывный аудиофайл.
  • Мне нужно решение, позволяющее правильно объединить аудиоданные, полученные из внешнего интерфейса, и экспортировать их в виде воспроизводимого файла.
Что я пробовал :
  • Использование AudioSegment и других библиотек для объединения аудиоданных, но они не могут обработать тип аудио внешнего интерфейса.
  • Объединение байтов для транскрипции с помощью b''.join(list), которое работает, но недостаточно для создания воспроизводимого аудиофайла.
Вопрос:
Как объединить список байтовых аудиоданных (включая тип, полученный от внешнего интерфейса) в один аудиофайл, который можно сохранить и воспроизвести постоянно?


Подробнее здесь: https://stackoverflow.com/questions/789 ... ngle-wav-f
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
    Anonymous » » в форуме Python
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Есть ли эффективный способ назначить звуки (tick.wav, end_break.wav, end_task.wav)?
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Чтение файла wav, а затем записать файл wav в другой файл
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как объединить тысячи файлов WAV в один файл с помощью MixingSampleProvider от NAudio?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»