14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * SR_AcousticModelsImpl.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_ACOUSTICMODELSIMPL_H 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __SR_ACOUSTICMODELSIMPL_H 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __vxworks 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <memory.h> 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticModels.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_RecognizerImpl.h" 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_ReturnCode.h" 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* Legacy CREC headers */ 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "simapi.h" 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * AcousticModels implementation. 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct SR_AcousticModelsImpl_t 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Interface functions that must be implemented. 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_AcousticModels Interface; 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * When AcousticModels are associated with a Recognizer, they initialize their 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pattern objects using that Recognizer. 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer The recognizer 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setupPattern)(SR_AcousticModels* self, SR_Recognizer* recognizer); 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * When AcousticModels are deassociated with a Recognizer, they deinitialize their 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pattern objects. 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*unsetupPattern)(SR_AcousticModels* self); 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Generate legacy AcousticModels parameter structure from ESR_Session. 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param params Resulting structure 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getLegacyParameters)(CA_AcoustInputParams* params); 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * AcousticModels parameters. 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project HashMap* parameters; 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Legacy CREC pattern. 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project CA_Pattern* pattern; 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ArrayList of legacy CREC acoustic models. 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ArrayList* acoustic; 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Legacy Arbdata structure. 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project CA_Arbdata* arbdata; 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Contents of AcousticModels. 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void* contents; 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Size of contents. 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int size; 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSR_AcousticModelsImpl; 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_Destroy(SR_AcousticModels* self); 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_Save(SR_AcousticModels* self, 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const LCHAR* filename); 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_SetParameter(SR_AcousticModels* self, 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const LCHAR* key, 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR* value); 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_GetParameter(SR_AcousticModels* self, 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project const LCHAR* key, 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project LCHAR* value, size_t* len); 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_GetCount(SR_AcousticModels* self, 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t* size); 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_GetID(SR_AcousticModels* self, 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t index, 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_AcousticModelID* id, 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t* size); 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModels_SetID(SR_AcousticModels* self, 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project size_t index, 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_AcousticModelID* id); 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Default implementation. 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API void* SR_AcousticModels_GetArbdata(SR_AcousticModels* self); 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * When AcousticModels are associated with a Recognizer, they initialize their 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pattern objects using that Recognizer. 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer The recognizer 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode SR_AcousticModels_SetupPattern(SR_AcousticModels* self, SR_Recognizer* recognizer); 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * When AcousticModels are deassociated with a Recognizer, they deinitialize their 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pattern objects. 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode SR_AcousticModels_UnsetupPattern(SR_AcousticModels* self); 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Generate legacy AcousticModels parameter structure from ESR_Session. 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param params Resulting structure 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode SR_AcousticModels_GetLegacyParameters(CA_AcoustInputParams* params); 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __SR_ACOUSTICMODELSIMPL_H */ 163