List the contents of the given path object.
FORMAT: path-name useN first_frame last_frames total_score { logscale beam bestScore items { stateX senonX phonX wordX alpha beta gamma local_score } } { logscale beam bestScore items { stateX senonX phonX wordX alpha beta gamma local_score } } ... { logscale beam bestScore items { stateX senonX phonX wordX alpha beta gamma local_score } } { logscale beam bestScore items { stateX senonX phonX wordX alpha beta gamma local_score } } foreach frame there is a line containing: { logscale beam bestScore items { stateX senonX phonX wordX alpha beta gamma local_score } } logscale : log of scaling factor (for forward backward algo) beam : search beam best_score : best score in this frame NOTE: (local_score - best_score) gives you the optimal beam width items : for viterbi 1 for forward backward 1..N senonX : actual senon index (like in senonSet) phonX : phoneme index in the given HMM wordX : word index in the given HMM EXAMPLE: % pathP3 puts pathP3 1 0 204 +8.004789e+03 { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 2 193 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +6.526862e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 3 193 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +5.849576e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 3 193 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +5.149762e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 4 194 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +4.384747e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 5 194 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +4.726996e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 6 195 1 1 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.923609e+01 } } ... { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.810903e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.830735e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.664804e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.845874e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +3.758018e+01 } } { +0.000000e+00 +0.000000e+00 +0.000000e+00 1 { 197 165 38 16 +0.000000e+00 +0.000000e+00 +1.000000e+00 +4.362800e+01 } }
remove all items (cells) from the given path.
Create an empty path, using the given constraints.
Create an empty path, using the given constraints. If the -eval argument is given, then the the senone set will be told to tell its feature sets to prepare the features for the utterance which is described in the <evalString>.
Works just like the Viterbi method. Only, here, the path will be filled with a forward-backward alignment, and the beam argument is replaced by a width argument, specifying the maximum number of states per frame that are expanded during alignment.
Works with a Path object that was already filled with an alignment, but not with local acoustic scores. Such scores are usually computed by the training accumulator functions. But if you need these score for other purposes like e.g. for looking at them or using them for a confidence measure, then you can fill the empty fields in the path by calling this method.
Fill the given matrix of type FMatrix with the entire gamma-matrix of the alignment. The matrix will have stateN rows, and each row will have frameN columns, the value of the matrix element in row m and column n will be the gamma value for state n at frame m.
Works like the stateMatrix, only that this time the n-th row is not used for the n-th state but for the n-th senone.
<object> wordMatrix <matrix> [-from <from>] [-to <to>]
[-first <first>] [-last <last>]
Well you guessed it. The gamma values in the matrix are cumulative values for all the state of the phone or the word, and not just single gammas.
Will print out the labels of the given path. I.e. you will get a list of human readable word names or phone names or senones names together with their first and last frame, and their first and last state index. You can specify what output you like in the -what argument. If you don't specify what you want you'll get word-labels, if in the string what the character sequence "word" occurs then word labels will be printed, if the character sequence "phon" occurs, then phoneme labels will be printed, if the character sequence "senon" occurs, then senone labels will be printed. If more than one of these character sequence occur, then all the specified outputs will be generated.
FORMAT: what { {item {fromFrameX toFrameX} {fromStateX toStateX}} {item {fromFrameX toFrameX} {fromStateX toStateX}} ... {item {fromFrameX toFrameX} {fromStateX toStateX}} {item {fromFrameX toFrameX} {fromStateX toStateX}} } where "what" is one of words, phones, senones and "item" is the actuall current word, phone, senone EXAMPLES: % pathP3 labels hmmP3 -what word words { { +KLICK+ { 0 15 } { 2 7 } } { +SCHMATZEN+ { 16 34 } { 10 15 } } { +ATMEN+ { 35 58 } { 24 29 } } { SIL { 59 61 } { 36 37 } } { hallo { 62 80 } { 44 72 } } { Felix { 81 127 } { 76 123 } } { wie { 128 138 } { 126 149 } } { geht { 139 169 } { 152 181 } } { 's { 170 188 } { 184 189 } } { SIL { 189 204 } { 196 197 } } } % set phonLabels [pathP3 labels hmmP3 -what phonemes] phones { { +nKL { 0 15 } { 2 7 } } { +hSM { 16 34 } { 10 15 } } { +hBR { 35 58 } { 24 29 } } { SIL { 59 61 } { 36 37 } } { H { 62 69 } { 44 49 } } { A { 70 72 } { 50 54 } } { L { 73 77 } { 56 61 } } { OH { 78 80 } { 68 72 } } { F { 81 89 } { 76 81 } } { EH { 90 93 } { 88 92 } } { L { 94 99 } { 94 99 } } { I { 100 108 } { 100 105 } } { K { 109 115 } { 106 111 } } { S { 116 127 } { 118 123 } } { V { 128 133 } { 126 131 } } { IE { 134 138 } { 144 149 } } { G { 139 142 } { 152 157 } } { EH { 143 159 } { 164 169 } } { T { 160 169 } { 176 181 } } { S { 170 188 } { 184 189 } } { SIL { 189 204 } { 196 197 } } } % path$SID labels hmm$SID -what senon senones { { +nKL(|)-b { 0 2 } { 3 3 } } { +nKL(|)-m { 3 4 } { 5 5 } } { +nKL(|)-e { 5 15 } { 7 7 } } { +hSM(|)-b { 16 21 } { 11 11 } } { +hSM(|)-m { 22 30 } { 13 13 } } { +hSM(|)-e { 31 34 } { 15 15 } } { +hBR(|)-b { 35 35 } { 24 24 } } { +hBR(|)-m { 36 38 } { 27 27 } } { +hBR(|)-e { 39 58 } { 29 29 } } { SIL(|)-m { 59 61 } { 37 37 } } { H(|)-b { 62 65 } { 45 45 } } { H(|)-m { 66 67 } { 47 47 } } { H(|)-e { 68 69 } { 49 49 } } { A(|)-b { 70 70 } { 50 50 } } { A(|)-m { 71 71 } { 52 52 } } { A(|)-e { 72 72 } { 54 54 } } { L(|)-b { 73 73 } { 56 56 } } { L(|)-m { 74 75 } { 59 59 } } { L(|)-e { 76 77 } { 61 61 } } { OH(|)-b { 78 78 } { 68 68 } } { OH(|)-m { 79 79 } { 70 70 } } { OH(|)-e { 80 80 } { 72 72 } } { F(|)-b { 81 84 } { 77 77 } } { F(|)-m { 85 86 } { 79 79 } } { F(|)-e { 87 89 } { 81 81 } } { EH(|)-b { 90 91 } { 89 89 } } { EH(|)-m { 92 92 } { 90 90 } } { EH(|)-e { 93 93 } { 92 92 } } { L(|)-b { 94 96 } { 95 95 } } { L(|)-m { 97 97 } { 96 96 } } { L(|)-e { 98 99 } { 99 99 } } { I(|)-b { 100 102 } { 101 101 } } { I(|)-m { 103 105 } { 103 103 } } { I(|)-e { 106 108 } { 105 105 } } { K(|)-b { 109 112 } { 107 107 } } { K(|)-m { 113 113 } { 108 108 } } { K(|)-e { 114 115 } { 111 111 } } { S(|)-b { 116 118 } { 119 119 } } { S(|)-m { 119 124 } { 121 121 } } { S(|)-e { 125 127 } { 123 123 } } { V(|)-b { 128 128 } { 126 126 } } { V(|)-m { 129 130 } { 129 129 } } { V(|)-e { 131 133 } { 131 131 } } { IE(|)-b { 134 134 } { 144 144 } } { IE(|)-m { 135 135 } { 146 146 } } { IE(|)-e { 136 138 } { 149 149 } } { G(|)-b { 139 139 } { 152 152 } } { G(|)-m { 140 140 } { 154 154 } } { G(|)-e { 141 142 } { 157 157 } } { EH(|)-b { 143 144 } { 165 165 } } { EH(|)-m { 145 156 } { 167 167 } } { EH(|)-e { 157 159 } { 169 169 } } { T(|)-b { 160 162 } { 177 177 } } { T(|)-m { 163 167 } { 179 179 } } { T(|)-e { 168 169 } { 181 181 } } { S(|)-b { 170 171 } { 185 185 } } { S(|)-m { 172 184 } { 187 187 } } { S(|)-e { 185 188 } { 189 189 } } { SIL(|)-m { 189 204 } { 197 197 } } }
Open a window and display the path including labels graphically. This widget offers many features, see its help window for more details.
Make a puts for all items in the list and wrap the output into a list.
Remove all items from the given list. This is useful for manipulating paths manually. Some functions and procedures of the system could have difficulties with paths that have zero-length item lists.
Add <itemN> items to the given list, all of which will be initialised with the given state, senone, phone, and word indices. So far there is no method to remove a single item from a list.
Print four integers: The cell's state index, senone index, phone index, and word index.