NAO记录缓冲区的采样率不匹配

时间:2018-07-18 10:57:30

标签: wav audio-recording nao-robot

我正在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中进行了描述。

谢谢!

0 个答案:

没有答案