SR_Grammar.h

00001 /*---------------------------------------------------------------------------*
00002  *  SR_Grammar.h  *
00003  *                                                                           *
00004  *  Copyright 2007 Nuance Communciations, Inc.                               *
00005  *                                                                           *
00006  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
00007  *  you may not use this file except in compliance with the License.         *
00008  *                                                                           *
00009  *  You may obtain a copy of the License at                                  *
00010  *      http://www.apache.org/licenses/LICENSE-2.0                           *
00011  *                                                                           *
00012  *  Unless required by applicable law or agreed to in writing, software      *
00013  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
00014  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 
00015  *  See the License for the specific language governing permissions and      *
00016  *  limitations under the License.                                           *
00017  *                                                                           *
00018  *---------------------------------------------------------------------------*/
00019 
00020 #ifndef __SR_GRAMMAR_H
00021 #define __SR_GRAMMAR_H
00022 
00023 
00024 
00025 #include "ESR_ReturnCode.h"
00026 #include "pstdio.h"
00027 #include "ptypes.h"
00028 #include "SR_GrammarPrefix.h"
00029 #include "SR_NametagDefs.h"
00030 #include "SR_Vocabulary.h"
00031 #include "SR_AcousticModels.h"
00032 #include "SR_Recognizer.h"
00033 #include "SR_SemanticResult.h"
00034 
00035 /* forward decl needed because of SR_Recognizer.h <-> SR_Grammar.h include loop */
00036 struct SR_Recognizer_t;
00037 
00068 typedef ESR_ReturnCode(*SR_GrammarDispatchFunction)(LCHAR* functionName, LCHAR** argv, size_t argc, void* value, LCHAR* result, size_t* resultSize);
00069 
00085 typedef struct SR_Grammar_t
00086 {
00095   ESR_ReturnCode(*compile)(struct SR_Grammar_t* self);
00096   
00104   ESR_ReturnCode(*save)(struct SR_Grammar_t* self, const LCHAR* filename);
00105   
00115   ESR_ReturnCode(*checkParse)(struct SR_Grammar_t* self, const LCHAR* transcription, SR_SemanticResult** result, size_t* resultCount);
00116   
00130   ESR_ReturnCode(*addWordToSlot)(struct SR_Grammar_t* self, const LCHAR* slot, const LCHAR* word, 
00131           const LCHAR* pronunciation, int weight, const LCHAR* tag);
00132   
00139   ESR_ReturnCode(*resetAllSlots)(struct SR_Grammar_t* self);
00140   
00153   ESR_ReturnCode(*addNametagToSlot)(struct SR_Grammar_t* self, const LCHAR* slot, 
00154     const SR_Nametag* nametag, int weight, const LCHAR* tag);
00155   
00165   ESR_ReturnCode(*setDispatchFunction)(struct SR_Grammar_t* self, const LCHAR* name, void* userData, SR_GrammarDispatchFunction function);
00166   
00175   ESR_ReturnCode(*setParameter)(struct SR_Grammar_t* self, const LCHAR* key, void* value);
00176   
00186   ESR_ReturnCode(*setSize_tParameter)(struct SR_Grammar_t* self, const LCHAR* key, size_t value);
00187   
00196   ESR_ReturnCode(*getParameter)(struct SR_Grammar_t* self, const LCHAR* key, void** value);
00197   
00209   ESR_ReturnCode(*getSize_tParameter)(struct SR_Grammar_t* self, const LCHAR* key, size_t* value);
00210   
00218   ESR_ReturnCode(*setupVocabulary)(struct SR_Grammar_t *self, SR_Vocabulary *vocabulary);
00219   
00227   // ESR_ReturnCode(*setupModels)(struct SR_Grammar_t* self, SR_AcousticModels* models);
00228   ESR_ReturnCode(*setupRecognizer)(struct SR_Grammar_t* self, struct SR_Recognizer_t* recognizer);
00235   ESR_ReturnCode(*unsetupRecognizer)(struct SR_Grammar_t* self);
00236   
00244   // ESR_ReturnCode(*getModels)(struct SR_Grammar_t* self, SR_AcousticModels** models);
00245   
00252   ESR_ReturnCode(*destroy)(struct SR_Grammar_t* self);
00253 }
00254 SR_Grammar;
00255 
00310 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarCompile(SR_Grammar* self);
00337 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarAddWordToSlot(SR_Grammar* self, const LCHAR* slot, 
00338                                                                                                                                             const LCHAR* word, const LCHAR* pronunciation, 
00339                                                                                                                                             int weight, const LCHAR* tag);
00347 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarResetAllSlots(SR_Grammar* self);
00360 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarAddNametagToSlot(SR_Grammar* self, const LCHAR* slot, 
00361 const struct SR_Nametag_t* nametag, int weight, const LCHAR* tag);
00385 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetupVocabulary(SR_Grammar *self, SR_Vocabulary *vocabulary);
00393 // SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetupModels(SR_Grammar* self, SR_AcousticModels* models);
00394 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetupRecognizer(SR_Grammar* self, struct SR_Recognizer_t* recognizer);
00401 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarUnsetupRecognizer(SR_Grammar* self);
00409 // SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarGetModels(SR_Grammar* self, SR_AcousticModels** models);
00410 
00424 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarCreate(SR_Grammar** self);
00431 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarDestroy(SR_Grammar* self);
00442 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarLoad(const LCHAR* filename, SR_Grammar** self);
00450 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSave(SR_Grammar* self, const LCHAR* filename);
00460 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetDispatchFunction(SR_Grammar* self, const LCHAR* name, void* userData, SR_GrammarDispatchFunction function);
00469 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetParameter(SR_Grammar* self, const LCHAR* key, void* value);
00479 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarSetSize_tParameter(SR_Grammar* self, const LCHAR* key, size_t value);
00488 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarGetParameter(SR_Grammar* self, const LCHAR* key, void** value);
00498 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarGetSize_tParameter(SR_Grammar* self, const LCHAR* key, size_t* value);
00508 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarCheckParse(SR_Grammar* self, const LCHAR* transcription, SR_SemanticResult** result, size_t* resultCount);
00517 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarAllowOnly(SR_Grammar* self, const char* transcription);
00518 SREC_GRAMMAR_API ESR_ReturnCode SR_GrammarAllowAll(SR_Grammar* self);
00519 
00520 #endif /* __SR_GRAMMAR_H */

Generated on Thu May 1 15:37:25 2008 for SREC by  doxygen 1.5.3