diff --git a/common/setups/rasr/gmm_system.py b/common/setups/rasr/gmm_system.py index a24ef6a01..5c447cd01 100644 --- a/common/setups/rasr/gmm_system.py +++ b/common/setups/rasr/gmm_system.py @@ -1061,6 +1061,13 @@ def get_gmm_output( gmm_output.alignments = self.alignments[corpus_key][f"train_{steps.get_prev_gmm_step(step_idx)}"][-1] gmm_output.acoustic_mixtures = self.mixtures[corpus_key][f"train_{steps.get_prev_gmm_step(step_idx)}"][-1] + state_tying_job = allophones.DumpStateTyingJob(self.crp[corpus_key]) + self.jobs[corpus_key]["state_tying"] = state_tying_job + tk.register_output( + "final_{}_state_tying".format(corpus_key), + state_tying_job.out_state_tying, + ) + return gmm_output # -------------------- run functions -------------------- @@ -1237,6 +1244,23 @@ def run_vtln_sat_step(self, step_args): **step_args.sdm_args, ) + def run_forced_align_step(self, step_args): + train_corpus_keys = step_args.pop("train_corpus_keys", self.train_corpora) + target_corpus_keys = step_args.pop("target_corpus_keys") + bliss_lexicon = step_args.pop("bliss_lexicon", None) + for corpus in train_corpus_keys: + for trg_key in target_corpus_keys: + forced_align_trg_key = trg_key + "_forced-align" + self.add_overlay(trg_key, forced_align_trg_key) + if bliss_lexicon: + self._init_lexicon(forced_align_trg_key, **bliss_lexicon) + + self.forced_align( + target_corpus_key=forced_align_trg_key, + feature_scorer_corpus_key=corpus, + **step_args, + ) + def run_recognition_step( self, step_args, diff --git a/common/setups/rasr/rasr_system.py b/common/setups/rasr/rasr_system.py index 1dc8b41a9..b7bc057c2 100644 --- a/common/setups/rasr/rasr_system.py +++ b/common/setups/rasr/rasr_system.py @@ -354,8 +354,9 @@ def forced_align( :param name: :param target_corpus_key: :param flow: - :param feature_scorer: :param feature_scorer_corpus_key: + :param feature_scorer: + :param scorer_index: :param dump_alignment: :param kwargs: :return: @@ -374,10 +375,10 @@ def forced_align( **kwargs, ) - align_job = self.jobs[target_corpus_key]["alignment_%s" % name] - align_job.add_alias("forced_alignment/alignment_%s" % name) + align_job: mm.AlignmentJob = self.jobs[target_corpus_key]["alignment_%s" % name] + align_job.add_alias("forced_alignment/alignment_%s/%s" % (name, target_corpus_key)) tk.register_output( - "forced_alignment/alignment_%s.bundle" % name, + "forced_alignment/alignment_%s_%s.bundle" % (name, target_corpus_key), align_job.out_alignment_bundle, ) @@ -388,8 +389,8 @@ def forced_align( original_alignment=meta.select_element(self.alignments, target_corpus_key, name), ) self.jobs[target_corpus_key]["alignment_dump_%s" % name] = dump_job - dump_job.add_alias("forced_alignment/alignment_dump_%s" % name) + dump_job.add_alias("forced_alignment/alignment_dump_%s/%s" % (name, target_corpus_key)) tk.register_output( - "forced_alignment/alignment_dump_%s.bundle" % name, + "forced_alignment/alignment_dump_%s_%s.bundle" % (name, target_corpus_key), dump_job.out_alignment_bundle, )