pyannote / pyannote-db-voxceleb

VoxCeleb plugin for pyannote.database
http://github.com/pyannote/pyannote-database
Other
28 stars 9 forks source link

Download Link to audio data #4

Closed manuelhuber closed 5 years ago

manuelhuber commented 6 years ago

Hello,

maybe I'm missing the obvious, but exactly which data set is this? I downloaded http://www.robots.ox.ac.uk/~vgg/data/voxceleb/vox1.html and besides the folder structure being different than what this plugin expects (actual folder names are IDs like "id10690" but this plugin expects speaker names as folders) the plugin also expects files that are not part of Vox1. For example is the speaker "Eartha_Kitt" not included in Vox1 but expected by this plugin.

Where exactly can I find the files for this DB plugin?

hbredin commented 6 years ago

Apparently, the folder structure has changed when they released VoxCeleb2. "Eartha_Kitt" was initially included in the data I downloaded.

I'd be happy to merge a pull request updating the plugin with:

diego-fustes commented 5 years ago

Hi guys,

I am experiencing the same problem as @manuelhuber, so I've decided to move forward and implement the parser for the new folder structure. At the moment I've implemented a new version of the notebook to create voxceleb1.csv and voxceleb1.verification.tst.csv. Thus, it remains voxceleb1.verification.dev.csv, but I am not sure on how to build it. From the documentation, I understand that it contains pairs of trials for the speakers with names with initials U, V or W, but which pairs are included? All pairs of segments from those speakers?

hbredin commented 5 years ago

Have a look at the develop branch of the repo... Most (if not all) protocols (including the ones from VoxCeleb2 paper) have already been updated. I just haven't had enough time to test them completely. I'd be happy to get some feedback from you guys before doing a proper release...

diego-fustes commented 5 years ago

Oh! ok, I had naively assumed that there was no development on that... I'm testing the develop branch. I've found this issue. Could you solve it? I can send a pull request...

hbredin commented 5 years ago

The fix is available in pyannote.database 1.5.2

diego-fustes commented 5 years ago

Ok, after applying the fix, there is another issue when launching feature extraction:

Trial (test set): 0it [00:00, ?it/s]Traceback (most recent call last): File "/mnt/data/software/anaconda3/envs/pyannote/bin/pyannote-speech-feature", line 11, in <module> load_entry_point('pyannote.audio', 'console_scripts', 'pyannote-speech-feature')() File "/mnt/data2/speech/pyannote-audio/pyannote/audio/applications/feature_extraction.py", line 284, in main robust=robust, parallel=parallel) File "/mnt/data2/speech/pyannote-audio/pyannote/audio/applications/feature_extraction.py", line 222, in extract protocol, extra_keys=['audio'])): File "/mnt/data2/speech/pyannote-database/pyannote/database/util.py", line 173, in protocol_file_iter uri = get_unique_identifier(current_file_) File "/mnt/data2/speech/pyannote-database/pyannote/database/util.py", line 338, in get_unique_identifier return IDENTIFIER.format(**item) KeyError: 'uri'

The test trial object do not have such property as it's a composition of two files... How to solve it?

hbredin commented 5 years ago

I haven't been playing with pyannote-speech-feature for a long time as I am now mostly doing on-the-fly feature extraction (because I use data augmentation and therefore cannot precompute features) -- and therefore I never encountered this issue when playing with this new VoxCeleb plugin.

I guess one needs to update pyannote.database.FileFinder.current_file_iter to also support this kind of composition. For now, it only supports

Not sure I have time to work on this in the short term, though...

hbredin commented 5 years ago

I just had a quick look at this issue.

Looks like protocol.development(), protocol.test(), and protocol.train() are iterated before protocol.test_trial(): https://github.com/pyannote/pyannote-database/blob/0a740a30681509bfec03573cd94eca12ce8e3e8c/pyannote/database/util.py#L144-L150

Therefore, all VoxCeleb files are processed, even though an error is raised at the end. So this bug should not prevent you from going further and train your model. Does it?

With that observation in mind, I think an easiest solution would be to update FileFinder.protocol_file_iter to skip entries that do not contain a "uri" key. I will try to release today a new version of pyannote.database with that workaround.

hbredin commented 5 years ago

pyannote.database 1.5.4 should do it...

diego-fustes commented 5 years ago

Indeed, I've been able to train the model in spite of this error. On the other hand, there is another issue with the test trials (develop branch). The method xxx_try_iter returns two file identifiers but the database field is missing. Could you fix it directly? I can send a pull request otherwise

hbredin commented 5 years ago

Please do.

diego-fustes commented 5 years ago

Sure: https://github.com/pyannote/pyannote-db-voxceleb/pull/5

hbredin commented 5 years ago

Thanks. Does this mean that all the issues you encountered using this plugin are now solved?

hbredin commented 5 years ago

If so, I'll release it.

diego-fustes commented 5 years ago

I think so yes. I've tested only VoxCeleb1 for SpeakerVerification. I'm planning to do it for VoxCeleb2, but I don't know when

diego-fustes commented 5 years ago

One more thing, by using the tool, I've missed a "test" option in the applications, which would do the same as a "apply" but would also compute a set of standard metrics. Do you think that this would be a good addition to the framework?

hbredin commented 5 years ago

Could you please open a new issue regarding this new feature? I believe this now has nothing to do with the original issue...

diego-fustes commented 5 years ago

Sure, this one

hbredin commented 5 years ago

Version 1.0 refers to latest version of VoxCeleb