语音识别实验在训练期间崩溃

时间:2014-12-09 21:58:16

标签: machine-learning signal-processing voice-recognition python-bob

我正在尝试使用bob.spear进行演讲者验证实验。

我遇到一个问题,即在训练白化登记者时矛会崩溃。

系统规范:

我在Ubuntu 12.04上,按照网站上的指示安装了矛(即首先添加了bob 1.x存储库,安装了bob,bob-dev,sox,sox-dev包加上依赖项,下载了spear并用它构建了它附加件)。

协定:

我更改了protocol / mobio / mobile0-female文件夹中的文件列表,并创建了类似的配置。 我已将此文件列表和dev / eval / norm文件夹添加到此消息中。

我尝试修复问题的步骤:

  1. 重新安装liblapack(在ubuntu中是liblapack-dev liblapack3g和其他一些我忘记的包)
  2. 重新安装bob.spear并在不同的计算机上运行实验
  3. 将我的wav文件下采样到16k
  4. 确保for_models.lst,for_probes.lst中的dev和eval之间没有重复(虽然这只是为了尝试模仿mobio的竞争文件)
  5. 确保所有文件列表格式正确
  6. 错误日志:

    ~/bob.spear-1.1.7$ ./bin/spkverif_ivector.py -d config/database/my_database.py -p config/preprocessing/energy.py -f config/features/mfcc_60.py -t config/tools/ivec/ivec_8g_t50.py -z -b ivector_plda  --user-directory results --temp-directory temp
    preprocess 23 wave from directory /home/lioruzan/snd_test/ to directory temp/ivector_plda/preprocessed
    Input wave file: /home/lioruzan/snd_test/158.wav
    No handlers could be found for logger "bob.c++"
    After Energy-based VAD there are 142 frames remaining over 231
    Input wave file: /home/lioruzan/snd_test/162.wav
    After Energy-based VAD there are 168 frames remaining over 306
    Input wave file: /home/lioruzan/snd_test/164.wav
    After Energy-based VAD there are 208 frames remaining over 293
    Input wave file: /home/lioruzan/snd_test/238.wav
    After Energy-based VAD there are 88 frames remaining over 140
    Input wave file: /home/lioruzan/snd_test/257.wav
    After Energy-based VAD there are 236 frames remaining over 335
    Input wave file: /home/lioruzan/snd_test/282.wav
    After Energy-based VAD there are 145 frames remaining over 218
    Input wave file: /home/lioruzan/snd_test/283.wav
    After Energy-based VAD there are 148 frames remaining over 268
    Input wave file: /home/lioruzan/snd_test/284.wav
    After Energy-based VAD there are 292 frames remaining over 383
    Input wave file: /home/lioruzan/snd_test/314.wav
    After Energy-based VAD there are 231 frames remaining over 248
    Input wave file: /home/lioruzan/snd_test/315.wav
    After Energy-based VAD there are 165 frames remaining over 270
    Input wave file: /home/lioruzan/snd_test/337.wav
    After Energy-based VAD there are 188 frames remaining over 210
    Input wave file: /home/lioruzan/snd_test/339.wav
    After Energy-based VAD there are 80 frames remaining over 180
    Input wave file: /home/lioruzan/snd_test/34.wav
    After Energy-based VAD there are 68 frames remaining over 125
    Input wave file: /home/lioruzan/snd_test/342.wav
    After Energy-based VAD there are 82 frames remaining over 213
    Input wave file: /home/lioruzan/snd_test/35.wav
    After Energy-based VAD there are 140 frames remaining over 315
    Input wave file: /home/lioruzan/snd_test/37.wav
    After Energy-based VAD there are 83 frames remaining over 145
    Input wave file: /home/lioruzan/snd_test/39.wav
    After Energy-based VAD there are 127 frames remaining over 258
    Input wave file: /home/lioruzan/snd_test/43.wav
    After Energy-based VAD there are 131 frames remaining over 245
    Input wave file: /home/lioruzan/snd_test/47.wav
    After Energy-based VAD there are 62 frames remaining over 108
    Input wave file: /home/lioruzan/snd_test/48.wav
    After Energy-based VAD there are 128 frames remaining over 158
    Input wave file: /home/lioruzan/snd_test/84.wav
    After Energy-based VAD there are 167 frames remaining over 304
    Input wave file: /home/lioruzan/snd_test/85.wav
    After Energy-based VAD there are 144 frames remaining over 165
    Input wave file: /home/lioruzan/snd_test/9.wav
    After Energy-based VAD there are 236 frames remaining over 325
    extract 23 features from wav directory /home/lioruzan/snd_test/ to directory temp/ivector_plda/features
    Input wave file : /home/lioruzan/snd_test/158.wav
    Input wave file : /home/lioruzan/snd_test/162.wav
    Input wave file : /home/lioruzan/snd_test/164.wav
    Input wave file : /home/lioruzan/snd_test/238.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/238.hdf5
    Input wave file : /home/lioruzan/snd_test/257.wav
    Input wave file : /home/lioruzan/snd_test/282.wav
    Input wave file : /home/lioruzan/snd_test/283.wav
    Input wave file : /home/lioruzan/snd_test/284.wav
    Input wave file : /home/lioruzan/snd_test/314.wav
    Input wave file : /home/lioruzan/snd_test/315.wav
    Input wave file : /home/lioruzan/snd_test/337.wav
    Input wave file : /home/lioruzan/snd_test/339.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/339.hdf5
    Input wave file : /home/lioruzan/snd_test/34.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/34.hdf5
    Input wave file : /home/lioruzan/snd_test/342.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/342.hdf5
    Input wave file : /home/lioruzan/snd_test/35.wav
    Input wave file : /home/lioruzan/snd_test/37.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/37.hdf5
    Input wave file : /home/lioruzan/snd_test/39.wav
    Input wave file : /home/lioruzan/snd_test/43.wav
    Input wave file : /home/lioruzan/snd_test/47.wav
    Warning: something's wrong with the features: temp/ivector_plda/features/47.hdf5
    Input wave file : /home/lioruzan/snd_test/48.wav
    Input wave file : /home/lioruzan/snd_test/84.wav
    Input wave file : /home/lioruzan/snd_test/85.wav
    Input wave file : /home/lioruzan/snd_test/9.wav
    Training Projector 'temp/ivector_plda/Projector.hdf5' using 3 training files: 
    bob.c++@2014-12-09 22:47:52,247 -- INFO: # KMeansTrainer:
    bob.c++@2014-12-09 22:47:52,248 -- INFO: # Iteration 1: 72.976 -> 51.3793
    bob.c++@2014-12-09 22:47:52,249 -- INFO: # Iteration 2: 51.3793 -> 50.0718
    bob.c++@2014-12-09 22:47:52,249 -- INFO: # Iteration 3: 50.0718 -> 49.4193
    bob.c++@2014-12-09 22:47:52,250 -- INFO: # Iteration 4: 49.4193 -> 49.0583
    bob.c++@2014-12-09 22:47:52,250 -- INFO: # Iteration 5: 49.0583 -> 48.8668
    bob.c++@2014-12-09 22:47:52,251 -- INFO: # Iteration 6: 48.8668 -> 48.7754
    bob.c++@2014-12-09 22:47:52,251 -- INFO: # Iteration 7: 48.7754 -> 48.7553
    bob.c++@2014-12-09 22:47:52,252 -- INFO: # Iteration 8: 48.7553 -> 48.7513
    bob.c++@2014-12-09 22:47:52,252 -- INFO: # EM terminated: likelihood converged
    bob.c++@2014-12-09 22:47:52,254 -- INFO: # EMTrainer:
    bob.c++@2014-12-09 22:47:52,257 -- INFO: # Iteration 1: -78.1429 -> -77.8048
    bob.c++@2014-12-09 22:47:52,259 -- INFO: # Iteration 2: -77.8048 -> -77.4963
    bob.c++@2014-12-09 22:47:52,261 -- INFO: # Iteration 3: -77.4963 -> -77.2019
    bob.c++@2014-12-09 22:47:52,263 -- INFO: # Iteration 4: -77.2019 -> -77.009
    bob.c++@2014-12-09 22:47:52,265 -- INFO: # Iteration 5: -77.009 -> -76.7791
    bob.c++@2014-12-09 22:47:52,267 -- INFO: # Iteration 6: -76.7791 -> -76.7064
    bob.c++@2014-12-09 22:47:52,269 -- INFO: # Iteration 7: -76.7064 -> -76.6602
    bob.c++@2014-12-09 22:47:52,271 -- INFO: # Iteration 8: -76.6602 -> -76.6291
    bob.c++@2014-12-09 22:47:52,273 -- INFO: # Iteration 9: -76.6291 -> -76.6005
    bob.c++@2014-12-09 22:47:52,275 -- INFO: # Iteration 10: -76.6005 -> -76.598
    bob.c++@2014-12-09 22:47:52,275 -- INFO: # EM terminated: likelihood converged
    project 23 features from directory temp/ivector_plda/features to directory temp/ivector_plda/projected_ubm using UBM Projector
    Training Enroler 'temp/ivector_plda/Enroler.hdf5' using 1 identities: 
    bob.c++@2014-12-09 22:47:52,365 -- INFO: # EMTrainer:
    bob.c++@2014-12-09 22:47:52,376 -- INFO: # Iteration 1
    bob.c++@2014-12-09 22:47:52,382 -- INFO: # Iteration 2
    bob.c++@2014-12-09 22:47:52,388 -- INFO: # Iteration 3
    bob.c++@2014-12-09 22:47:52,394 -- INFO: # Iteration 4
    bob.c++@2014-12-09 22:47:52,400 -- INFO: # Iteration 5
    bob.c++@2014-12-09 22:47:52,406 -- INFO: # Iteration 6
    bob.c++@2014-12-09 22:47:52,412 -- INFO: # Iteration 7
    bob.c++@2014-12-09 22:47:52,418 -- INFO: # Iteration 8
    bob.c++@2014-12-09 22:47:52,424 -- INFO: # Iteration 9
    bob.c++@2014-12-09 22:47:52,430 -- INFO: # Iteration 10
    bob.c++@2014-12-09 22:47:52,437 -- INFO: # Iteration 11
    bob.c++@2014-12-09 22:47:52,443 -- INFO: # Iteration 12
    bob.c++@2014-12-09 22:47:52,449 -- INFO: # Iteration 13
    bob.c++@2014-12-09 22:47:52,455 -- INFO: # Iteration 14
    bob.c++@2014-12-09 22:47:52,461 -- INFO: # Iteration 15
    bob.c++@2014-12-09 22:47:52,467 -- INFO: # Iteration 16
    bob.c++@2014-12-09 22:47:52,473 -- INFO: # Iteration 17
    bob.c++@2014-12-09 22:47:52,479 -- INFO: # Iteration 18
    bob.c++@2014-12-09 22:47:52,485 -- INFO: # Iteration 19
    bob.c++@2014-12-09 22:47:52,491 -- INFO: # Iteration 20
    bob.c++@2014-12-09 22:47:52,497 -- INFO: # Iteration 21
    bob.c++@2014-12-09 22:47:52,503 -- INFO: # Iteration 22
    bob.c++@2014-12-09 22:47:52,509 -- INFO: # Iteration 23
    bob.c++@2014-12-09 22:47:52,514 -- INFO: # Iteration 24
    bob.c++@2014-12-09 22:47:52,520 -- INFO: # Iteration 25
    bob.c++@2014-12-09 22:47:52,520 -- INFO: # EM terminated: maximum number of iterations reached.
    project 23 features from directory temp/ivector_plda/projected_ubm to directory temp/ivector_plda/projected_ivector
    Training Enroler 'temp/ivector_plda/WhiteEnroler.hdf5' using 1 identities: 
    Traceback (most recent call last):
      File "./bin/spkverif_ivector.py", line 21, in <module>
        sys.exit(spear.script.spkverif_ivector.main())
      File "/home/lioruzan/bob.spear-1.1.7/spear/script/spkverif_ivector.py", line 728, in main
        speaker_verify(args)
      File "/home/lioruzan/bob.spear-1.1.7/spear/script/spkverif_ivector.py", line 696, in speaker_verify
        executor.execute_tool_chain()
      File "/home/lioruzan/bob.spear-1.1.7/spear/script/spkverif_ivector.py", line 107, in execute_tool_chain
        self.m_tool_chain.train_whitening_enroler(self.m_tool, dir_type='projected_ivector', force = self.m_args.force)
      File "/home/lioruzan/bob.spear-1.1.7/spear/toolchain/ToolChainIvector.py", line 86, in train_whitening_enroler
        tool.train_whitening_enroler(train_files, str(enroler_file))
      File "/home/lioruzan/bob.spear-1.1.7/spear/tools/IVector.py", line 115, in train_whitening_enroler
        t.train(self.whitening_machine, ivectors_matrix)
    RuntimeError: The LAPACK dpotrf function returned a non-zero value.
    

    任何人都知道可能是什么问题?请索取您可能需要的任何信息。

2 个答案:

答案 0 :(得分:1)

消息

 Warning: something's wrong with the features: temp/ivector_plda/features/339.hdf5

表示输入文件有问题。由于您没有共享文件,因此很难说出究竟是什么问题。可能的问题:

  1. 错误的采样率
  2. 频道数量错误
  3. 导致数值溢出的数据中的零能区
  4. 您需要查看创建警告的文件,并考虑它们可能出现的问题。

答案 1 :(得分:0)

我认为这是一个有用的信息: 信息:#EM终止:达到最大迭代次数。   文件&#34; /home/lioruzan/bob.spear-1.1.7/spear/script/spkverif_ivector.py" ;,第728行,主要

也许训练的迭代次数有限,你尝试做更多的事情然后才能处理。 查看您正在使用的应用程序的规范(文档)。应该写一些关于此的内容。

或者它应该是它允许的迭代次数的参数,或者它是硬编码的,你不能使用更多然后是预定义的。