14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * SR_AcousticState.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_ACOUSTICSTATE_H 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __SR_ACOUSTICSTATE_H 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <stddef.h> 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <stdlib.h> 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticModels.h" 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_AcousticStatePrefix.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Recognizer.h" 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "pstdio.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/** 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @addtogroup SR_AcousticStateModule SR_AcousticState API functions 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Contains Acoustic state information. 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{ 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Contains Acoustic state information. 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct SR_AcousticState_t 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Resets the acoustic state object. 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * The recognizer adapts to the acoustic state of the caller and calling environment 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * during a call in order to improve recognition accuracy. The platform must reset 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the AcousticState either at the beginning of a new call or at the end of a call in 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * order to reset acoustic state information for a new caller. 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*reset)(SR_Recognizer* recognizer); 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Loads an AcousticState from file. 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to read from 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*load)(SR_Recognizer* recognizer, const LCHAR* filename); 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Saves an AcousticState to a file. 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to write into 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*save)(SR_Recognizer* recognizer, const LCHAR* filename); 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Gets an AcousticState into a string. 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param param_string contains data from the recognizer 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*get)(SR_Recognizer* recognizer, LCHAR *param_string, size_t* len ); 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets an AcousticState from a string. 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param param_string contains data to set 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*set)(SR_Recognizer* recognizer, const LCHAR *param_string ); 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destrroys the acoustic state of a recognizer 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*destroy)(SR_Recognizer* recognizer); 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSR_AcousticState; 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @name AcousticState 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * An AcousticState is a container for the configurations of several items used in recognition: 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * - What models are in use (where there is more than one available). E.g. M/F or adapted models. 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * - Properties of the channels (microphone, environment, speaker). These properties are updated 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * during recognition. E.g. There may be more than one microphone in use, offering zone-based 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * input. Each zone may require the maintenance of its own channel settings. 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * AcousticState must offer persistence to reflect optimal settings and preferred use on start-up. 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{ 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Loads an AcousticState from file. 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to read from 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICSTATE_API ESR_ReturnCode SR_AcousticStateLoad(SR_Recognizer* recognizer, const LCHAR* filename); 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Saves an AcousticState to a file. 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to write into 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_NOT_IMPLEMENTED 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICSTATE_API ESR_ReturnCode SR_AcousticStateSave(SR_Recognizer* recognizer, const LCHAR* filename); 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @name Possible AcousticState <-> Model operations 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{ 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Resets the acoustic state object. 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * The recognizer adapts to the acoustic state of the caller and calling environment 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * during a call in order to improve recognition accuracy. The platform must reset 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the AcousticState either at the beginning of a new call or at the end of a call in 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * order to reset acoustic state information for a new caller. 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param recognizer SR_Recognizer handle 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if recognizer is null 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICSTATE_API ESR_ReturnCode SR_AcousticStateReset(SR_Recognizer* recognizer); 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICSTATE_API ESR_ReturnCode SR_AcousticStateSet ( SR_Recognizer* recognizer, const LCHAR *param_string ); 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectSREC_ACOUSTICSTATE_API ESR_ReturnCode SR_AcousticStateGet ( SR_Recognizer* recognizer, LCHAR *param_string, size_t* len ); 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __SR_ACOUSTICSTATE_H */ 160