我刚开始学习LVQ,想用我的mfcc(梅尔频率倒谱系数)结果来实现它。据我所学,我研究的每个例子都有统一的训练和输入数据大小数组,如下所示:
x1[2][4] = {{0,1,1,1},{1,1,1,1},{1,1,0,1}}
x2[2][4] = {{0,1,1,0},{1,1,0,1},{1,0,0,1}}
x3[2][4] = {{1,0,1,0},{1,1,1,0},{0,0,0,1}}
但我的mfcc结果数据大小不平衡,如下所示:
x11[4] = {{0,1,1,1},{1,1,1,1}}
x2[2][4] = {{0,0,1,0},{1,1,0,1},{1,0,0,1}}
x2[4][4] = {{0,0,1,0},{1,1,0,1},{1,0,0,1},{0,1,1,1},{1,0,1,0}}
那么,如何处理这种不平衡数据大小以进行LVQ训练和输入呢?
回答:
处理这个问题最基本的方法是用0来填充缺失的值。因为你的梅尔频率倒谱系数基本上是傅里叶变换,然后是第二次傅里叶变换,这应该不会有影响。
尝试找出你的输入向量的最大尺寸。然后用0填充其他较小的输入向量缺失的维度。如下所示:
x1[1][4] = {{0,1,1,1},{1,1,1,1},{0,0,0,0},{0,0,0,0},{0,0,0,0}}
x2[2][4] = {{0,0,1,0},{1,1,0,1},{1,0,0,1},{0,0,0,0},{0,0,0,0}}
x2[4][4] = {{0,0,1,0},{1,1,0,1},{1,0,0,1},{0,1,1,1},{1,0,1,0}}