我正在编写语音识别代码。我有一个 n 数据库,每个数据库包含不同人员记录的相同数量的单词。
我想在xcorr
之间进行,例如,参考词"你好"用#34;你好"中的所有单词db和" door"中的所有单词db然后代码必须告诉我它是哪个单词。我需要做一些数学模型才能做出决定。
现在,我知道同一个词之间的自相关具有对称图。但如果我比较一下这个词"你好"一位男性用同一个词说,一个女性说的是不对称的,如果我比较一下这个词,我就会得到同样的结果"你好"用#34;门"。
我的问题是:如何找到执行xcorr功能的两个单词之间的相似之处?我是否需要找到xcorr的滞后或最大值?
感谢您的帮助。
答案 0 :(得分:0)
我的问题是:如何找到执行xcorr功能的两个单词之间的相似之处?我是否需要找到xcorr的滞后或最大值?
要测量与单个单词录音的相似度,您需要取最大值,它是一个相似度量
但如果我比较一下这个词"你好"一位男性用同一个词说,一个女性说的是不对称的,如果我比较一下这个词,我就会得到同样的结果"你好"用"门"。
要对样本属于哪个类做出最佳决策,您需要比较两个集群的相似性度量:
max(xcorr(sample, hello)) < > max(xcorr(sample, door)
这背后的理论称为贝叶斯最优分类&#34;。
如果你有更多的单词样本,你可以做出更好的决定:
max_sample(max_lag(xcorr(sample, hello_sample_i)) < > max_sample(max_lag(xcorr(sample, door_sample_i))
我正在编写语音识别代码。
语音样本是随时间变化的,xcorr对时间变化不是不变的。更好的衡量标准是语音频谱的DTW距离。您可以在此处找到DTW距离实施:
http://www.ee.columbia.edu/ln/rosa/matlab/dtw/
DTW对时移是不变的,因此您可以做出更可靠的决定。