我需要找到一个类似的wav文件中的一个小型数据库约40个文件的长度从5和7秒。C#音频指纹在小wavs
这些wav文件是电话服务提供商在您拨打电话时给您的记录。
实施例:
我的针是1或2秒长。
所有的wavs都是pcm在8000hz mono编码的16位。
我尝试没有成功
https://github.com/protyposis/Aurio
// Setup the sources
var audioTrack1 = new AudioTrack(new FileInfo("Full5secs.wav"));
var audioTrack2 = new AudioTrack(new FileInfo("Part2Secs.wav"));
// Setup the fingerprint generator
var defaultProfile = FingerprintGenerator.GetProfiles()[0];
var generator = new FingerprintGenerator(defaultProfile);
// Create a fingerprint store
var store = new FingerprintStore(defaultProfile);
// Setup the generator event listener (a subfingerprint is a hash with its temporal index)
generator.SubFingerprintsGenerated += (sender, e) => {
var progress = (double)e.Index/e.Indices;
var hashes = e.SubFingerprints.Select(sfp => sfp.Hash);
store.Add(e);
};
// Generate fingerprints for both tracks
generator.Generate(audioTrack1);
generator.Generate(audioTrack2);
// Check if tracks match
if (store.FindAllMatches().Count > 0) {
Console.WriteLine("overlap detected!");
}
这有什么错我的方法使用Aurio.AudioFingerPrint?
任何人都知道我缺少的小wavs的配置?
顺便说一句,要求'另一个图书馆'通常被认为是脱离主题,并导致问题被搁置或关闭。我想过,但在这篇文章的情况下,主要原因是为什么你的代码片段找不到匹配,所以这是完美的主题。只是要小心要求图书馆。随着时间的推移,图书馆会随着时间的推移而变化,发展并消亡这就是为什么这些问题没有被考虑为“好”的原因 - 要求图书馆提出的问题不可能被“完全解答”。总是有新的东西或某人相信另一个图书馆更好 – quetzalcoatl
您是否检查过指纹识别器是否能找到适合理想情况的匹配项?获取这40个音频文件中的一个并使用该文件作为针运行程序。有了完美的输入,任何(工作)指纹服务应至少返回一个匹配。如果它在一个完美的针上,但不是在你的实际输入上工作,那么也许这是一个配置问题,而不是自我编码(即某些阈值或时间窗口太低/高等)。 – quetzalcoatl
谢谢你是对的我删除了“其他图书馆”的问题。 – Fraga