This task is audio fingerprinting, also known as query by (exact but noisy) examples. Several companies have launched services based on such technology, including Shazam, Soundhound, Intonow, Viggle, etc. Though the technology has been around for years, there is no benchmark dataset for evaluation. This task is the first step toward building an extensive corpus for evaluating methodologies in audio fingerprinting.
10,000 songs (*.mp3) in the database, in which there is exact one song corresponding to each query. (That is, there is no out-of-vocabulary query in the query set.) 965 of the files are from GTZAN data set, all the others are mainly English and Chinese pop songs. This data set is hidden and not available for download. (Note that there are possibly different numbers of channels (mono and stereo), sampling rates, and bit resolutions for these files.)
The GTZAN data set were purified according to . Exact repetitions were considered by the following principles:
- If none of the songs in a repetition set has corresponding queries, then nothing is removed from the database.
- If one of the songs in a repetition set has corresponding queries, then all the other songs (which have no corresponding queries) were removed from the database.
- If two or more of the songs in a repetition set has corresponding queries, then only one song (which has corresponding queries) was kept in the database. Note that if a query clip corresponds to a removed song, then the query's ground truth is modified to the kept song.
Processed songs are listed in the appendix part of this page.
The query set has two parts:
- 4630 clips of wav format: These are hidden and not available for download
- 1062 clips of wav format: These recordings are noisy versions of George's music genre dataset. You can download the query set via this link
All the query set is mono recordings of 8-12 sec, with 44.1 KHz sampling rate and 16-bit resolution. The set was obtained via different brands of smartphones, at various locations with various kinds of environmental noise.
The evaluation is based on the query set (two parts), with top-1 hit rate being the performance index.
Participants are required to submit a breakdown version of the algorithm, which includes the following two parts:
1. Database Builder
builder %file_list_for_db% %dir_for_db%
where %file_list_for_db% is a file containing the input list of database audio files, with name convention as uniqueKey.mp3. For example:
./AFP/database/000001.mp3 ./AFP/database/000002.mp3 ./AFP/database/000003.mp3 ./AFP/database/000004.mp3 ...
The output file(s), which containing all the information of the database to be used for audio fingerprinting, should be placed into the directory %dir_for_db%. The total size of the database file(s) is restricted to a certain amount, as explained next.
matcher %file_list_for_query% %dir_for_db% %result_file%
where %file_list_for_query% is a file containing the list of query clips. For example:
./AFP/query/q000001.wav ./AFP/query/q000002.wav ./AFP/query/q000003.wav ./AFP/query/q000004.wav ...
The result file gives retrieved result for each query, with the format:
where these two fields are separated by a tab. Here is a more specific example:
./AFP/query/q000001.wav ./AFP/database/0000004.mp3 ./AFP/query/q000002.wav ./AFP/database/0000054.mp3 ./AFP/query/q000003.wav ./AFP/database/0001002.mp3 ..
Time and hardware limits
Due to the fact that more features extracted for AFP almost always lead to better accuracy, we need to put hard limits on runtime and storage. (The limits of runtime and storage also put a limit of memory usage implicitly.) The time/storage limits of different steps are shown in the following table:
|Steps||Time limit||Storage limit|
|builder||24 hours||50KB for 1 minute of music. Assuming that the duration is 4 mins in average, then the total storage for 10,000 songs should be around 50*10000*4/1000000 = 2GB.|
Submissions that exceed these limitations may not receive a result.
- We will run participants' submissions on Linux without Matlab. C/Python source or executable are most welcome.
- To run multiple submissions in the same time conveniently, writing temporary files in directories of database audio files (i.e. paths in %file_list_for_db%) is not allowed. Please write temporary files (like *.wav files or any other intermediate formats) only in ./tmp or ./temp . Note that if any file is required by matcher and is produced (written, copied, and so on) by builder, then it is considered as part of database and should be putted in %dir_for_db%.
- Please check the existence of folders (%dir_for_db%, ./tmp, and ./temp) in the builder before reading any audio. If any of the intended folders do not exist, please create them automatically.
- Existence of ending slash of %dir_for_db% is not guaranteed. That is, it may be given as "db" or "db/".
- ffmpeg is available on the system but the version is not guaranteed. If a certain version is needed, please include it within the submission and use something like "./ffmpeg" to call it.
- Sampling rate of query files is 44.1 KHz, other formats like 8 KHz will not be provided.
- Actually some out-of-vocabulary queries are listed in the %query_file_path%, but only those who have correspond song in the database (i.e. 5692 of them) are considered while computing the accuracy. Besides, since we will used a very small set to test participants' submissions before running on the whole set, participants are encouraged to output something in %result_file% even if queries are likely to be unseen.
- Participants will be asked to modify the submission if any of the above specifications are not followed.
name / email
 Bob L. Sturm, ``The State of the Art Ten Years After a State of the Art: Future Research in Music Information Retrieval, J. New Music Research, vol. 43, no. 2, pp. 147–172, 2014.
 Faults in the GTZAN Music Genre Dataset, available at http://imi.aau.dk/~bst/research/GTZANtable2/ , 2014.
1. Processed songs in the GTZAN dataset
Processed songs of each genre are listed below, where the first identifier means the kept song, and the following ones mean the removed songs:
- Disco 50, 51, 70
- Disco 55, 60, 89
- Disco 71, 74
- Hiphop 39, 45
- Jazz 34, 53
- Jazz 35, 55
- Jazz 37, 60
- Jazz 39, 65
- Jazz 40, 67
- Jazz 43, 69
- Jazz 44, 70
- Jazz 45, 71
- Metal 4, 13
- Metal 34, 94
- Metal 40, 61
- Metal 43, 64
- Metal 44, 65
- Metal 45, 66
- Pop 15, 22
- Pop 45, 46
- Pop 47, 80
- Pop 54, 60
- Pop 56, 59
- Reggae 3, 54
- Reggae 5, 56
- Reggae 10, 60
- Reggae 13, 58
- Reggae 41, 69
- Reggae 73, 74
- Reggae 80, 81, 82
- Reggae 75, 91, 92