14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------*
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  SR_AcousticModels.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_ACOUSTICMODELS_H
214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __SR_ACOUSTICMODELS_H
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <stddef.h>
274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <stdlib.h>
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticModelsPrefix.h"
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "pstdio.h"
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h"
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_ReturnCode.h"
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * AcousticModel ID.
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef asr_uint8_t SR_AcousticModelID;
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @addtogroup SR_AcousticModelsModule SR_AcousticModels API functions
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Acoustic model collection.
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Acoustic model collection.
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct SR_AcousticModels_t
494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Destroys an AcousticModel collection.
524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*destroy)(struct SR_AcousticModels_t* self);
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Saves an AcousticModel collection to file.
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param filename File to write to
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @deprecated Not supported
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*save)(struct SR_AcousticModels_t* self, const LCHAR* filename);
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Sets AcousticModels parameter, overriding session defaults.
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param key Parameter name
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param value Parameter value
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*setParameter)(struct SR_AcousticModels_t* self, const LCHAR* key, LCHAR* value);
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Returns AcousticModels parameter value.
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param key Parameter name
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param value [in/out] Parameter value
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param len [in/out] Length of value argument. If the return code is ESR_BUFFER_OVERFLOW,
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *            the required length is returned in this variable.
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*getParameter)(struct SR_AcousticModels_t* self, const LCHAR* key, LCHAR* value, size_t* len);
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Returns the number of AcousticModels in the collection.
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param size The result
874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*getCount)(struct SR_AcousticModels_t* self, size_t* size);
894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Returns modelID of a component.
914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param index Index of model within collection (0-based)
944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param id [out] Resulting model ID
954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param size [in/out] Length of id argument. If the return code is ESR_BUFFER_OVERFLOW,
964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *             the required length is returned in this variable.
974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*getID)(struct SR_AcousticModels_t* self, size_t index, SR_AcousticModelID* id, size_t* size);
994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Sets the modelID of a component.
1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param index Index of model within collection (0-based)
1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param id New model ID
1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  ESR_ReturnCode(*setID)(struct SR_AcousticModels_t* self, size_t index, SR_AcousticModelID* id);
1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  /**
1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * Returns the arbdata (CA_Arbdata*) of a component.
1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   *
1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   * @param self SR_AcousticModels handle
1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project   */
1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  void* (*getArbdata)(struct SR_AcousticModels_t* self);
1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSR_AcousticModels;
1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @name Models operations
1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{
1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destroys an AcousticModel collection.
1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsDestroy(SR_AcousticModels* self);
1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Loads an AcousticModel collection from file.
1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to read from
1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsLoad(const LCHAR* filename,
1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project                                                             SR_AcousticModels** self);
1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Saves an AcousticModel collection to file.
1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to write to
1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsSave(SR_AcousticModels* self, const LCHAR* filename);
1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets AcousticModel parameter, overriding session defaults.
1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Parameter name
1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Parameter value
1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsSetParameter(SR_AcousticModels* self, const LCHAR* key, LCHAR* value);
1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns AcousticModel parameter value.
1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Parameter name
1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value [out] Parameter value
1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param len [in/out] Length of value argument. If the return code is ESR_BUFFER_OVERFLOW,
1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *            the required length is returned in this variable.
1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsGetParameter(SR_AcousticModels* self, const LCHAR* key, LCHAR* value, size_t* len);
1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the number of AcousticModels in the collection.
1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param size The result
1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsGetCount(SR_AcousticModels* self, size_t* size);
1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns modelID of a component.
1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param index Index of model within collection (0-based)
1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param id [out] Resulting model ID
1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param idLen [in/out] Length of id argument. If the return code is ESR_BUFFER_OVERFLOW, the
1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *              required length is returned in this variable.
1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsGetID(SR_AcousticModels* self, size_t index, SR_AcousticModelID* id,  size_t* idLen);
1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets the modelID of a component.
1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *
1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self SR_AcousticModels handle
1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param index Index of model within collection (0-based)
1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param id New model ID
1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICMODELS_API ESR_ReturnCode SR_AcousticModelsSetID(SR_AcousticModels* self, size_t index, SR_AcousticModelID* id);
1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @}
1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/**
1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @}
1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */
1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __SR_ACOUSTICMODELS_H */
198