Hi,
I am now using a customized timit database of my own.
I named it /protocols/timit/3
I have made a very simple test and created a UBM of 12 files. (protocols/timit/3/norm/train_world.lst)
in /protocols/timit/3/dev I have:
$ wc -l *.lst
1 for_models.lst
2 for_probes.lst
2 for_znorm.lst
$ cat for_models.lst
/drive2/audio/babgko 30002 30002$ cat for_probes.lst
/drive2/audio/tdubeo 30002
/drive2/audio/tcpkph 30002
$ cat for_znorm.lst
/drive2/audio/tdubeo 30002
/drive2/audio/tcpkph 30002
in /protocols/timit/3/eval, I have:
$ cat for_models.lst
/drive2/audio/babgko 30002 30002
$ cat for_probes.lst
/drive2/audio/tdubeo 30002
/drive2/audio/tcpkph 30002
$ cat for_znorm.lst
/drive2/audio/tdubeo 30002
/drive2/audio/tcpkph 30002
my timit.py (config/database/timit.py) is very simple:
$ more config/database/timit.py
#!/usr/bin/env python
import xbob.db.verification.filelist
# 0/ The database to use
name = 'timit'
db = xbob.db.verification.filelist.Database('protocols/timit/3/')
protocol = None
# directory where the wave files are stored
wav_input_dir = "/drive2/audio/"
wav_input_ext = ".wav" # default extension
However when I run my script here, it crashes:
# go
USRDIR=/home/user/bobspear117/bob.spear-1.1.7/tim1
TMPDIR=/home/user/bobspear117/bob.spear-1.1.7/tim1
# scores end up under $USRDIR
# corpora built by TestEngineBob.py
# using custom Timit.py corpora
./bin/spkverif_gmm.py -d config/database/timit.py -p config/preprocessing/energy.py \
-f config/features/mfcc_60.py -t config/tools/ubm_gmm/ubm_gmm_256G.py -b ubgm -z \
--user-directory $USRDIR --temp-directory $TMPDIR
This is the output from the run of the script: it ends with a crash. What do I need to do to make it work?
Perform a custom timit test
No handlers could be found for logger "bob.c++"
file[config/database/timit.py]
function[database]
config: <module 'database' from 'config/database/timit.py'>
file[config/tools/ubm_gmm/ubm_gmm_256G.py]
function[tool_chain]
config: <module 'tool_chain' from 'config/tools/ubm_gmm/ubm_gmm_256G.pyc'>
file[config/preprocessing/energy.py]
function[preprocessor]
config: <module 'preprocessor' from 'config/preprocessing/energy.pyc'>
file[config/features/mfcc_60.py]
function[feature_extractor]
config: <module 'feature_extractor' from 'config/features/mfcc_60.pyc'>
preprocess 15 wave from directory /drive2/audio/ to directory /home/user/bobspear117/bob.spear-1.1.7/tim1/ubm_gmm/preprocessed
Input wave file: /drive2/audio/ltcpnh.wav
After Energy-based VAD there are 652 frames remaining over 1043
Input wave file: /drive2/audio/meqdho.wav
After Energy-based VAD there are 8328 frames remaining over 30056
Input wave file: /drive2/audio/mljlxo.wav
After Energy-based VAD there are 14681 frames remaining over 30392
Input wave file: /drive2/audio/sidgio.wav
After Energy-based VAD there are 18641 frames remaining over 30629
Input wave file: /drive2/audio/sluiuo.wav
After Energy-based VAD there are 15394 frames remaining over 30168
Input wave file: /drive2/audio/sprxbo.wav
After Energy-based VAD there are 6929 frames remaining over 29995
Input wave file: /drive2/audio/teomrh.wav
After Energy-based VAD there are 16667 frames remaining over 30360
Input wave file: /drive2/audio/tgpcso.wav
After Energy-based VAD there are 22618 frames remaining over 30222
Input wave file: /drive2/audio/tsmwyh.wav
After Energy-based VAD there are 16765 frames remaining over 30216
Input wave file: /drive2/audio/txtdxo.wav
After Energy-based VAD there are 16303 frames remaining over 30425
extract 15 features from wav directory /drive2/audio/ to directory /home/user/bobspear117/bob.spear-1.1.7/tim1/ubm_gmm/features
Training Projector '/home/user/bobspear117/bob.spear-1.1.7/tim1/ubm_gmm/Projector.hdf5' using 12 training files:
Traceback (most recent call last):
File "./bin/spkverif_gmm.py", line 21, in <module>
sys.exit(spear.script.spkverif_isv.main())
File "/home/user/bobspear117/bob.spear-1.1.7/spear/script/spkverif_isv.py", line 492, in main
speaker_verify(args)
File "/home/user/bobspear117/bob.spear-1.1.7/spear/script/spkverif_isv.py", line 460, in speaker_verify
executor.execute_tool_chain()
File "/home/user/bobspear117/bob.spear-1.1.7/spear/script/spkverif_isv.py", line 85, in execute_tool_chain
self.m_tool_chain.train_projector(self.m_tool, force = self.m_args.force)
File "/home/user/bobspear117/bob.spear-1.1.7/spear/toolchain/ToolChain.py", line 257, in train_projector
tool.train_projector(train_features, str(projector_file))
File "/usr/lib/python2.7/site-packages/facereclib-1.2.3-py2.7.egg/facereclib/tools/UBMGMM.py", line 190, in train_projector
array = numpy.vstack(train_features)
File "/usr/lib64/python2.7/site-packages/numpy/core/shape_base.py", line 226, in vstack
return _nx.concatenate(map(atleast_2d,tup),0)
ValueError: need at least one array to concatenate