如何处理音频字节以从实时音频流中提取 MFCC?

问题描述

我想从内置麦克风流式传输实时音频,并且已成功使用 PyAudio 和 Sounddevice。两种方法都不错,但主要问题是关于特征提取

PyAudio

import pyaudio

FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024

audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,output=True,frames_per_buffer=CHUNK)
data = stream.read(CHUNK)

声音设备

import sounddevice as sd

fs=44100
duration=5

audio = sd.rec(duration*fs,samplerate=fs,channels=1,dtype='float64')
sd.wait()
print('audio recorded')

我想获取此实时音频数据流以提取 MFCC 特征,而无需将流写入波形文件并回读。如何将流数据转换为 MFCC 特征?

补充:我曾尝试使用 Librosa 库获取带有 PyAudio 音频流的 mfccs,但出现错误

while True:
    data = stream.read(CHUNK)
    data_int = np.frombuffer(data,dtype=np.int16)
    mfcc_y = librosa.feature.mfcc(data_int,sr=44100)
    librosa.display.specshow(mfcc_y,sr=44100)

出现错误ParameterError: Audio buffer is not finite everywhere

我希望得到一些关于如何转换音频字节以执行任何特征提取的指导。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)