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