我想清楚说明我面临的问题。
场景构建:
我有一个MFCC发生器模块,它从用户那里获取语音样本,并生成一个矩形矩阵,表示m×n阶的A,其元素是Cesptral Coefficients(MFCC)。现在,假设我维护一个先前存储的包含用户语音信号的数据库。通过LPC滤波器,我生成语音样本,然后将其引导到MFCC生成器块,其约束条件是我不从数据库中提供整个样本用于滤波器以生成语音信号。相反,我给出了演讲样本的一部分。现在,这个预测的语音信号现在将指向MFCC发生器块以产生预测信号的倒谱系数,该倒谱系数再次证明是另一个矩形矩阵,即B的相同阶数m×n。然后我使用矩阵范数和启发式选择的阈值来比较两个矩阵(找到错误)并验证用户。如果失败,则预测的输入语音样本线性增加,并再次检查约束。
深入了解之前定义的矩阵A,B。
矩阵的行表示每个语音帧要生成的系数的数量。列是整个语音样本的所有帧的系数的串联。 A和B具有相同的设置。 (在MFCC生成期间,我们使用固定大小的窗口,对窗口下的样本进行操作,为该帧产生MFCC系数,然后滑动窗口,使得滑动步长小于窗口大小,即:每个连续窗户重叠)。
问题:
我看过这个Matching two series of Mfcc coefficients链接。我觉得它有点用处。然而,我对于我刚才定义的问题提出了一些问题。即使经过身份验证的用户说话(说出存储在数据库中的确切单词),MFCC(矩阵中每个元素的位置)也不必与预测期间生成的那个完全匹配。如果两个矩形矩阵被转换为矢量,样本之间可能存在时间延迟。如果是这样,我提到的链接中定义的规范即使对于经过身份验证的用户也无需解决。我如何解决它?有没有其他形式的解决上述问题。
谢谢。