Audio 在口语中分割语音音频

Audio 在口语中分割语音音频,audio,speech-recognition,fuzzy-comparison,Audio,Speech Recognition,Fuzzy Comparison,我有一个长文本的音频文件,有不同的部分,所有部分都以口语单词“Chapter”(由同一个演讲者叙述)开头。有没有办法在这些单词处将音频文件拆分成更小的文件 我正在考虑删掉“chapter”中出现的一个单词,将其放在一个单独的音频文件中,然后使用一些工具将原始音频与短片段进行模糊匹配,以找到“chapter”出现的地方,并在这些出现的地方拆分原始文件 哪种工具可以做到这一点?SOX?大胆?那是可行的。您需要两个步骤: 检测单词出现的时间 根据时间剪切音频 要检测时间,您可以使用pocketsphi

我有一个长文本的音频文件,有不同的部分,所有部分都以口语单词“Chapter”(由同一个演讲者叙述)开头。有没有办法在这些单词处将音频文件拆分成更小的文件

我正在考虑删掉“chapter”中出现的一个单词,将其放在一个单独的音频文件中,然后使用一些工具将原始音频与短片段进行模糊匹配,以找到“chapter”出现的地方,并在这些出现的地方拆分原始文件


哪种工具可以做到这一点?SOX?大胆?那是可行的。您需要两个步骤:

  • 检测单词出现的时间
  • 根据时间剪切音频
  • 要检测时间,您可以使用pocketsphinx主干中的关键字定位工具,只需从subversion签出pocketsphinx并构建它。它将安装pocketsphinx_kws二进制文件用于关键字识别。然后,您可以在音频中搜索字数,该音频必须为16khz 16位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
    来剪切结束。

    谢谢Nikolay。我会去查查pocketsphinx的。只是澄清一下:keyward不是作为音频片段提供的,而是作为文本字符串提供的,对吗?是的,它足以提供字符串