void AudioPreprocessing_Run(int16_t *pInSignal, float32_t pOutMfcc, uint32_t signal_len) { const uint32_t num_frames = 1 + (signal_len - FRAME_LEN) / HOP_LEN; for (uint32_t frame_index = 0; frame_index < num_frames; frame_index++) { buf_to_float_normed(&pInSignal[HOP_LEN * frame_index], pInFrame, FRAME_LEN); MfccColumn(&S_Mfcc, pInFrame, pOutColBuffer); / Reshape column into pOutMfcc */ for (uint32_t i = 0; i < NUM_MFCC; i++) { pOutMfcc[i * num_frames + frame_index] = pOutColBuffer[i]; } }这段代码中提取40个mfcc特征需要在下面写什么
时间: 2024-03-02 18:54:38 浏览: 63
在这段代码中,提取40个MFCC特征需要在代码中定义一个常量 NUM_MFCC,该常量应该设置为 40,以确保在循环中正确复制每个帧的 MFCC 系数到输出缓冲区中。因此,在代码中应该添加以下行:
```C++
#define NUM_MFCC 40
```
这样,在循环中的 MFCC 系数复制过程中,就可以使用 NUM_MFCC 常量来确保正确地复制40个 MFCC 系数到输出缓冲区中。
相关问题
void AudioPreprocessing_Run(int16_t *pInSignal, float32_t *pOutMfcc, uint32_t signal_len)这段提取mfcc代码中signal_len是什么
signal_len是指输入信号pInSignal的长度,单位为采样点(samples)。在该函数中,输入信号的长度需要事先确定,以便进行下一步的MFCC特征提取计算。通常情况下,信号长度应该是固定的,因为MFCC算法所需的输入信号长度是固定的,一般是25ms或30ms。因此,在使用该函数时,需要明确输入信号的采样率和信号长度,以保证MFCC特征提取的正确性。
阅读全文