Python 已知文本时音频文件中的单词索引
我有一个音频文件和一个文本文件,对应于音频中所说的内容。是Python(使用任何库)查找音频中每个单词的开始时间戳(以及最终结束)的一种方法 例如,如果我有一个音频文件和一个包含“Hello,我的名字是”(对应于音频中所说的内容)的文本文件,我希望获得如下内容:Python 已知文本时音频文件中的单词索引,python,pattern-matching,speech-recognition,cmusphinx,Python,Pattern Matching,Speech Recognition,Cmusphinx,我有一个音频文件和一个文本文件,对应于音频中所说的内容。是Python(使用任何库)查找音频中每个单词的开始时间戳(以及最终结束)的一种方法 例如,如果我有一个音频文件和一个包含“Hello,我的名字是”(对应于音频中所说的内容)的文本文件,我希望获得如下内容: "Hello" : 1'24.038 -> 1'24.321 "my" : 1'24.518 -> 1'24.627 "name" : 1'24.629 -> 1'24.851 "is" : 1
"Hello" : 1'24.038 -> 1'24.321
"my" : 1'24.518 -> 1'24.627
"name" : 1'24.629 -> 1'24.851
"is" : 1'24.861 -> 1'24.921
我意识到语音识别是一个非常困难的问题,但我的问题似乎简单得多,因为它只包括匹配文本和音频。然而,我仍然没有找到任何方法来做到这一点,如果没有简单的方法,有人知道我如何开始吗?谢谢 这称为强制音频对齐。只要音频持续时间相对较短,这个问题就很容易解决,并且大多数语音识别框架都可以解决这个问题。但是,当音频很长时,问题就出现了。Python没有现成的解决方案,因此您必须从代码中调用二进制文件。做得很好。根据我的经验,这是相当稳健的。唯一的缺点是,它似乎更好地找到单词的开头和结尾。因此,基本上你会:
"Hello" : 1'24.038 -> 1'24.518
"my" : 1'24.518 -> 1'24.629
"name" : 1'24.629 -> 1'24.861
"is" : 1'24.861 -> 1'24.921
试试看 这里可能重复aeneas的主要开发人员:感谢您提及aeneas!亲爱的OP:请注意,aeneas的设计并不是为了在word级别工作,但是它可以在word级别使用(事实上,有几个用户这样做)。如果你想看看aeneas邮件列表,你可以找到一些提示和窍门。如果您尝试一下,并且需要帮助,请随时在aeneas邮件列表上发布。实际上,除了在另一个答案中提到的aeneas之外,还有一些使用Python编写的强制对齐器(主要依赖HTK或Kaldi)。我在这里整理了一份清单: