From a7f77d50ff93eb2b06c536e21be27376e542568b Mon Sep 17 00:00:00 2001 From: Will Drevo Date: Thu, 3 Jul 2014 01:01:56 -0400 Subject: [PATCH] Added more documentation in README about testing --- README.md | 6 ++++++ example.py | 7 ++++--- plots/confidence.png | Bin 0 -> 33289 bytes plots/matching_graph.png | Bin 0 -> 32240 bytes 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 plots/confidence.png create mode 100644 plots/matching_graph.png diff --git a/README.md b/README.md index 11e3fb4..44c3c63 100755 --- a/README.md +++ b/README.md @@ -124,6 +124,10 @@ Or by reading files via scripting functions: ## Testing (New!) +Testing out different parameterizations of the fingerprinting algorithm is often useful as the curpus becomes larger and larger, and inevitable tradeoffs between speed and accuracy come into play. + +![Confidence](plots/confidence.png) + Test your Dejavu settings on a corpus of audio files on a number of different metrics: * Confidence of match (number fingerprints aligned) @@ -131,6 +135,8 @@ Test your Dejavu settings on a corpus of audio files on a number of different me * Song matching accuracy * Time to match +![Accuracy](plots/matching_graph.png) + An example script is given in `test_dejavu.sh`, shown below: ```bash diff --git a/example.py b/example.py index 0268a03..e2769cb 100755 --- a/example.py +++ b/example.py @@ -4,17 +4,18 @@ import json warnings.filterwarnings("ignore") # load config from a JSON file (or anything outputting a python dictionary) -with open("dejavu.cnf") as f: +with open("dejavu.cnf.SAMPLE") as f: config = json.load(f) # create a Dejavu instance djv = Dejavu(config) + # Fingerprint all the mp3's in the directory we give it djv.fingerprint_directory("mp3", [".mp3"]) # Recognize audio from a file from dejavu.recognize import FileRecognizer -song = djv.recognize(FileRecognizer, "mp3/beware.mp3") +song = djv.recognize(FileRecognizer, "mp3/Sean-Fournier--Falling-For-You.mp3") # Or recognize audio from your microphone for 10 seconds from dejavu.recognize import MicrophoneRecognizer @@ -23,4 +24,4 @@ song = djv.recognize(MicrophoneRecognizer, seconds=2) # Or use a recognizer without the shortcut, in anyway you would like from dejavu.recognize import FileRecognizer recognizer = FileRecognizer(djv) -song = recognizer.recognize_file("mp3/sail.mp3") \ No newline at end of file +song = recognizer.recognize_file("mp3/Josh-Woodward--I-Want-To-Destroy-Something-Beautiful.mp3") \ No newline at end of file diff --git a/plots/confidence.png b/plots/confidence.png new file mode 100644 index 0000000000000000000000000000000000000000..33db2b2c48308c15faeb5268bb6bf40c308135a1 GIT binary patch literal 33289 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 G(SHHN3=Uxc literal 0 HcmV?d00001 diff --git a/plots/matching_graph.png b/plots/matching_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..308126ec665395641906b011d403f353f846f6aa GIT binary patch literal 32240 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 j{|@AT&K>ddp|oL-a1GqS-+{Mo&Qn%Um%p~t