我目前正致力于语音识别。我必须将未知声音(在频率方面)的签名与我们知道的其他声音签名进行比较 具体地说,我们确定声音频谱中的“峰值”(=共振峰),这些声音是特定的(特征)。我们将这些峰值的频率记忆为元组。我们记住已知声音的元组。他们有成千上万(如果不是数十万) 对于要识别的每个新声音,我们将该声音的元组与已知声音的元组进行比较。这需要进行大量的比较!
我需要找到一种快速比较这些元组的方法。
我已经抬起头来,发现这是最近邻搜索问题。 但我不认为我可以使用这些算法。
实际上,元组可以具有不同数量的组件。 组件只是频率(以kHz为单位)。 它可以是(1; 2)或(1; 2.4; 4; 5; 6; 7; 7.1; 11; 12.1; 13)(最多20个分量)。
所以我的问题是:我没有一个具有相同“维度”元组的数据集,我怎样才能找到最近的neighboor?
我的理解是,为了应用最近的neighboor算法,必须具有相同维度的元组。
感谢您阅读。
祝你有愉快的一天!
修改
我不仅需要找到 最近的邻居,我实际上需要找到全部远离我的参考点距离D的距离远的邻接点。 / p>
EDIT2:
@random_hacker:不,他们没有。只有当这两个元素之间的差异为<时,才能将元组的元素与另一个元组的元素进行比较。阈。
EDIT3:
你是绝对正确的数学,我只是输入“随机”的东西。
事实上,元组的元素是频率排序(升序),实际上元组的每个频率只出现一次。
所以(4; 2)是错的,应该是(2; 4)和(2; 2; 4)不存在,它是(2; 4)(不重复)