Обновление / добавление в файл .wav в Python - PullRequest
0 голосов
/ 01 марта 2019

У меня есть поток аудиокадров PCM, поступающих в мой скрипт Python, и я могу сохранить блоки этих кадров в виде файлов .wav, например:

def update_wav():
    filename = "test.wav"
    wav_file = wave.open(filename, "wb")
    n_frames = len(audio)

    wav_file.setparams((n_channels, sample_width, sample_rate, n_frames, comptype, compname))
    for sample in audio:
        wav_file.writeframes(struct.pack('h', int(sample * 32767.0)))
    wav_file.close()

Однако мне бы хотелосьпостоянно обновлять по мере поступления новых фреймов. Есть ли способ записи фрейма таким образом, чтобы он добавлялся к существующему WAV-файлу?Сейчас я могу выполнить только перезапись.

1 Ответ

0 голосов
/ 01 марта 2019

Я нашел способ сделать это с помощью SciPy , на самом деле это, кажется, функциональность по умолчанию для их метода записи.

import scipy.io.wavfile

def update_wav():
    numpy_data = numpy.array(audio, dtype=float)
    scipy.io.wavfile.write("test.wav", 8000, numpy_data)
...