在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 纯C#编写的高效声音指纹算法(音频指纹技术)

纯C#编写的高效声音指纹算法(音频指纹技术)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:6.32M
  • 下载次数:2
  • 浏览次数:14
  • 发布时间:2024-05-07
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 技术 音频 声音 C# 指纹

实例介绍

【实例简介】

soundfingerprinting是一个专为数字信号处理、数据挖掘和音频/视频识别领域的公司、爱好者和研究人员设计的C#框架。它实现了一种高效的算法,可以提供高精度和召回率的声音和视频指纹的快速插入和检索。



public async Task<TrackData> GetBestMatchForSong(string file)
{
    int secondsToAnalyze = 10; // number of seconds to analyze from query file
    int startAtSecond = 0; // start at the begining
	
    // query the underlying database for similar audio sub-fingerprints
    var queryResult = await QueryCommandBuilder.Instance.BuildQueryCommand()
                                         .From(file, secondsToAnalyze, startAtSecond)
                                         .UsingServices(modelService, audioService)
                                         .Query();
    
    return queryResult.BestMatch.Track;
}



【实例截图】
【核心代码】
文件清单
└── soundfingerprinting-96331c0093695bb472573965d4bf22432a7f2af7
    ├── build
    │   └── Build.proj
    ├── build.cmd
    ├── build-naudio.cmd
    ├── build.sh
    ├── license.txt
    ├── README.md
    ├── soundfingerprinting.png
    └── src
        ├── Emy.ruleset
        ├── Settings.StyleCop
        ├── SoundFingerprinting
        │   ├── Audio
        │   │   ├── AudioSamples.cs
        │   │   ├── AudioSamplesNormalizer.cs
        │   │   ├── AudioService.cs
        │   │   ├── AudioServiceException.cs
        │   │   ├── IAudioSamplesNormalizer.cs
        │   │   ├── IAudioService.cs
        │   │   ├── ILowPassFilter.cs
        │   │   ├── IPlayAudioFileService.cs
        │   │   ├── IRealtimeAudioSamplesAggregator.cs
        │   │   ├── ISamplesAggregator.cs
        │   │   ├── ISamplesProvider.cs
        │   │   ├── ISoundCaptureService.cs
        │   │   ├── IStreamingUrlReader.cs
        │   │   ├── ITagService.cs
        │   │   ├── IWaveFileUtility.cs
        │   │   ├── LowPassFilter.cs
        │   │   ├── RealtimeAudioSamplesAggregator.cs
        │   │   ├── SamplesAggregator.cs
        │   │   ├── SamplesConverter.cs
        │   │   ├── SoundFingerprintingAudioService.cs
        │   │   ├── TagInfo.cs
        │   │   └── WaveFormat.cs
        │   ├── Builder
        │   │   ├── FingerprintCommandBuilder.cs
        │   │   ├── IFingerprintCommandBuilder.cs
        │   │   ├── IQueryCommandBuilder.cs
        │   │   └── QueryCommandBuilder.cs
        │   ├── Command
        │   │   ├── BlockingRealtimeCollection.cs
        │   │   ├── CompletedRealtimeMatchResultEntryFilter.cs
        │   │   ├── ExecutedFingerprintCommand.cs
        │   │   ├── ExecutedQueryCommand.cs
        │   │   ├── FingerprintCommand.cs
        │   │   ├── IBackoffPolicy.cs
        │   │   ├── IFingerprintCommand.cs
        │   │   ├── IInterceptHashes.cs
        │   │   ├── IInterceptRealtimeSource.cs
        │   │   ├── IQueryCommand.cs
        │   │   ├── IQuerySource.cs
        │   │   ├── IRealtimeQueryCommand.cs
        │   │   ├── IRealtimeResultEntryFilter.cs
        │   │   ├── IRealtimeSource.cs
        │   │   ├── ISourceFrom.cs
        │   │   ├── IUsingFingerprintServices.cs
        │   │   ├── IUsingQueryServices.cs
        │   │   ├── IUsingRealtimeQueryServices.cs
        │   │   ├── IWithFingerprintConfiguration.cs
        │   │   ├── IWithQueryConfiguration.cs
        │   │   ├── IWithRealtimeQueryConfiguration.cs
        │   │   ├── NoOpQueryHashesConcatenator.cs
        │   │   ├── NoPassRealtimeResultEntryFilter.cs
        │   │   ├── OngoingRealtimeResultEntryFilter.cs
        │   │   ├── PassThroughRealtimeResultEntryFilter.cs
        │   │   ├── QueryCommand.cs
        │   │   ├── RandomExponentialBackoffPolicy.cs
        │   │   ├── RealtimeQueryCommand.cs
        │   │   ├── TrackMatchLengthEntryFilter.cs
        │   │   └── TrackRelativeCoverageLengthEntryFilter.cs
        │   ├── Configuration
        │   │   ├── AVFingerprintConfiguration.cs
        │   │   ├── AVQueryConfiguration.cs
        │   │   ├── Configs.cs
        │   │   ├── DefaultAVFingerprintConfiguration.cs
        │   │   ├── DefaultAVQueryConfiguration.cs
        │   │   ├── DefaultFingerprintConfiguration.cs
        │   │   ├── DefaultHashingConfig.cs
        │   │   ├── DefaultQueryConfiguration.cs
        │   │   ├── DefaultRealtimeQueryConfiguration.cs
        │   │   ├── DefaultSpectrogramConfig.cs
        │   │   ├── EmptyOfflineStorage.cs
        │   │   ├── FingerprintConfiguration.cs
        │   │   ├── Frames
        │   │   │   ├── BlackFramesFilterConfiguration.cs
        │   │   │   ├── CropDetector.cs
        │   │   │   ├── CroppingConfiguration.cs
        │   │   │   ├── DefaultVideoFingerprintConfiguration.cs
        │   │   │   ├── DefaultVideoQueryConfiguration.cs
        │   │   │   ├── FrameNormalizationChain.cs
        │   │   │   ├── GaussianBlurConfiguration.cs
        │   │   │   ├── GaussianBlurFrameNormalization.cs
        │   │   │   ├── IFrameNormalization.cs
        │   │   │   ├── LogSpectrumNormalization.cs
        │   │   │   ├── MeanFrameNormalization.cs
        │   │   │   ├── NoFrameNormalization.cs
        │   │   │   ├── SsimImplementation.cs
        │   │   │   ├── StructuralSimilarityFilterConfiguration.cs
        │   │   │   ├── VideoFingerprintConfiguration.cs
        │   │   │   └── VideoQueryConfiguration.cs
        │   │   ├── FrequencyRange.cs
        │   │   ├── HashingConfig.cs
        │   │   ├── IDelayStrategy.cs
        │   │   ├── IMetaFieldsFilter.cs
        │   │   ├── IOfflineStorage.cs
        │   │   ├── MetaFieldsFilter.cs
        │   │   ├── NoDelayStrategy.cs
        │   │   ├── QueryConfiguration.cs
        │   │   ├── RandomDelayStrategy.cs
        │   │   ├── RealtimeQueryConfiguration.cs
        │   │   └── SpectrogramConfig.cs
        │   ├── Content
        │   │   ├── AudioTrack.cs
        │   │   ├── AVTrack.cs
        │   │   ├── StreamingFile.cs
        │   │   └── VideoTrack.cs
        │   ├── DAO
        │   │   ├── CompoundModelReference.cs
        │   │   ├── CompoundModelReferenceProvider.cs
        │   │   ├── Data
        │   │   │   ├── FingerprintData.cs
        │   │   │   ├── IgnoreBindingAttribute.cs
        │   │   │   ├── SpectralImageData.cs
        │   │   │   ├── SubFingerprintData.cs
        │   │   │   └── TrackData.cs
        │   │   ├── IModelReference.cs
        │   │   ├── IModelReferenceProvider.cs
        │   │   ├── IModelReferenceTracker.cs
        │   │   ├── IntModelReferenceProvider.cs
        │   │   ├── LinkedDataModels.cs
        │   │   ├── LongModelReferenceProvider.cs
        │   │   ├── ModelReference.cs
        │   │   ├── ModelReferenceMaxAllowedValueExceededException.cs
        │   │   ├── TracksUtility.cs
        │   │   ├── UIntModelReferenceProvider.cs
        │   │   └── UIntModelReferenceTracker.cs
        │   ├── Data
        │   │   ├── AVFingerprintingTime.cs
        │   │   ├── AVFingerprints.cs
        │   │   ├── AVHashes.cs
        │   │   ├── Fingerprint.cs
        │   │   ├── FingerprintsAndHashes.cs
        │   │   ├── Frame.cs
        │   │   ├── Frames.cs
        │   │   ├── HashedFingerprint.cs
        │   │   ├── Hashes.cs
        │   │   ├── MediaType.cs
        │   │   ├── QueryMatch.cs
        │   │   └── TrackInfo.cs
        │   ├── FFT
        │   │   ├── IFFTService.cs
        │   │   ├── ILogUtility.cs
        │   │   ├── ISimpleSpectrumService.cs
        │   │   ├── ISpectrumService.cs
        │   │   ├── LogUtility.cs
        │   │   ├── LomontFFT.cs
        │   │   ├── SimpleSpectrumService.cs
        │   │   └── SpectrumService.cs
        │   ├── FingerprintService.cs
        │   ├── IAdvancedModelService.cs
        │   ├── IFingerprintService.cs
        │   ├── Image
        │   │   ├── Contour.cs
        │   │   ├── Coord.cs
        │   │   ├── GaussianBlurKernel.cs
        │   │   ├── GrayImage.cs
        │   │   ├── ImageService.cs
        │   │   ├── SSIM.cs
        │   │   ├── StructuralSimilarityAlgorithm.cs
        │   │   └── WeightedUnionFind.cs
        │   ├── IModelService.cs
        │   ├── InMemory
        │   │   ├── AVRAMStorage.cs
        │   │   ├── InMemoryModelService.cs
        │   │   ├── IRAMStorage.cs
        │   │   └── RAMStorage.cs
        │   ├── IQueryFingerprintService.cs
        │   ├── IQueryMatchRegistry.cs
        │   ├── IQueryService.cs
        │   ├── LCS
        │   │   ├── Candidates.cs
        │   │   ├── Coverage.cs
        │   │   ├── EnumerableRegion.cs
        │   │   ├── IQueryPathReconstructionStrategy.cs
        │   │   ├── IQueryResultCoverageCalculator.cs
        │   │   ├── LegacyQueryPathReconstructionStrategy.cs
        │   │   ├── MaxAt.cs
        │   │   ├── OverlappingRegionFilter.cs
        │   │   ├── QueryPathReconstructionStrategy.cs
        │   │   ├── QueryPathReconstructionStrategyType.cs
        │   │   ├── QueryResultCoverageCalculator.cs
        │   │   ├── StackExtensions.cs
        │   │   └── TimeSegment.cs
        │   ├── LSH
        │   │   ├── ILocalitySensitiveHashingAlgorithm.cs
        │   │   └── LocalitySensitiveHashingAlgorithm.cs
        │   ├── Math
        │   │   ├── FScore.cs
        │   │   ├── HammingDistanceResultStatistics.cs
        │   │   ├── HashConverter.cs
        │   │   ├── IGroupingCounter.cs
        │   │   ├── IHashConverter.cs
        │   │   ├── ISimilarityUtility.cs
        │   │   ├── SimilarityUtility.cs
        │   │   └── StandardGroupingCounter.cs
        │   ├── Media
        │   │   ├── AudioTrackReadConfiguration.cs
        │   │   ├── AVTrackReadConfiguration.cs
        │   │   ├── IMediaService.cs
        │   │   └── IRealtimeMediaService.cs
        │   ├── MinHash
        │   │   ├── AdaptivePermutations.cs
        │   │   ├── DefaultPermutations.cs
        │   │   ├── ExtendedMinHashService.cs
        │   │   ├── IMinHashService.cs
        │   │   ├── IPermutations.cs
        │   │   ├── MaxEntropyPermutations.cs
        │   │   └── MinHashService.cs
        │   ├── ModelServiceInfo.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Query
        │   │   ├── AVQueryCommandStats.cs
        │   │   ├── AVQueryMatch.cs
        │   │   ├── AVQueryResult.cs
        │   │   ├── AVResultEntryCompletionStrategy.cs
        │   │   ├── AVResultEntry.cs
        │   │   ├── ConfidenceCalculator.cs
        │   │   ├── Gap.cs
        │   │   ├── GroupedQueryResults.cs
        │   │   ├── HammingSimilarityScoreAlgorithm.cs
        │   │   ├── ICompletionStrategy.cs
        │   │   ├── IConcatenator.cs
        │   │   ├── IOngoingAvResultEntryTracker.cs
        │   │   ├── IQueryHashesConcatenator.cs
        │   │   ├── IQueryMath.cs
        │   │   ├── IRealtimeResultEntryAggregator.cs
        │   │   ├── IScoreAlgorithm.cs
        │   │   ├── MatchedWith.cs
        │   │   ├── MatchedWithExtensions.cs
        │   │   ├── QueryCommandStats.cs
        │   │   ├── QueryMath.cs
        │   │   ├── QueryResult.cs
        │   │   ├── RealtimeQueryResult.cs
        │   │   ├── ResultEntryCompletionStrategy.cs
        │   │   ├── ResultEntryConcatenator.cs
        │   │   ├── ResultEntry.cs
        │   │   ├── ReviewStatus.cs
        │   │   ├── StatefulOngoingAvResultEntryTracker.cs
        │   │   ├── StatefulQueryHashesConcatenator.cs
        │   │   ├── StatefulRealtimeResultEntryAggregator.cs
        │   │   ├── SubFingerprintCountScoreAlgorithm.cs
        │   │   └── SubFingerprintsToSeconds.cs
        │   ├── QueryFingerprintService.cs
        │   ├── SoundFingerprinting.csproj
        │   ├── Strides
        │   │   ├── IncrementalRandomStride.cs
        │   │   ├── IncrementalStaticStride.cs
        │   │   ├── IStride.cs
        │   │   ├── StrideType.cs
        │   │   └── StrideUtils.cs
        │   ├── Utils
        │   │   ├── AbsComparator.cs
        │   │   ├── AvQueryMatchSplitStrategy.cs
        │   │   ├── FastFingerprintDescriptor.cs
        │   │   ├── FingerprintDescriptor.cs
        │   │   ├── FingerprintEncoder.cs
        │   │   ├── IEncodedFingerprintSchema.cs
        │   │   ├── IFingerprintDescriptor.cs
        │   │   ├── IFingerprintEncoder.cs
        │   │   ├── ITestRunnerUtils.cs
        │   │   ├── QuickSelectAlgorithm.cs
        │   │   ├── RangeUtils.cs
        │   │   ├── SubFingerprintGroupingCounter.cs
        │   │   ├── TestRunnerConfig.cs
        │   │   ├── TestRunner.cs
        │   │   ├── TestRunnerEventArgs.cs
        │   │   ├── TestRunnerOngoingEventArgs.cs
        │   │   ├── TestRunnerScenarioValidator.cs
        │   │   ├── TestRunnerUtils.cs
        │   │   ├── TestRunnerWriter.cs
        │   │   ├── TestScenariousValidationResult.cs
        │   │   └── TinyFingerprintSchema.cs
        │   ├── Video
        │   │   ├── IVideoService.cs
        │   │   └── VideoTrackReadConfiguration.cs
        │   ├── Wavelets
        │   │   ├── IWaveletDecomposition.cs
        │   │   └── StandardHaarWaveletDecomposition.cs
        │   └── Windows
        │       ├── HanningWindow.cs
        │       └── IWindowFunction.cs
        ├── SoundFingerprinting.Audio.NAudio
        │   ├── BlockingQueueSamplesProvider.cs
        │   ├── INAudioFactory.cs
        │   ├── INAudioSourceReader.cs
        │   ├── NAudioFactory.cs
        │   ├── NAudioSamplesProviderAdapter.cs
        │   ├── NAudioService.cs
        │   ├── NAudioSoundCaptureService.cs
        │   ├── NAudioSourceReader.cs
        │   ├── NAudioStreamingUrlReader.cs
        │   ├── NAudioTagService.cs
        │   ├── NAudioWaveFileUtility.cs
        │   ├── Play
        │   │   ├── INAudioPlayAudioFactory.cs
        │   │   ├── NAudioPlayAudioFactory.cs
        │   │   └── NAudioPlayAudioFileService.cs
        │   ├── PlayFileAttributes.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── SoundFingerprinting.Audio.NAudio.csproj
        ├── SoundFingerprinting.Audio.NAudio.Test
        │   ├── BlockingQueueSamplesProviderTest.cs
        │   ├── NAudioSamplesProviderAdapterTest.cs
        │   ├── NAudioServiceTest.cs
        │   ├── NAudioSoundCaptureServiceTest.cs
        │   ├── NAudioStreamUrlReaderTest.cs
        │   ├── NAudioWaveFileUtilityTest.cs
        │   ├── Play
        │   │   ├── NAudioPlayAudioFileServiceTest.cs
        │   │   └── TestWaveStream.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── SoundFingerprinting.Audio.NAudio.Test.csproj
        ├── SoundFingerprinting.sln
        ├── SoundFingerprinting.Tests
        │   ├── AbstractTest.cs
        │   ├── Integration
        │   │   ├── FingerprintCommandBuilderIntTest.cs
        │   │   ├── InMemoryModelServiceSerializationTest.cs
        │   │   ├── InMemoryModelServiceTest.cs
        │   │   ├── IntegrationWithSampleFilesTest.cs
        │   │   ├── SoundFingerprintingAudioServiceIntTest.cs
        │   │   ├── TestRunnerTest.cs
        │   │   └── WaveFormatTest.cs
        │   ├── NLog.config
        │   ├── NLog.xsd
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── SoundFingerprinting.Tests.csproj
        │   ├── TestEnvironment
        │   │   ├── chopinsamples.bin
        │   │   └── chopin_short.wav
        │   ├── TestUtilities.cs
        │   └── Unit
        │       ├── Audio
        │       │   ├── QueueSamplesProvider.cs
        │       │   ├── RealtimeAudioSamplesAggregatorTest.cs
        │       │   ├── SamplesAggregatorTest.cs
        │       │   ├── StrideTest.cs
        │       │   └── TagInfoTest.cs
        │       ├── Builder
        │       │   ├── FingerprintCommandBuilderTest.cs
        │       │   ├── QueryCommandBenchmark.cs
        │       │   └── QueryCommandBuilderTest.cs
        │       ├── Configuration
        │       │   ├── MetaFieldsFilterTest.cs
        │       │   ├── QueryConfigurationTest.cs
        │       │   └── SpectrogramConfigTest.cs
        │       ├── Content
        │       │   ├── AudioTrackTest.cs
        │       │   └── VideoTrackTest.cs
        │       ├── DAO
        │       │   ├── CompoundModelReferenceTest.cs
        │       │   ├── Data
        │       │   │   ├── FingerprintDataTest.cs
        │       │   │   ├── SpectralImageDataTest.cs
        │       │   │   ├── SubFingerprintDataTest.cs
        │       │   │   └── TrackDataTest.cs
        │       │   └── UIntModelReferenceTrackerTest.cs
        │       ├── Data
        │       │   └── HashesTest.cs
        │       ├── FFT
        │       │   ├── LogUtilityTest.cs
        │       │   ├── LomontFFTTest.cs
        │       │   ├── SpectrumServiceOctaveTest.cs
        │       │   └── SpectrumServiceTest.cs
        │       ├── FingerprintServiceTest.cs
        │       ├── Image
        │       │   └── ImageServiceTest.cs
        │       ├── InMemory
        │       │   ├── ProtoSerializerTest.cs
        │       │   └── RAMStorageTest.cs
        │       ├── LCS
        │       │   ├── CoverageEstimatorTest.cs
        │       │   ├── CoverageTest.cs
        │       │   ├── MatchedWithExtensionsTest.cs
        │       │   ├── QueryCoverageCalculatorTest.cs
        │       │   └── QueryPathReconstructionStrategyTest.cs
        │       ├── LSH
        │       │   └── LocalitySensitiveHashingAlgorithmTest.cs
        │       ├── Math
        │       │   ├── FScoreTest.cs
        │       │   ├── HammingDistanceResultStatisticsTest.cs
        │       │   ├── HashConverterTest.cs
        │       │   └── SimilarityUtilityTest.cs
        │       ├── MinHash
        │       │   ├── MinHashAlgorithmTest.cs
        │       │   └── MinHashServiceTest.cs
        │       ├── ModelServiceInfoTest.cs
        │       ├── Query
        │       │   ├── AVResultEntryCompletionStrategyTest.cs
        │       │   ├── ConfidenceCalculatorTest.cs
        │       │   ├── GapTest.cs
        │       │   ├── OfflineStorage.cs
        │       │   ├── QueryCommandTest.cs
        │       │   ├── QueryMathTest.cs
        │       │   ├── RealtimeQueryCommandTest.cs
        │       │   ├── ResultEntryCompletionStrategyTest.cs
        │       │   ├── ResultEntryConcatenatorTest.cs
        │       │   └── StatefulRealtimeResultEntryAggregatorTest.cs
        │       ├── Utils
        │       │   ├── AbsComparatorTest.cs
        │       │   ├── ArrayUtilsTest.cs
        │       │   ├── AvQueryMatchSplitStrategyTest.cs
        │       │   ├── FastFingerprintDescriptorTest.cs
        │       │   ├── FingerprintDescriptorBenchmark.cs
        │       │   ├── FingerprintDescriptorTest.cs
        │       │   ├── QuickSelectAlgorithmTest.cs
        │       │   ├── SubFingerprintGroupingCounterTest.cs
        │       │   ├── TestRunnerScenarioValidatorTest.cs
        │       │   └── TestRunnerUtilsTest.cs
        │       ├── Wavelets
        │       │   └── StandardHaarWaveletDecompositionTest.cs
        │       └── Windows
        │           └── HanningWindowTest.cs
        └── stylecop.json

57 directories, 373 files

实例下载地址

纯C#编写的高效声音指纹算法(音频指纹技术)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警