我正在开发一个需要检测某些语音模式的项目。 例如"有人在尖叫":因为我不知道那个人是谁,孩子,男人,女人......每个人都有自己的声音......等等。
所以,我正在寻找一种方法来检测尖叫"例如,保存尽可能多的"尖叫"尽可能的话,当我需要检查一个声音是否是一个尖叫的"声音,我可以为它创建一个指纹,然后搜索,看看我是否可以在"尖叫"的列表中找到相似性。指纹我已经有了。
我的方法是使用类似以下项目的东西:
每个人都会给我一个特定声音的独特指纹,对吗? 我的问题是: 我怎样才能在"尖叫"的列表中搜索相似性?指纹,是否有任何可能的方法来生成得分或返回每个指纹的相似度百分比,以便我可以决定我测试的语音是%是%还是尖叫?
谢谢, J.B
答案 0 :(得分:2)
我的方法是使用类似以下项目的东西:
不太好主意,尖叫声通常是相当稳定的声音,而所有这些图书馆都会搜索声音中的不规则。他们不会发现任何东西。最好使用简单的DNN-LSTM分类器。您可以使用tensorflow或任何其他DNN框架进行训练。你可以在这里找到算法的描述;
Deep Recurrent Neural Network-based Autoencoders for Acoustic Novelty Detection
或在这里:
Deep Neural Networks for Automatic Detection of Screams and Shouted Speech In Subway Trains
我怎样才能在"尖叫"的列表中搜索相似性?指纹,是否有任何可能的方法来生成得分或返回每个指纹的相似度百分比,以便我可以决定我测试的语音是%是%还是尖叫?
在您的第一个库中,您可以使用queryResult.BestMatch.Confidence例如:
置信度 - 返回[0,1]之间的值。低于0.15的值很可能是误报。大于0.15的值很可能完全匹配。对于良好的音频质量查询,您可以获得信心> 0.5。