Lines Matching refs:frmPkt

59 static int  incThisFramePtr(fepFramePkt* frmPkt, featdata** parPtr);
60 static int decThisFramePtr(fepFramePkt* frmPkt, featdata** parPtr);
66 fepFramePkt* frmPkt;
77 frmPkt = (fepFramePkt*) CALLOC_CLR(1, sizeof(fepFramePkt), "clib.Frame_Buffer");
78 if (frmPkt == NULL)
91 frmPkt->stackMask = frame_mask;
94 frmPkt->uttDim = dimen;
97 frmPkt->frameStackSize = fCnt;
98 frmPkt->frameSize = dimen;
99 frmPkt->featuresInStack = fCnt * dimen;
100 frmPkt->blockLen = blockLen;
101 if (doVoice) frmPkt->haveVoiced = True;
102 else frmPkt->haveVoiced = False;
104 frmPkt->frameStack = (featdata *) CALLOC(fCnt,
106 if (frmPkt == NULL)
108 frmPkt->lastFrameInStack = frmPkt->frameStack + (fCnt - 1) * dimen;
114 (void) clearFrameBuffer(frmPkt);
116 frmPkt->uttTimeout = 20; /* default setting */
118 return frmPkt;
132 * Arguments: "frmPkt" Frame Buffer Structure Pointer
138 int clearFrameBuffer(fepFramePkt* frmPkt)
140 ASSERT(frmPkt != NULL);
145 memset(frmPkt->frameStack, 0, /* TODO: do we need this? */
146 sizeof(featdata) * frmPkt->frameSize * frmPkt->frameStackSize);
150 frmPkt->isCollecting = FB_IDLE;
151 frmPkt->pullp = frmPkt->frameStack;
153 frmPkt->pushp = frmPkt->frameStack;
154 frmPkt->pushBlkp = frmPkt->frameStack;
155 frmPkt->pushBlocked = False;
156 frmPkt->blockTime = 0;
157 frmPkt->pushTime = 1; /* 0 == invalid frame ID, 1 == first */
158 frmPkt->pullTime = 1;
159 frmPkt->startTime = 0; /* 0 == start hasn't been called */
160 frmPkt->stopTime = 0; /* 0 == stop hasn't been called */
162 clearEndOfUtterance(frmPkt);
163 clearC0Entries(frmPkt);
185 int destroyFrameBuffer(fepFramePkt* frmPkt)
187 ASSERT(frmPkt);
191 FREE(frmPkt->frameStack);
192 FREE(frmPkt);
200 void startFrameCollection(fepFramePkt* frmPkt)
202 ASSERT(frmPkt);
203 if (frmPkt->isCollecting == FB_IDLE)
205 clearEndOfUtterance(frmPkt);
206 clearC0Entries(frmPkt);
208 frmPkt->startTime = frmPkt->pushTime;
209 frmPkt->stopTime = 0;
210 frmPkt->isCollecting = FB_ACTIVE;
219 int stopFrameCollection(fepFramePkt* frmPkt)
221 ASSERT(frmPkt);
222 ASSERT(frmPkt->startTime != 0);
224 if (frmPkt->isCollecting == FB_ACTIVE)
233 frmPkt->stopTime = frmPkt->pushTime;
234 frmPkt->isCollecting = FB_IDLE;
245 void setupEndOfUtterance(fepFramePkt* frmPkt, long timeout, long holdOff)
247 ASSERT(frmPkt);
250 frmPkt->uttTimeout = timeout;
251 frmPkt->holdOffPeriod = holdOff;
252 frmPkt->holdOff = 0;
259 void clearEndOfUtterance(fepFramePkt* frmPkt)
261 ASSERT(frmPkt);
262 ASSERT(frmPkt->holdOffPeriod >= 0);
263 frmPkt->voicingDetected = 0;
264 frmPkt->quietFrames = 0;
265 frmPkt->utt_ended = False;
266 frmPkt->holdOff = frmPkt->holdOffPeriod;
271 void releaseBlockedFramesInBuffer(fepFramePkt* frmPkt)
273 frmPkt->pullp = frmPkt->pushp; /* Move the Blocker to pullp */
274 frmPkt->pushBlkp = frmPkt->pushp; /* Move the Blocker to pullp */
275 frmPkt->pullTime = frmPkt->pushTime;
276 frmPkt->blockTime = frmPkt->pushTime;
295 * Arguments: "frmPkt" Frame Buffer Pointer
302 int pushSingleFEPframe(fepFramePkt* frmPkt, featdata* parPtr, int voiceData)
307 ASSERT(frmPkt);
313 if (frmPkt->isCollecting != FB_ACTIVE) return True;
314 if ((destFrmPtr = nextFrmPtr = (featdata*) frmPkt->pushp) == NULL)
318 log_report("U: voicing at %d was %x\n", frmPkt->pushTime, voiceData);
325 memcpy(destFrmPtr, parPtr, frmPkt->uttDim * sizeof(featdata));
326 if (frmPkt->haveVoiced)
327 destFrmPtr[frmPkt->uttDim] = voiceData;
334 if (frmPkt->holdOff <= 0)
336 if (frmPkt->haveVoiced && frmPkt->utt_ended == False)
340 frmPkt->voicingDetected = 1;
344 frmPkt->quietFrames++;
345 if (frmPkt->voicingDetected
346 && frmPkt->quietFrames > frmPkt->uttTimeout)
349 frmPkt->pushTime);
350 frmPkt->utt_ended = True;
354 frmPkt->quietFrames = 0;
359 ASSERT(frmPkt->holdOff > 0);
360 frmPkt->holdOff--;
365 if (frmPkt->maxC0 < parPtr[0]) /* only works if the 0th entry - */
366 frmPkt->maxC0 = parPtr[0]; /* is C0 */
368 if (frmPkt->minC0 > parPtr[0]) /* only works if the 0th entry - */
369 frmPkt->minC0 = parPtr[0]; /* is C0 */
371 frmPkt->pushTime++;
372 if (frmPkt->pushTime == 0L) /* Check for wrap - and ensure */
373 frmPkt->pushTime++; /* ZERO is NEVER used */
378 nextFrmPtr = (featdata *) NEXT_FRAME_POINTER(frmPkt, frmPkt->pushp);
380 if (nextFrmPtr == frmPkt->pullp)
385 frmPkt->pushBlocked++;
386 frmPkt->blockTime = frmPkt->pushTime;
391 else if (nextFrmPtr == frmPkt->pushBlkp)
393 if (frmPkt->blockLen == 0)
397 frmPkt->pushBlkp = NEXT_FRAME_POINTER(frmPkt, frmPkt->pushBlkp);
404 frmPkt->pushBlocked++;
405 frmPkt->blockTime = frmPkt->pushTime;
414 frmPkt->pushp = nextFrmPtr;
437 * Arguments: "frmPkt" Pointer to Frame Packet
452 int setRECframePtr(fepFramePkt* frmPkt, int fCnt, int mode)
456 ASSERT(frmPkt);
466 gap = POINTER_GAP(frmPkt, frmPkt->pullp, frmPkt->pushBlkp);
472 gap = POINTER_GAP(frmPkt, frmPkt->pushp, frmPkt->pullp);
476 frmPkt->pullp = FIX_FRAME_POINTER(frmPkt,
477 frmPkt->pullp - fCnt * frmPkt->frameSize);
478 frmPkt->pullTime -= fCnt;
488 ASSERT(frmPkt->isCollecting != FB_DEAD);
490 gap = POINTER_GAP(frmPkt, frmPkt->pushp, frmPkt->pushBlkp);
495 frmPkt->pullp = FIX_FRAME_POINTER(frmPkt,
496 frmPkt->pushp - fCnt * frmPkt->frameSize);
497 frmPkt->pullTime = frmPkt->pushTime - fCnt;
509 * Arguments: "frmPkt" Frame Buffer Pointer
516 featdata* currentRECframePtr(fepFramePkt* frmPkt)
518 ASSERT(frmPkt);
519 if (frmPkt->pushp == frmPkt->pushBlkp) /* uninitialized? */
521 return ((featdata *)frmPkt->pullp);
528 * Arguments: "frmPkt" Frame Buffer Pointer
535 featdata* currentFEPframePtr(fepFramePkt* frmPkt)
539 ASSERT(frmPkt);
540 frmPtr = frmPkt->pushp; /* Where is FEP? */
543 (void) decThisFramePtr(frmPkt, &frmPtr);/* Move backwards */
565 int incRECframePtr(fepFramePkt* frmPkt)
567 ASSERT(frmPkt);
572 if (frmPkt->pullp == frmPkt->pushp)
576 frmPkt->pullp = NEXT_FRAME_POINTER(frmPkt, frmPkt->pullp);
578 frmPkt->pullTime++;
579 if (frmPkt->pullTime == 0) /* Check for wrap and ensure */
580 frmPkt->pullTime++; /* that it is never ZERO */
583 if (frmPkt->blockLen > 0 && frmPkt->isCollecting == FB_ACTIVE)
585 if (POINTER_GAP(frmPkt, frmPkt->pullp, frmPkt->pushBlkp) >= frmPkt->blockLen)
587 frmPkt->pushBlkp = NEXT_FRAME_POINTER(frmPkt, frmPkt->pushBlkp);
612 int decRECframePtr(fepFramePkt* frmPkt)
614 ASSERT(frmPkt);
621 if (frmPkt->pullp == frmPkt->pushBlkp) return True;
622 frmPkt->pullp = PREV_FRAME_POINTER(frmPkt, frmPkt->pullp);
623 frmPkt->pullTime--;
646 static int incThisFramePtr(fepFramePkt* frmPkt, featdata** parPtr)
648 ASSERT(frmPkt);
650 if (*parPtr == frmPkt->pushp)
652 *parPtr = NEXT_FRAME_POINTER(frmPkt, *parPtr);
660 * Arguments: "frmPkt" Frame Buffer Pointer
674 static int decThisFramePtr(fepFramePkt* frmPkt, featdata** parPtr)
676 ASSERT(frmPkt);
678 if (*parPtr == frmPkt->pushBlkp)
680 *parPtr = PREV_FRAME_POINTER(frmPkt, *parPtr);
687 featdata getVoicingCode(fepFramePkt* frmPkt, featdata *frmptr)
689 ASSERT(frmPkt);
690 frmptr = CHECK_BOUND(frmPkt, frmptr);
691 if (frmptr && frmPkt->haveVoiced)
692 return (frmptr[frmPkt->uttDim]);
700 void setVoicingCode(fepFramePkt* frmPkt, featdata *frmptr, featdata vcode)
702 ASSERT(frmPkt);
703 frmptr = CHECK_BOUND(frmPkt, frmptr);
704 if (frmptr && frmPkt->haveVoiced)
705 frmptr[frmPkt->uttDim] =
706 SET_VOICING_CODES(frmptr[frmPkt->uttDim], vcode);
713 void clearC0Entries(fepFramePkt* frmPkt)
715 ASSERT(frmPkt);
716 frmPkt->maxC0 = 0; /* Assuming a normal range of 0 - 255 */
717 frmPkt->minC0 = 255;
721 int get_background_statistics(fepFramePkt *frmPkt, int start, int end,
732 ASSERT(frmPkt);
734 if (!frmPkt->haveVoiced) return(0);
740 if (relative_to_pullp && getBlockGap(frmPkt) < start)
743 ASSERT(base_ptr = frmPkt->pullp);
744 got = setRECframePtr(frmPkt, end, relative_to_pullp);
747 (void) setRECframePtr(frmPkt, -got, relative_to_pullp);
748 ASSERT(base_ptr == currentRECframePtr(frmPkt));
755 decRECframePtr(frmPkt);
756 frame_ptr = currentRECframePtr(frmPkt);
759 frame_ptr[frmPkt->uttDim], frame_ptr);
761 if ((frame_ptr[frmPkt->uttDim] & BELOW_THRESHOLD_BIT))
778 (void) setRECframePtr(frmPkt, -start, relative_to_pullp);
779 ASSERT(base_ptr == currentRECframePtr(frmPkt));
783 void utterance_detection_fixup(fepFramePkt *frmPkt, featdata **last_pushp,
792 ASSERT(frmPkt);
794 fepFrmPtr = currentFEPframePtr(frmPkt);
799 recFrmPtr = currentRECframePtr(frmPkt);
803 voistat = FAST_MATCH_DATA(getVoicingCode(frmPkt, last_push));
805 else if (decThisFramePtr(frmPkt, &last_push) == False)
807 voistat = FAST_MATCH_DATA(getVoicingCode(frmPkt, last_push));
808 (void) incThisFramePtr(frmPkt, &last_push);
811 voistat = FAST_MATCH_DATA(getVoicingCode(frmPkt, last_push));
816 gotstat = FAST_MATCH_DATA(getVoicingCode(frmPkt, last_push));
822 voice_result = getVoicingCode(frmPkt, fram);
828 if (decThisFramePtr(frmPkt, &fram) != False)
831 log_report("U: voice rewind at %d was %x\n", frmPkt->pullTime
832 + POINTER_GAP(frmPkt, fram, recFrmPtr),
833 getVoicingCode(frmPkt, fram));
835 setVoicingCode(frmPkt, fram, REC_VOICE_BIT);
843 if (decThisFramePtr(frmPkt, &fram) != False)
846 log_report("U: unsure rewind at %d was %x\n", frmPkt->pullTime
847 + POINTER_GAP(frmPkt, fram, recFrmPtr),
848 getVoicingCode(frmPkt, fram));
850 setVoicingCode(frmPkt, fram, REC_UNSURE_BIT);
859 if (decThisFramePtr(frmPkt, &fram) != False)
862 log_report("U: quiet rewind at %d was %x\n", frmPkt->pullTime
863 + POINTER_GAP(frmPkt, fram, recFrmPtr),
864 getVoicingCode(frmPkt, fram));
866 setVoicingCode(frmPkt, fram, REC_QUIET_BIT);
875 log_report("U: copying at %d was %x\n", frmPkt->pullTime
876 + POINTER_GAP(frmPkt, last_push, recFrmPtr),
877 getVoicingCode(frmPkt, last_push));
879 if (QUIET_BIT_SET(getVoicingCode(frmPkt, last_push)))
880 setVoicingCode(frmPkt, last_push, REC_QUIET_BIT);
881 else if (FAST_BIT_SET(getVoicingCode(frmPkt, last_push)))
882 setVoicingCode(frmPkt, last_push, REC_VOICE_BIT);
884 setVoicingCode(frmPkt, last_push, REC_UNSURE_BIT);
886 if (incThisFramePtr(frmPkt, &last_push) != False) break;
893 int rec_frame_voicing_status(fepFramePkt *frmPkt)
895 ASSERT(frmPkt);
896 return (getVoicingCode(frmPkt, (featdata *)frmPkt->pullp));