百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

soundfingerprinting

> 编程语言
开源

开源 .NET 中的音频指纹识别。一个纯粹使用 C# 编写的高效音频指纹识别算法。

1.0K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

开源 .NET 中的音频指纹识别。一个纯粹使用 C# 编写的高效音频指纹识别算法。

Audio/Video fingerprinting and recognition in .NET

soundfingerprinting is a C# framework designed for companies, enthusiasts, researchers in the fields of digital signal processing, data mining and audio/video recognition. It implements an efficient algorithm which provides fast insert and retrieval of acoustic and video fingerprints with high precision and recall rate.

Documentation

Full documentation is available on the Wiki page.

Below code snippet shows how to extract acoustic fingerprints from an audio file and later use them as identifiers to recognize unknown audio query. These fingerprints will be stored in a configurable datastore.

…

Querying

Once you've inserted the fingerprints into the datastore, later you might want to query the storage in order to recognize the song those samples you have. The origin of query samples may vary: file, URL, microphone, radio tuner, etc. It's up to your application, where you get the samples from.

…

If the source was played with vinyl-style pitch control (tempo and pitch changed together) by a known percentage, pass it with the query samples to compensate before fingerprinting: .From(audioSamples, sourcePlaybackSpeedPercentage: 8).

Fingerprints Storage

The default storage, which comes bundled with soundfingerprinting NuGet package, is a plain in-memory storage, available via InMemoryModelService class. If you plan to use an external persistent storage for fingerprints Emy is the preferred choice. Emy provides a community version which is free for non-commercial use. More about Emy can be found on wiki page.

Supported audio/video formats

Read Supported Media Formats page for details about processing different file formats or realtime streams.

Video fingerprinting support since version 8.0.0

Since v8.0.0 video fingerprinting support has been added. Similarly to audio fingerprinting, video fingerprints are generated from video frames, and used to insert and later query the datastore for exact and similar matches. You can use SoundFingerprinting to fingerprint either audio or video content or both at the same time. More details about video fingerprinting are available here.

Spectral-profile path bridging since version 15.0.0

Since v15.0.0 an optional per-second spectral profile (SFM + relative power) can be captured at ingest and consumed at query time to bridge regions where hashes don't match across recordings — broadband intros (e.g. ocean waves), fade-outs, atmospheric silence. The mechanism is invisible by default; opt in per-query by setting QueryConfiguration.SfmMatchStrategy to one of the built-in strategies. The setter cascades through to FingerprintConfiguration.ComputeSpectralProfile so the profile is captured during query-time fingerprinting automatically.

var queryResult = await QueryCommandBuilder.Instance.BuildQueryCommand()
    .From(file)
    .WithQueryConfig(config =>
    {
        // covers both broadband and silent regions in one pass
        config.Audio.SfmMatchStrategy = CompositeBridgingStrategy.BroadbandOrSilent;
        return config;
    })
    .UsingServices(modelService, audioService)
    .Query();

Available strategies: NoBridgingStrategy (default — no change vs. v14), BroadbandNoiseBridgingStrategy (per-second SFM > 0.70 on both sides), SilentRegionBridgingStrategy (per-second power No. The granularity of one fingerprint is roughly ~1.46 seconds.

  • Can the algorithm detect exact query position in resulted track?

Yes.

  • Can I use SoundFingerprinting to detect ads in radio streams?

Yes. Actually this is the most frequent use-case where SoundFingerprinting was successfully used.

  • How many tracks can I store in InMemoryModelService?

100 hours of content with DefaultFingerprintingConfiguration will consume ~5GB of RAM.

Get it on NuGet

Install-Package SoundFingerprinting

How it works

Audio Fingerprinting.

Video Fingerprinting.

Demo

My description of the algorithm alogside with the demo project can be found on CodeProject. The article is from 2011, and may be outdated. The demo project is a Audio File Duplicates Detector. Its latest source code can be found here. Its a WPF MVVM project that uses the algorithm to detect what files are perceptually very similar.

Contribute

If you want to contribute you are welcome to open issues or discuss on issues page. Feel free to contact me for any remarks, ideas, bug reports etc.

License

The framework is provided under MIT license agreement.

© Soundfingerprinting, 2010-2025, [email protected]

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#acoustic-fingerprintsalgorithmaudioaudio-processing

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言