train mono phone with alignment from other ASR system

387 views
Skip to first unread message

tfpeach

unread,
Nov 24, 2015, 6:26:54 PM11/24/15
to kaldi-help
Hi, dear all,

I have get an ASR trained with the data of one channel in the a corpus. Now I want to train an ASR on the data of the other channel in the corpus. I want to start the training with the mono phone alignment from the trained system. Could anyone tell me which script or command I should use?

Also, one problem I have is that the phoneme symbol used in these two ASRs are different. I put a example as below:

In the trained ASR, the dictionary is like this:
HENDERSON HH EH N D ER S AX N

In the ASR I want to train, the dictionary is like this:
HENDERSON V1 V3 C C V1 B V4 C

So even though I have the alignment from the trained ASR, I still need map it. I have the mapping, but I don't how to do that after I get the alignment.

Thank you.

Daniel Povey

unread,
Nov 24, 2015, 6:31:13 PM11/24/15
to kaldi-help
The 'convert-ali' program supports the --phone-map option which can be used in such situations, and some versions of the training scripts support this too.  But I can't spend time showing you how to do this.
Dnn


--
You received this message because you are subscribed to the Google Groups "kaldi-help" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-help+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

tfpeach

unread,
Nov 24, 2015, 11:04:38 PM11/24/15
to kaldi-help, dpo...@gmail.com
Thank you, Dan. I have checked that. It seems that it can fit my task. However, I have a further question. I notice that the "convert-ali" takes the argument of old.mdl and new.mdl. I think it will keep the model parameters same and only change the integer-id, when it converts, is that right? If this is the case, I have a concern here. Since the features are from two channels which means the model parameters will be totally different. If I still use the old parameters, it will cause some problem when I do the following training.

tfpeach

unread,
Nov 26, 2015, 12:13:06 AM11/26/15
to kaldi-help, dpo...@gmail.com
Hi, Dan,

I have another problem. When I map the phoneme set, how should I deal with the disambig symbol? Because the phoneme sets are different, the disambig symbols are also different, and I don't the mapping between the disambig symbols.

Thank you.


On Tuesday, November 24, 2015 at 5:31:13 PM UTC-6, Dan Povey wrote:

Daniel Povey

unread,
Nov 26, 2015, 12:16:18 AM11/26/15
to tfpeach, kaldi-help
The disambiguation symbols do not appear in the alignments and the mapping does not need to cover them.

tfpeach

unread,
Nov 26, 2015, 1:16:12 AM11/26/15
to kaldi-help, tct...@gmail.com, dpo...@gmail.com
Thank you.

I have tried the command as following:
convert-ali --phone-map=phone_map final.mdl new.mdl new.tree "ark:gunzip -c ali.1.gz|" "ark:|gunzip -c ali.new.gz"

However, it pops up several errors:
convert-ali --phone-map=phone_map final.mdl new.mdl new.tree 'ark:gunzip -c ali.1.gz|' 'ark:|gunzip -c ali.new.gz' 
ERROR (convert-ali:Input():kaldi-io.cc:674) Error opening input stream new.mdl
gzip: ali.new.gz: No such file or directory
WARNING (convert-ali:Close():kaldi-io.cc:274) Pipe |gunzip -c ali.new.gz had nonzero return status 256
WARNING (convert-ali:Close():kaldi-io.cc:446) Pipe gunzip -c ali.1.gz| had nonzero return status 36096
ERROR (convert-ali:Input():kaldi-io.cc:674) Error opening input stream new.mdl

[stack trace: ]
kaldi::KaldiGetStackTrace()
kaldi::KaldiErrorMessage::~KaldiErrorMessage()
kaldi::Input::Input(std::string const&, bool*)
void kaldi::ReadKaldiObject<kaldi::TransitionModel>(std::string const&, kaldi::TransitionModel*)
convert-ali(main+0x2aa) [0x589dae]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f81d60fc76d]
convert-ali() [0x589a49]

I think the new-model should be a wspecifier, and I just provide a name to it, because I expect it will generate the new model for me. Could you tell me why does this error happen?

Thank you.

Daniel Povey

unread,
Nov 26, 2015, 1:17:49 AM11/26/15
to tfpeach, kaldi-help
You should find someone local who you can discuss things with before asking the list- you are asking too many very basic questions.
Dan

Reply all
Reply to author
Forward
0 new messages