我正在NAO机器人中进行降噪处理,以实现声音的本地化。我在所有通道(交错)中以48000kHz采样率调用“ setClientPreferences”模块进行记录:
channelFlag = 0
deinterleave = 0 # deinterleave = 1
sampleRate = 48000
audio.setClientPreferences(self.getName(),sampleRate,channelFlag,deinterleave)
并通过此功能获取缓冲区数据:
def processRemote(self,numChannels,samplesPerChannel,timeStamp,buffer):
print "channels=",numChannels," samples=",samplesPerChannel
soundDataInterleaved = np.fromstring(str(buffer),dtype=np.int16)
self.soundData = np.reshape(soundDataInterleaved,(numChannels,samplesPerChannel),'F')
问题是当我尝试通过python / matlab以相同的采样率(48000)将数据恢复到wav文件进行测试时,结果播放的速度比我录制的要快,但是当设置为是采样率(24000)的一半。当我最初将速率设置为16000kHz时,存在相同的问题。
如何解决此问题?这一点非常重要,因为我需要准确的采样率来应用频谱叠加。 另外,我对单个通道的样本编号感到困惑,该样本编号也在here中进行了描述。
谢谢!