1

UBM.EM_Split()関数を実行しようとしています。24 個のオーディオ ファイルの機能を格納する機能ファイルfeat.h5 (3.8 MB) を作成しました。この機能ファイルを関数の feature_list 引数の入力として使用しようとしました。ただし、コードは 72 時間以上実行されており、出力も応答もありません。よく調べてみると、コードが凍結されているコード行は次のとおりです。

# Wait for all the tasks to finish
        queue_in.join()

私が使用したコードは次のとおりです (サイドキット Web サイトの UBM チュートリアルに基づいています)。

import sidekit
import os

#Read all the files in the directory
all_files = os.listdir("D:/DatabaseFiles/Sidekit/")

extractor = sidekit.FeaturesExtractor(audio_filename_structure="D:/DatabaseFiles/Sidekit/{}",
                                      feature_filename_structure="D:/Sidekit/Trial/feat.h5",
                                      sampling_frequency=16000,
                                      lower_frequency=200,
                                      higher_frequency=3800,
                                      filter_bank="log",
                                      filter_bank_size=24,
                                      window_size=0.04,
                                      shift=0.01,
                                      ceps_number=20,
                                      vad="snr",
                                      snr=40,
                                      pre_emphasis=0.97,
                                      save_param=["vad", "energy", "cep", "fb"],
                                      keep_all_features=True)

#To iterate through a whole list
for x in all_files:
    extractor.save(x)

server = sidekit.FeaturesServer(feature_filename_structure="D:/Sidekit/Trial/feat.h5",
                                sources=None,
                                dataset_list=["vad", "energy", "cep", "fb"],
                                feat_norm="cmvn",
                                global_cmvn=None,
                                dct_pca=False,
                                dct_pca_config=None,
                                sdc=False,
                                sdc_config=None,
                                delta=True,
                                double_delta=True,
                                delta_filter=None,
                                context=None,
                                traps_dct_nb=None,
                                rasta=True,
                               keep_all_features=True)

ubm = sidekit.Mixture()

ubm.EM_split(features_server=server,
             feature_list="D:/Sidekit/Trial/feat.h5",
             distrib_nb=32,
             iterations=(1, 2, 2, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8),
             num_thread=10,
             save_partial=True,
             ceil_cov=10,
             floor_cov=1e-2
             )

経験豊富なユーザー ( feature_list = all_files )から受け取った提案に基づいて、次の関数呼び出しも試しました。しかし、それでも問題は解決しませんでした。

ubm.EM_split(features_server=server,
             feature_list=all_files,
             distrib_nb=32,
             iterations=(1, 2, 2, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8),
             num_thread=10,
             save_partial=True,
             ceil_cov=10,
             floor_cov=1e-2
             )

Windows 環境と Linux 環境の両方で同じ問題が発生しました。どちらのシステムにも 32 GB の RAM があり、mpi は true に設定されています。

私が間違っていることを知っていますか?24 のオーディオ ファイル (feat.h5 は 3.8 MB) の機能を備えた h5 ファイルに、これほどの時間がかかるでしょうか?

4

1 に答える 1