我正在寻找一个开源库来检测音频剪辑中的人类语音,例如 wav 文件。
如何从音频剪辑中过滤人类语音?
这不是一个完整的答案,但从语音本身中检测单词几乎总是基于字典 - 因此需要知道单词听起来像什么。如果你不懂语言,你就不太了解与声音的关系。因此,语音/音频识别不太有效。
可以对许多主要特征进行分类:
参考:
自动语言识别:Yeshwant K. Muthusamy、Etienne Barnard、Ronald A. Cole 的评论/教程信号处理杂志,IEEE 1994 年 10 月第 11 卷,第 4 页,第 33 页- 41
或同一作者的相关论文。
语音学:
在这里你应该尝试寻找的是,你应该尝试根据主要语音学来收集和识别声音。例如 - 你可以使用类似国际音标的东西韵律:
英语、法语、德语等语言的语音可能非常接近。在这种情况下,您还可以使用韵律信息,它本质上是声音的持续时间、强调或重音、音高和音高变化。Phonotactics:
Phonotactics 是指管理一种语言中不同音素组合的规则。不同语言的语音规则存在很大差异。例如,电话集群 /sr/ 在德拉威语泰米尔语中非常常见,而在英语中它不是合法集群。词汇:
如果你在这方面成功,你可能可以对哪些拼音字母顺序最有可能在特定语言中进行另一种分类。您可能不必识别每个单词。但是根据最可能的音标序列,您可能可以进行语言检测。
正如评论中提到的那样,您不能在不知道所使用的语言的情况下获得成绩单。但是,您可以假设它是给定语言的音频解码。因此,我将提出以下系统:
您使用每种语言的相应语言模型和声学模型在音频上运行语音识别器 N 次,其中 N 是您要识别的语言数量。这将为您提供 N 个音频副本,每个副本都基于音频是该语言的假设。然而,更重要的是,基于 HMM 的语音识别器(迄今为止最常见的类型)还将为您提供给定话语的对数概率的估计,从本质上告诉您给定话语与您的语言和声学模型的匹配程度。获得每种不同语言的日志概率后,您只需进行比较并选择最佳的。
当然,根据模型之间的差异,这些概率可能存在一些偏差。例如,对于几乎所有输入话语,英文模型的概率都高于中文模型,即使它们是中文的。要解决此问题,您需要将这些值重新规范化为可以进行比较的范围。这只能通过查看针对各种语言的大量话语给出的日志概率,并查看它们在不同语言之间的比较来完成。如果您愿意,您甚至可以将其视为机器学习问题。
我建议使用CMU Sphinx,这是一个性能良好的开源识别器,它为英语、汉语、法语、西班牙语、德语、俄语和其他语言预先构建了语言和声学模型。另外,我可以确认,至少对于 pocketsphinx 识别器,它会输出假设的对数概率。(事实上,它甚至会为您提供给定模型的最佳少数假设得分的概率,以及可能让您更准确地猜测语言的附加信息)。