我有一个长文本的音频文件,其中不同的部分都以口语“章节”开头(由同一位演讲者讲述)。有没有办法在这些词处将音频文件拆分为较小的文件?
我正在考虑删除“章节”的一个单词出现,将其放在单独的音频文件中,然后使用一些工具将原始音频与短片段进行模糊匹配,以找到“章节”出现并拆分原始在这些事件中归档。
哪个工具可以做到这一点?索克斯?大胆?
我有一个长文本的音频文件,其中不同的部分都以口语“章节”开头(由同一位演讲者讲述)。有没有办法在这些词处将音频文件拆分为较小的文件?
我正在考虑删除“章节”的一个单词出现,将其放在单独的音频文件中,然后使用一些工具将原始音频与短片段进行模糊匹配,以找到“章节”出现并拆分原始在这些事件中归档。
哪个工具可以做到这一点?索克斯?大胆?
那将是可行的。你需要两个步骤:
要检测时间,您可以使用 pocketsphinx trunk 中的关键字发现工具,只需从 subversion 中检出 pocketsphinx 并构建它。它将安装 pocketsphinx_kws 二进制文件以进行关键字发现。然后你可以在音频中搜索单词时间,它必须是 16khz 16bit MSWAV 格式:
pocketsphinx_kws -infile barnabyrudge_07_dickens.wav -kws "chapter"
...
INFO: kws_search.c(229): >>>>DETECTED IN FRAME [2138]
INFO: kws_search.c(229): >>>>DETECTED IN FRAME [2182]
INFO: kws_search.c(229): >>>>DETECTED IN FRAME [92149]
帧速率为 100 帧/秒,因此您可以看到在 21.38 秒和 921.49 秒检测到章节(当用户说“章节结束”时)
最好使用较长的词组进行检测,词组越长检测效果越好。为了获得最佳检测,您可以调整阈值。
要剪切音频,您可以使用 sox,您可以使用trim
命令删除开头并trim + reverse
剪切结尾。