recognizing proper noun

212 views
Skip to first unread message

Wonkyum Lee

unread,
Sep 20, 2016, 3:19:05 PM9/20/16
to kaldi-help
Hello, 

I want to recognize proper noun (name, cities) from speech recognizer. The way I tried was to 1) add words(named entities) to vocabulary via G2P (auto pron.) and to 2) retrain LM with texts which accommodate those words and construct HCLG. However, this leaded to huge size model (HCLG). 

I am wondering if there is better way to do this. Are they any good literature about this? 

Some people said that they are working for class-based model which I have not tried. If who has done this experience, could you share your opinion or thought?

Thanks,
Wonkyum

Daniel Povey

unread,
Sep 20, 2016, 4:58:26 PM9/20/16
to kaldi-help
Most of these approaches will not reduce the size of the graph-- at
the very least you'd need all individual words in your graph. What
might work is to prune your language model to generate HCLG, and use
lattice rescoring with the larger LM.

Dan
> --
> 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.

Danijel Korzinek

unread,
Sep 21, 2016, 2:06:31 AM9/21/16
to kaldi-help
A very good explanation on pruning and rescoring is demonstrated in the Librispeech example (at least it was the easiest to comprehend for me).

What is your vocabulary size? In case of very large vocabularies (say >200k) you may have to do some tricks to reduce its size - e.g. break some words apart and re-join them after decoding. Vocabularies <200k should be perfectly managable by Kaldi.

Jack

unread,
Mar 23, 2017, 4:29:20 AM3/23/17
to kaldi-help
Hi Wonkyum,
                Nowadays I faced the same problem as you said, have you solved your problem? If you could teach me something about how to figure this out?

在 2016年9月21日星期三 UTC+8上午3:19:05,Wonkyum Lee写道:

Wonkyum Lee

unread,
Mar 24, 2017, 5:35:33 PM3/24/17
to kaldi-help
Hi Jack,

I followed what Dan recommended. I avoided making large HCLG graph. Did not try class-based lm. 

Jackie

unread,
Mar 26, 2017, 11:08:48 PM3/26/17
to kaldi-help
Hi Wonkyum,
       Could you show me more details about how to implement proper noun from a speech recognizer? Or just prune your language model 
                 to generate a smaller HCLG, then lattice rescore with the LM? 

在 2017年3月25日星期六 UTC+8上午5:35:33,Wonkyum Lee写道:

Wonkyum Lee

unread,
Mar 26, 2017, 11:21:16 PM3/26/17
to kaldi-help
I did this way (nothing special). 

1) Added all words (including proper nouns) to dictionary. Some words are broken into multiple parts. 
2) Language Modeling based on your dictionary and source text. Small one(decoding) Large one(rescoring)
3) Build HCLG and const arpa model(rescoring)
4) decoding & re-scoring (rescoring model is chosen to match domain)
Reply all
Reply to author
Forward
0 new messages