Чтение WAV-файла вместо входного потока микрофона - PullRequest
0 голосов
/ 06 сентября 2018

Я пытался адаптировать эту часть декодера проектов для чтения из файла .wav вместо входного потока микрофона, но пока не получилось.

Хочу отметить, что оригинальный проект работает.

Decoder.py представляет измененный код исходного файла listen.py

Оригинальная версия: (из listen.py )

def callback(in_data, frame_count, time_info, status):
    print(type(in_data))
    frames = list(quietnet.chunks(quietnet.unpack(in_data), chunk))
    for frame in frames:
        if not in_frames.full():
            in_frames.put(frame, False)
    return (in_data, pyaudio.paContinue)

p = pyaudio.PyAudio()
stream = p.open(format=FORMAT, channels=options.channels, rate=options.rate,
        input=True, frames_per_buffer=frames_per_buffer, stream_callback=callback)

Моя версия: (из decoder.py )

def readFileData(data):
    frames = list(quietnet.chunks(quietnet.unpack(data), chunk)) #unpacks bytes to frames
    for frame in frames:
        if not in_frames.full(): # check if element can be added to queue
            in_frames.put(frame, False)

wf = wave.open(filename, 'rb')
data = wf.readframes(chunk)
while len(data) > 0:
    readFileData(data)
    data = wf.readframes(chunk) # returns bytes like object
wf.close()
...