Превращение аудио в целые числа, а затем обратно в аудио - PullRequest
0 голосов
/ 24 мая 2019
import pyaudio
import struct 
import numpy as np
import wave

 #gather information from data
    n=(1024*4)
    sound = wave.open('test.wav','rb')
    num_sample = sound.getnframes()
    sample_rate = sound.getframerate()
    duration = round(num_sample/sample_rate, 4)

    #instantiate pyaudio and start stream
    p = pyaudio.PyAudio()

    stream = p.open(format = p.get_format_from_width(sound.getsampwidth()),
        channels = sound.getnchannels(),
        rate = sample_rate,
        output = True,
        frames_per_buffer = n)

    #Get data from .wav and turn it into integers
    data = sound.readframes(n)
    data_int = struct.unpack(str(len(data))+'B',data)
    print(data_int_test)

Это часть моего кода, где я сделал массив целых чисел из аудио.Я попытаюсь добавить к целым числам множитель и т.д.Тем не менее, я не знаю, как превратить целочисленный массив обратно в аудио.Я также пытался использовать numpy.frombuffer, который также давал мне целые числа, но я не был уверен, как их вернуть. Если есть способ с другим модулем, я бы хотел сделать это таким образом.Я уверен, что у numpy может быть что-то.

1 Ответ

1 голос
/ 24 мая 2019

Попробуйте использовать write функцию из scipy.io.wavfile в .wav файл.

from scipy.io.wavfile import write

write('test.wav', sample_rate, scaled)
#write("filename.wav", int - sample rate, data)
...