Closed manuelhuber closed 5 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:
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?
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...
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...
The fix is available in pyannote.database 1.5.2
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?
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
"uri"
field (i.e. a string) "uri"
field containing a list of stringNot sure I have time to work on this in the short term, though...
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.
pyannote.database 1.5.4 should do it...
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
Please do.
Thanks. Does this mean that all the issues you encountered using this plugin are now solved?
If so, I'll release it.
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
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?
Could you please open a new issue regarding this new feature? I believe this now has nothing to do with the original issue...
Sure, this one
Version 1.0 refers to latest version of VoxCeleb
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?