I am working from the following version of code: HDecode Version: char *hdecode_version = "!HVER!HDecode: 3.4 [GE 25/04/06]"; char *hdecode_sccs_id = "$Id: HDecode.c,v 1.1.1.1 2006/10/11 09:54:55 jal58 Exp $"; Following are the diffs for fixes. I have not tested the part of the fixes that are used for aligning from a label file (-R option). HDecode.c 735c735 < BestInfo *FindLexNetLab (MemHeap *heap, LexNode *ln, LLink ll) --- > BestInfo *FindLexNetLab (MemHeap *heap, LexNode *ln, LLink ll, HTime frameDur) 757c757 < next = FindLexNetLab (heap, follLN, ll->succ); --- > next = FindLexNetLab (heap, follLN, ll->succ, frameDur); 761,762c761,762 < info->start = ll->start / 1.0e5; < info->end = ll->end / 1.0e5; --- > info->start = ll->start / (frameDur*1.0e7); > info->end = ll->end / (frameDur*1.0e7); 772c772 < next = FindLexNetLab (heap, follLN, ll); --- > next = FindLexNetLab (heap, follLN, ll, frameDur); 776c776 < info->start = info->end = ll->start / 1.0e5; --- > info->start = info->end = ll->start / (frameDur*1.0e7); 788c788 < BestInfo *CreateBestInfo (MemHeap *heap, char *fn) --- > BestInfo *CreateBestInfo (MemHeap *heap, char *fn, HTime frameDur) 828,829c828,829 < bestAlignInfo->start = ll->start / 1.0e5; < bestAlignInfo->end = ll->end / 1.0e5; --- > bestAlignInfo->start = ll->start / (frameDur*1.0e7); > bestAlignInfo->end = ll->end / (frameDur*1.0e7); 835c835 < bestAlignInfo->next = FindLexNetLab (&transHeap, ln, ll->succ); --- > bestAlignInfo->next = FindLexNetLab (&transHeap, ln, ll->succ, frameDur); 927,930d926 < < /* get transcrition of 1-best alignment */ < if (bestAlignMLF) < bestAlignInfo = CreateBestInfo (&transHeap, fn); 940a937,940 > > /* get transcrition of 1-best alignment */ > if (bestAlignMLF) > bestAlignInfo = CreateBestInfo (&transHeap, fn, pbInfo.tgtSampRate/1.0e7); 1043c1043 < cpuSec, frameN/100.0, cpuSec / (frameN/100.0)); --- > cpuSec, frameN*dec->frameDur, cpuSec / (frameN*dec->frameDur)); HLVRec-traceback.c 247c247 < printf (" n %d t %.3f W %s\n", (int) path->user, path->frame / 100.0, s); --- > printf (" n %d t %.3f W %s\n", (int) path->user, path->frame * dec->frameDur, s); 278c278 < ln->time = path->frame / 100.0; /* fix frame duration! */ --- > ln->time = path->frame * dec->frameDur; 293c293 < printf ("I=%d t=%.2f W=%d\n", n, path->frame/100.0, path->pron); --- > printf ("I=%d t=%.2f W=%d\n", n, path->frame*dec->frameDur, path->pron); 635c635 < if (fabs (dur - laDur > dec->frameDur/2)) --- > if (fabs (dur - laDur ) > dec->frameDur/2)