2

我是一名 IT 学生,我得到了一项关于动态时间规整 (DTW) 的作业,使用语音信号处理工具包 (SPTK) 并比较 2 位说话者所说的一些单词并找出相似之处。我设法让 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

该命令行的输出应该是一个数值(可能是一个浮点/双精度/整数值)或几个值。问题是我不确定如何打开那个 .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 过程并且认为我已经完成了它,只是输出给我带来了问题。

提前致谢,

马可。

图片1

4

1 回答 1

0

乐谱文件是浮动的,因此您必须使用 SPTK 中的 x2x 命令将其转换为 asci:

x2x +fa scorefile.bin > scorefile.txt

于 2021-07-22T08:31:19.267 回答