14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------*
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  SR_RecognizerImpl.h  *
34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the 'License');          *
74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  you may not use this file except in compliance with the License.         *
84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  You may obtain a copy of the License at                                  *
104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0                           *
114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software      *
134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  distributed under the License is distributed on an 'AS IS' BASIS,        *
144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  See the License for the specific language governing permissions and      *
164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  limitations under the License.                                           *
174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/
194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __SR_RECOGNIZERIMPL_H
214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __SR_RECOGNIZERIMPL_H
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ArrayList.h"
264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "CircularBuffer.h"
274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_ReturnCode.h"
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_SessionType.h"
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "HashMap.h"
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticState.h"
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Recognizer.h"
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_EventLog.h"
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptimestamp.h"
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Grammar.h"
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Nametag.h"
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "frontapi.h"
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "simapi.h"
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/***
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Recognizer timings to be written to OSI logs
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct RecogLogTimings_t
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t BORT;    /* beginning of recognition time (millisec) */
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t DURS;    /* amount of speech processed (millisec) */
494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t EORT;    /* end of recognition time (millisec) */
504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t EOSD;    /* num of frames of speech before EOSS (frames) */
514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t EOSS;    /* frame where end of speech signal occurred (frames) */
524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t BOSS;    /* frame where start of speech signal occurred (frames) */
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t EOST;    /* instant where end of speech signal occurred (millisec) */
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectRecogLogTimings;
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Initial state.
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_BEGIN,
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Timeout before beginning of speech.
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_BOS_TIMEOUT,
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Got end of input before beginning of speech.
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_BOS_NO_MATCH,
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Waiting for beginning of speech.
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_BOS_DETECTION,
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Waiting for end of speech or input.
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_EOS_DETECTION,
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Got end of input.
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_EOI,
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Detected end of speech (not due to end of input).
864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_EOS,
884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Final state.
904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RECOGNIZER_INTERNAL_END,
924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} SR_RecognizerInternalStatus;
934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Waveform Buffering stuff (for Nametags)
974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project **/
984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_WAVEFORM_BUFFER_MAX_SIZE       65  /* kBytes, will not grow */
1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_WAVEFORM_WINDBACK_FRAMES       50  /* will convert frames to bytes, will not grow */
1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_BOS_COMFORT_FRAMES              2
1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define DEFAULT_EOS_COMFORT_FRAMES              2
1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef enum
1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  WAVEFORM_BUFFERING_OFF,             /* no buffering */
1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  WAVEFORM_BUFFERING_ON_CIRCULAR,     /* buffer but, do not grow past a certain upper bound, just loop & overwrite */
1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  WAVEFORM_BUFFERING_ON_LINEAR,       /* buffer and report overflow if necessary */
1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} waveform_buffering_state_t;
1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* audio buffer which supports windback */
1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct WaveformBuffer_t
1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  void   *windback_buffer;        /* a temp buffer used for windback functionality (malloc only at init)*/
1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t windback_buffer_sz;      /* sizeof buffer */
1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  waveform_buffering_state_t state; /* state of the buffer (considered only when writing to buffer) */
1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CircularBuffer* cbuffer;        /* the actual buffer */
1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t   overflow_count;        /* indicates the total number of bytes the overflowed */
1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t read_size;
1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t eos_comfort_frames;
1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t bos_comfort_frames;
1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectWaveformBuffer;
1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* create the buffer */
1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Create(WaveformBuffer** waveformBuffer, size_t frame_size);
1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* reset the buffer... do not release memeory */
1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Reset(WaveformBuffer* waveformBuffer);
1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* get size */
1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_GetSize(WaveformBuffer* waveformBuffer, size_t* size);
1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* write to buffer. will grow only if buffering state is set to allow it */
1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Write(WaveformBuffer* waveformBuffer, void *data, size_t num_bytes);
1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* read the whole buffer (starting from start offset, up to read_size) into a chunk allocated outside */
1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Read(WaveformBuffer* waveformBuffer, void *data, size_t* num_bytes);
1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* does the windback after bos detected */
1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_WindBack(WaveformBuffer* waveformBuffer, const size_t num_bytes);
1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* sets the start offset and read_size at the end of recognition when endpointed transcription is known */
1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_ParseEndPointedResultAndTrim(WaveformBuffer* waveformBuffer, const LCHAR* end_pointed_result, const size_t bytes_per_frame);
1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* free the memory allocated for blocks and for windback */
1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Destroy(WaveformBuffer* waveformBuffer);
1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* sets the state of buffer */
1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_SetBufferingState(WaveformBuffer* waveformBuffer, waveform_buffering_state_t state);
1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* gets the state of buffer */
1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_GetBufferingState(WaveformBuffer* waveformBuffer, waveform_buffering_state_t* state);
1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* skip the first few bytes (moves read pointer forward */
1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode WaveformBuffer_Skip(WaveformBuffer* waveformBuffer, const size_t bytes);
1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Speech recognizer.
1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct SR_RecognizerImpl_t
1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Interface functions that must be implemented.
1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_Recognizer Interface;
1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Legacy CREC frontend.
1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CA_Frontend* frontend;
1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Legacy CREC Input waveform object.
1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CA_Wave* wavein;
1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Legacy CREC Utterance object.
1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CA_Utterance* utterance;
1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Legacy CREC confidence score calculator.
1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CA_ConfidenceScorer* confidenceScorer;
1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Legacy CREC recognizer.
1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CA_Recog* recognizer;
1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * AcousticModels associated with Recognizer.
1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_AcousticModels* models;
1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  * Active Recognizer grammars.
1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  */
1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  HashMap* grammars;
2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Recognition result.
2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RecognizerResult* result;
2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Recognizer parameters.
2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_SessionType* parameters;
2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * AcousticState associated with Recognizer.
2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_AcousticState* acousticState;
2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Total number of frames pushed by SR_RecognizerPutAudio().
2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t frames;
2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Number of processed frames.
2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t processed;
2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * The number of frames up until the windback point (where -pau- starts).
2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t beginningOfSpeechOffset;
2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Internal recognizer state.
2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RecognizerInternalStatus internalState;
2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Indicates if SR_RecognizerStart() was called.
2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isStarted;
2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Indicates if PutAudio() was called with the last audio frame.
2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL gotLastFrame;
2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Audio buffer used by PutAudio().
2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  CircularBuffer* buffer;
2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Temporary buffer used to transfer audio data (PutAudio).
2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   **/
2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  asr_int16_t *audioBuffer;
2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Recognizer sample rate.
2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t sampleRate;
2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Whether reconition has begun after begiing of speech detection
2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isRecognizing;
2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Max number of frames to process before BOS timeout
2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t utterance_timeout;
2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Locking function associated.
2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_RecognizerLockFunction lockFunction;
2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Locking function data.
2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  void* lockData;
2644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * OSI logging level
2674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * if bit0 (OSI_LOG_LEVEL_BASIC) is set: do basic logging
2684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * if bit1 (OSI_LOG_LEVEL_AUDIO) is set: do audio waveform logging
2694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * if bit2 (OSI_LOG_LEVEL_ADDWD) is set: do dynamic grammar addword logging
2704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t osi_log_level;
2724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * EventLog pointer
2754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_EventLog* eventLog;
2774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Data that should be logged in OSI
2794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  RecogLogTimings recogLogTimings;
2814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Timestamp reference used for calculating timings
2834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  PTimeStamp timestamp;
2854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Waveform buffer (for nametags) .
2884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  WaveformBuffer* waveformBuffer;
2904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Reason for eos detected
2934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  LCHAR* eos_reason;
2954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
2964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
2974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Indicates if signal quality variables have been initialized.
2984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
2994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalQualityInitialized;
3004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if signal is being clipped.
3024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalClipping;
3044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if DCOffset is present in signal.
3064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalDCOffset;
3084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if signal is noisy.
3104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalNoisy;
3124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if signal is too quiet.
3144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalTooQuiet;
3164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if signal contains too few samples.
3184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalTooFewSamples;
3204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * True if signal contains too many samples.
3224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL isSignalTooManySamples;
3244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Number of bytes in a frame.
3274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   **/
3284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t FRAME_SIZE;
3294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * If TRUE, beginning of speech detection is enabled.
3324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL gatedMode;
3344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * The minimum number of frames to sniff before beginning recognition.
3374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  size_t bgsniff;
3394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Indicates if we've skipped holdOffPeriod frames at the beginning of the waveform.
3414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_BOOL holdOffPeriodSkipped;
3434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
3444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSR_RecognizerImpl;
3454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Groups grammar with meta-data.
3484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct GrammarBag_t
3504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
3514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Grammar object.
3534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  SR_Grammar* grammar;
3554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Grammar weight.
3574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  unsigned int weight;
3594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
3604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Grammar ID.
3614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
3624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  LCHAR* grammarID;
3634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
3644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectGrammarBag;
3654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerStartImpl(SR_Recognizer* self);
3714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerStopImpl(SR_Recognizer* self);
3754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerDestroyImpl(SR_Recognizer* self);
3794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetupImpl(SR_Recognizer* self);
3834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerUnsetupImpl(SR_Recognizer* self);
3874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSetupImpl(SR_Recognizer* self, ESR_BOOL* isSetup);
3914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
3924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerGetParameterImpl(SR_Recognizer* self, const LCHAR* key, LCHAR* value, size_t* len);
3964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
3974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
3984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
3994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerGetSize_tParameterImpl(SR_Recognizer* self, const LCHAR* key, size_t* value);
4004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerGetBoolParameterImpl(SR_Recognizer* self, const LCHAR* key, ESR_BOOL* value);
4044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetParameterImpl(SR_Recognizer* self, const LCHAR* key, LCHAR* value);
4084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetSize_tParameterImpl(SR_Recognizer* self, const LCHAR* key, size_t value);
4124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetBoolParameterImpl(SR_Recognizer* self, const LCHAR* key, ESR_BOOL value);
4164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerHasSetupRulesImpl(SR_Recognizer* self,
4214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    ESR_BOOL* hasSetupRules);
4224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerActivateRuleImpl(SR_Recognizer* self,
4264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_Grammar* grammar,
4274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* ruleName,
4284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    unsigned int weight);
4294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerDeactivateRuleImpl(SR_Recognizer* self,
4334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_Grammar* grammar,
4344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* ruleName);
4354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerDeactivateAllRulesImpl(SR_Recognizer* self);
4404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsActiveRuleImpl(SR_Recognizer* self,
4454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_Grammar* grammar,
4464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* ruleName,
4474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    ESR_BOOL* isActiveRule);
4484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetWordAdditionCeilingImpl(SR_Recognizer* self,
4524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_Grammar* grammar);
4534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerCheckGrammarConsistencyImpl(SR_Recognizer* self,
4574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_Grammar* grammar,
4584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    ESR_BOOL* isConsistent);
4594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerGetModelsImpl(SR_Recognizer* self,
4634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project															  SR_AcousticModels** models);
4644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerPutAudioImpl(SR_Recognizer* self,
4684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    asr_int16_t* buffer,
4694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    size_t* bufferSize,
4704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    ESR_BOOL isLast);
4714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerAdvanceImpl(SR_Recognizer* self,
4754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_RecognizerStatus* status,
4764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_RecognizerResultType* type,
4774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    SR_RecognizerResult** result);
4784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerClearAcousticStateImpl(SR_Recognizer* self);
4834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLoadAcousticStateImpl(SR_Recognizer* self,
4874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* filename);
4884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLoadUtteranceImpl(SR_Recognizer* self, const LCHAR* filename);
4934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
4954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
4964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLoadWaveFileImpl(SR_Recognizer* self, const LCHAR* filename);
4974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
4984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
4994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogTokenImpl(SR_Recognizer* self, const LCHAR* token, const LCHAR* value);
5024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogTokenIntImpl(SR_Recognizer* self, const LCHAR* token, int value);
5064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogEventImpl(SR_Recognizer* self, const LCHAR* event);
5104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogSessionStartImpl(SR_Recognizer* self, const LCHAR* sessionName);
5144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogSessionEndImpl(SR_Recognizer* self);
5184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerLogWaveformDataImpl(SR_Recognizer* self,
5224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* waveformFilename,
5234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const LCHAR* transcription,
5244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const double bos,
5254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    const double eos,
5264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    ESR_BOOL isInvocab);
5274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerSetLockFunctionImpl(SR_Recognizer *self, SR_RecognizerLockFunction function, void* data);
5314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalClippingImpl(SR_Recognizer* self, ESR_BOOL* isClipping);
5354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalDCOffsetImpl(SR_Recognizer* self, ESR_BOOL* isDCOffset);
5394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalNoisyImpl(SR_Recognizer* self, ESR_BOOL* isNoisy);
5434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalTooQuietImpl(SR_Recognizer* self, ESR_BOOL* isTooQuiet);
5474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalTooFewSamplesImpl(SR_Recognizer* self, ESR_BOOL* isTooFewSamples);
5514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
5524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation.
5534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
5544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_RecognizerIsSignalTooManySamplesImpl(SR_Recognizer* self, ESR_BOOL* isTooManySamples);
5554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
5564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_RECOGNIZER_API ESR_ReturnCode SR_Recognizer_Change_Sample_RateImpl ( SR_Recognizer *self, size_t new_sample_rate );
5574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
5584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __SR_RECOGNIZERIMPL_H */
559