java - 用于从嘈杂的音频文件中识别单词的机器学习库

标签 java machine-learning sox

我们一直在尝试从嘈杂的音频文件中识别单词,我用谷歌搜索了很多,使用了一堆API来从嘈杂的单词中分割单词,并且还尝试了SOX,这有点准确(80%的单词被正确分割) ),现在我需要识别这些单词,我已经尝试过从Java调用它的google语音api,但是由于一些剩余的噪音,它没有我希望的那么准确。

我们一直在尝试音频比较,因为我们有一个包含字典中单词的波形文件列表,比较是通过 MusicG 库完成的,但它没有按预期工作。

最近我一直在考虑一些机器学习算法,我可以在其中教授程序,例如音频“Dog”是字符串“dog”,然后重复它直到程序自动识别它。

是否有任何好的/已知的库可以处理音频文件? 如果是这样,最好的教学方法是什么?音频文件的字节数?波长?

此外,如果您知道其他方法可以实现我的期望,请告诉我。

最佳答案

您可能会考虑结合一组音频文件的训练来研究隐马尔可夫模型。 HMM 方法对符号之间的转换概率进行建模。您可以调整决策过程中“记住”的状态数量。

作为分析的一部分,您需要考虑时间扭曲方面 - 即训练音频和匹配音频之间的符号内暂停会有所不同。

@Evan Knowles 补充说,MFCC 是从语音创建 HMM 就绪符号的标准方法。

关于java - 用于从嘈杂的音频文件中识别单词的机器学习库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32212411/

相关文章:

java - 我无法应用 gradle 6.x 插件

java - 列表大小与集合大小不匹配

python - 如何使用 keras 保存最终模型?

machine-learning - 水流量 : How does H2O flow UI treat data types differently

python - Orange 数据挖掘工具中的层次聚类

mp3 - 如何使用 sox 将 wav 文件转换为 mp3 格式?

python - 使用python计算fft

java - 将字符添加到用户选择中

java - 使用 bufferedReader 读取文本文件会添加空格,android

c++ - 如何使用 LibSoX 混合两个 wav 文件