我需要找到一個類似的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