Python音频帧音高变化。
|
我正在尝试使用pyaudio制作语音掩盖程序。使用我现在设置的方式,我唯一要做的就是输入声音,动态更改音高并立即将其分块。第一部分和最后一部分都在工作,我想我已经接近改变音调了……重点放在“思考”上。
不幸的是,我对正在使用的数据类型以及如何以所需的方式进行精确操作不太熟悉。我已经遍历了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()
没有找到相关结果
已邀请:
2 个回复
晤默报
喷乡顾沥沪
行之后和
行之前,您需要通过
调用将数据转换回16位整数。