/** * @file callback.h * * * @brief Definitions for callback API * * * * @brief コールバックAPI用定義 * * * @author Akinobu Lee * @date Mon Nov 5 18:30:04 2007 * * $Revision: 1.4 $ * */ /* * Copyright (c) 1991-2012 Kawahara Lab., Kyoto University * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright (c) 2005-2012 Julius project team, Nagoya Institute of Technology * All rights reserved */ #ifndef __J_CALLBACK_H__ #define __J_CALLBACK_H__ /** * Callback IDs. * */ enum { /** * Callback to be called periodically while recognition. * */ CALLBACK_POLL, /** * Event callback to be called when the engine becomes active and * start running. (ex. resume by j_request_resume()) * */ CALLBACK_EVENT_PROCESS_ONLINE, /** * Event callback to be called when the engine becomes inactive and * stop running. (ex. pause or terminate by user request) * */ CALLBACK_EVENT_PROCESS_OFFLINE, /** * (not implemented yet) * */ CALLBACK_EVENT_STREAM_BEGIN, /** * (not implemented yet) * */ CALLBACK_EVENT_STREAM_END, /** * Event callback to be called when engine is ready for recognition * and start listening to the audio input. * */ CALLBACK_EVENT_SPEECH_READY, /** * Event callback to be called when input speech processing starts. * This will be called at speech up-trigger detection by level and * zerocross. When the detection is disabled (i.e. file input), * This will be called immediately after opening the file. * */ CALLBACK_EVENT_SPEECH_START, /** * Event callback to be called when input speech ends. This will be * called at speech down-trigger detection by level and zerocross. * When the detection is disabled (i.e. file input), this will be called * just after the whole input has been read. * */ CALLBACK_EVENT_SPEECH_STOP, /** * Event callback to be called when a valid input segment has been found * and speech recognition process starts. This can be used to know the * actual start timing of recognition process. On short-pause segmentation * mode and decoder-based VAD mode, this will be called only once at a * triggered long input. @sa CALLBACK_EVENT_SEGMENT_BEGIN. * */ CALLBACK_EVENT_RECOGNITION_BEGIN, /** * Event callback to be called when a valid input segment has ended * up, speech recognition process ends and return to wait status for * another input to come. On short-pause segmentation mode and * decoder-based VAD mode, this will be called only once after a * triggered long input. @sa CALLBACK_EVENT_SEGMENT_END. * */ CALLBACK_EVENT_RECOGNITION_END, /** * On short-pause segmentation and decoder-based VAD mode, this * callback will be called at the beginning of each segment, * segmented by short pauses. * */ CALLBACK_EVENT_SEGMENT_BEGIN, /** * On short-pause segmentation and decoder-based VAD mode, this * callback will be called at the end of each segment, * segmented by short pauses. * */ CALLBACK_EVENT_SEGMENT_END, /** * Event callback to be called when the 1st pass of recognition process * starts for the input. * */ CALLBACK_EVENT_PASS1_BEGIN, /** * Event callback to be called periodically at every input frame. This can * be used to get progress status of the first pass at each frame. * */ CALLBACK_EVENT_PASS1_FRAME, /** * Event callback to be called when the 1st pass of recognition process * ends for the input and proceed to 2nd pass. * */ CALLBACK_EVENT_PASS1_END, /** * Result callback to be called periodically at the 1st pass of * recognition process, to get progressive output. * */ CALLBACK_RESULT_PASS1_INTERIM, /** * Result callback to be called just at the end of 1st pass, to provide * recognition status and result of the 1st pass. * */ CALLBACK_RESULT_PASS1, /** * When compiled with "--enable-word-graph", this callback will be called * at the end of 1st pass to provide word graph generated at the 1st pass. * */ CALLBACK_RESULT_PASS1_GRAPH, /** * Status callback to be called after the 1st pass to provide information * about input (length etc.) * */ CALLBACK_STATUS_PARAM, /** * Event callback to be called when the 2nd pass of recognition * process starts. * */ CALLBACK_EVENT_PASS2_BEGIN, /** * Event callback to be called when the 2nd pass of recognition * process ends. * */ CALLBACK_EVENT_PASS2_END, /** * Result callback to provide final recognition result and status. * */ CALLBACK_RESULT, /** * Result callback to provide result of GMM computation, if GMM is used. * */ CALLBACK_RESULT_GMM, /** * Result callback to provide the whole word lattice generated at * the 2nd pass. Use with "-lattice" option. * */ CALLBACK_RESULT_GRAPH, /** * Result callback to provide the whole confusion network generated at * the 2nd pass. Use with "-confnet" option. * */ CALLBACK_RESULT_CONFNET, /** * A/D-in plugin callback to access to the captured input. This * will be called at every time a small audio fragment has been read * into Julius. This callback will be processed first in Julius, * and after that Julius will process the content for recognition. * This callback can be used to monitor or modify the raw audio * input in user-side application. * */ CALLBACK_ADIN_CAPTURED, /** * A/D-in plugin callback to access to the triggered input. This * will be called for input segments triggered by level and * zerocross. After processing this callback, Julius will process * the content for recognition. This callback can be used to * monitor or modify the triggered audio input in user-side * application. * */ CALLBACK_ADIN_TRIGGERED, /** * Event callback to be called when the engine becomes paused. * */ CALLBACK_EVENT_PAUSE, /** * Event callback to be called when the engine becomes resumed. * */ CALLBACK_EVENT_RESUME, /** * Plugin callback that will be called inside Julius when the engine * becomes paused. When Julius engine is required to stop by user * application, Julius interrupu the recognition and start calling * the functions registered here. After all the functions are * executed, Julius will resume to the recognition loop. So if you * want to use the pause / resume facility of Julius, You should * also set callback function to this to stop and do something, else * Julius returns immediately. */ CALLBACK_PAUSE_FUNCTION, CALLBACK_DEBUG_PASS2_POP, CALLBACK_DEBUG_PASS2_PUSH, CALLBACK_RESULT_PASS1_DETERMINED, SIZEOF_CALLBACK_ID }; /** * Maximum number of callbacks that can be registered for each ID. * */ #define MAX_CALLBACK_HOOK 10 #endif /* __J_CALLBACK_H__ */