我是一名IT学生,并使用语音信号处理工具包(SPTK)完成动态时间扭曲(DTW)的任务,并比较两位发言者所说的一些词,并找出相似之处。 我设法让SPTK正常工作,收集了8个人(4个女性,4个男性),每个人为我录制了8个单词(每个人都有相同的单词)并将其保存为扩展名为.wav的文件。
我的.wav文件是:RIFF(小端)数据,WAVE音频,单声道16000 Hz。 我将每个.wav文件转换为.short数据文件。 我用这行代码将每个.short文件转移到.mcep文件:
x2x +sf < source_maleA.short | frame -l 400 -p 80 | window -l 400 -L 512 | mcep -l 512 -m 20 -a 0.42 > source_maleA.mcep
之后,我用这行代码比较.mcep文件:
dtw -m 24 target_maleB.mcep < source_maleA.mcep > source_maleA_target_maleB.dtw
该命令行的输出应该是数值(可能是float / double / int值)或几个值。问题是,我不确定如何打开.dtw文件,在我得到的文档中没有任何关于它的好信息。当我尝试在任何编辑器中打开它或在终端中捕捉它时,我会得到一些奇怪的字母作为输出[图片1]。
在文档中,它说使用参数-s [Score]我可以得到DTW过程的分数。所以我用这个命令行尝试了它:
dtw -m 24 -s Scorefile target_maleB.mcep < source_maleA.mcep > source_maleA_target_maleB.dtw
我得到一个值,但格式很奇怪。
我在网上和许多关于.dtw文件的文档中搜索过但无法找到任何内容。我试图将结果转换为另一种格式,但没有任何运气。 试图联系我的导师,但到目前为止还没有答案,已经有一段时间了。
任何人都可以给我任何关于做什么或其他什么的建议? 文档可以在这个网站上找到:http://sp-tk.sourceforge.net/(抱歉没有链接,但仍然没有足够的声誉 - 如果必须的话会删除),但我认为它不需要那么多因为我认为我非常了解DTW过程,并认为我已经做好了,只是输出导致了我的问题。
提前致谢,
马哥。
答案 0 :(得分:0)
分数文件是浮动的,因此您必须使用来自 SPTK 的 x2x 命令将其转换为 asci:
x2x +fa scorefile.bin > scorefile.txt