我需要在大约 40 个长度为 5 到 7 秒的文件的小型数据库中找到类似的 wav 文件。
这些 wav 文件是电话服务提供商在您拨打电话时提供给您的记录。
例子:
我的针长 1 到 2 秒。
所有的 wav 都是pcm 编码的 16 位 8000hz 单声道。
我尝试使用Aurio.AudioFingerPrint没有成功
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!");
}
我的方法有什么问题?
任何人都知道我缺少小型 wav 的配置吗?