Menu

Pocketsphinx lexical tree.

Help
creative64
2012-03-15
2012-09-22
  • creative64

    creative64 - 2012-03-15

    Hi,

    I've a simple grammar with two words GENERAL and SILENT.

    My Grammar file looks like:

    Public = GENERAL | SILENT;

    My dictionary contains pronunciations for these words as follows:

    GENERAL JH EH N ER AH L
    GENERAL(2) JH EH N R AH L
    GENERAL(3) JH AH N R AH L
    SILENT S AY L AH N T
    SILENT(2) S AY L EH N T

    When I look at the lexical tree created for this, I find that lexical tree
    for state 0 is created something like this (filler omitted for clarity).

    JH->EH->N->ER->AH->L
    |
    JH->EH->N->R->AH->L
    |
    JH->AH->N->R->AH->L
    |
    S->AY->L->AH->N->T
    |
    L->EH->N->T

    I would have expected it to share initial nodes between multiple
    pronunciations
    of GENERAL as it does for SILENT.

    When I remove the third pronunciation of GENERAL by changing the dictionary to

    GENERAL JH EH N ER AH L
    GENERAL(2) JH EH N R AH L
    SILENT S AY L AH N T
    SILENT(2) S AY L EH N T

    Things become as expected and the lexical tree comes out as follows:

    JH->EH->N->ER->AH->L
    | |
    | N->R->AH->L
    |
    S->AY->L->AH->N->T
    |
    L->EH->N->T

    I'm using hub4wsj_sc_8k acoustic model and pocketsphinx version prior to 7.

    Is this deliberate or an optimization issue ?

    Thanks and regards,

     
  • Nickolay V. Shmyrev

    Lextree is a tree of triphones, not a tree of phones. So your graph is not
    really relevant to pocketsphinx.

     
  • creative64

    creative64 - 2012-03-16

    Hi Nickolay,

    Triphone details are embedded in this diagram. A phone shown in the diagram
    can be thought as triphone which is
    composed of this phone surrounded by its left and right context as per the
    graphs. For root and leaf nodes, the left and
    right contexts are SIL (Basically this graph only shows ci_ext field of
    fsg_pnode_s structure for lextree).

    These graphs are generated from the actual lextree dump taken from
    pocketsphinx (triphone information was manually
    checked by printing senone id sequences for each node and was found to be
    matching with the graph).

    Thanks and regards,

     
  • creative64

    creative64 - 2012-03-16

    just to add "->" shows successor node and " | "shows sibling.

     
  • Nickolay V. Shmyrev

    Triphone details are embedded in this diagram.

    If you properly draw triphones your question will disappear I think.

     

Log in to post a comment.