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