Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 已知文本时音频文件中的单词索引_Python_Pattern Matching_Speech Recognition_Cmusphinx - Fatal编程技术网

Python 已知文本时音频文件中的单词索引

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

我有一个音频文件和一个文本文件,对应于音频中所说的内容。是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'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)。我在这里整理了一份清单: