我正在尝试使用pyaudio制作语音掩蔽器。目前的设置是,我只需要输入声音,即时改变音高并将其分块输出。第一和最后部分都已经实现了,而且我认为我已经接近改变音高了...强调一下,“接近”这个词。
不幸的是,我对我正在处理的数据类型以及如何按照我想要的方式操作它并不太熟悉。我已经查阅了audioop文档,但没有找到我需要的内容(虽然里面确实有一些我可以用的东西)。我想问的是...
这些音频帧的数据格式是什么样子的?
我如何改变帧的音高(如果可以的话),或者它是否能够像这样工作?
不幸的是,我对我正在处理的数据类型以及如何按照我想要的方式操作它并不太熟悉。我已经查阅了audioop文档,但没有找到我需要的内容(虽然里面确实有一些我可以用的东西)。我想问的是...
这些音频帧的数据格式是什么样子的?
我如何改变帧的音高(如果可以的话),或者它是否能够像这样工作?
import pyaudio
import sys
import numpy as np
import wave
import audioop
import struct
chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 41000
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
output = True,
frames_per_buffer = chunk)
swidth = 2
print "* recording"
while(True):
data = stream.read(chunk)
data = np.array(wave.struct.unpack("%dh"%(len(data)/swidth), data))*2
data = np.fft.rfft(data)
#MANipulation
data = np.fft.irfft(data)
stream.write(data3, chunk)
print "* done"
stream.stop_stream()
stream.close()
p.terminate()
stream.write
时data3
应该是data
? - SwiftsNamesake