我正在用Python为Raspberry Pi写一个声码器,这使声音无法识别。 我录制音频并使用回调功能实时播放-它可以工作。 现在,我需要对输入进行去噪,以Numpy数组表示(像大多数教程和SO上的文章一样,没有.wav文件!)。 它对我不起作用。
我的main.py:
from copy import copy
import numpy as np
import pyaudio as pa
import time
import noisereduce as nr
p = pa.PyAudio()
FORMAT = pa.paFloat32
NP_FORMAT = np.float32
CHANNELS = 2
CHUNK = 1024
RATE = int(p.get_default_input_device_info()['defaultSampleRate'])
NOISE_SAMPLE = None
# function for manipulating input data
def callback(in_data, frame_count, time_info, flag):
data = copy(np.frombuffer(in_data)) # copy, since original is read-only
# here everything is ok for first time
# print("X")
out_data = nr.reduce_noise(audio_clip=data, noise_clip=NOISE_SAMPLE)
# print("Y")