14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * SR_NametagDefs.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_NAMETAGDEFS_H 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __SR_NAMETAGDEFS_H 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_NametagPrefix.h" 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_Locale.h" 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h" 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_ReturnCode.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @addtogroup SR_NametagModule SR_Nametag API functions 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Nametags are user-added words. These words are created using the audio that has been collected 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * during a recognition phase. The Recognizer stores the audio in the RecognizerResult object. 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * The result is passed to NametagCreate() to create the nametag. The Nametags object is a 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * collection of nametags. The nametag will consist of the speech parts of the audio. The 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * silence from the ends of the utterance, and any long pause between speech chunks, is removed. 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/** 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Represents a nametag. 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct SR_Nametag_t 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the Nametag ID. 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self Nametag handle 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param id Nametag ID 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode (*getID)(const struct SR_Nametag_t* self, LCHAR** id); 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the Nametag ID. 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self Nametag handle 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param pvalue pointer to the transcription, SR_Nametag retains ownership 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param plen pointer to the length of the transcription 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_NO_MATCH_ERROR if self is null or bad voice tag 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode (*getValue)(const struct SR_Nametag_t* self, const char** pvalue, size_t* plen); 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets the Nametag ID. 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self Nametag handle 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param id Nametag ID 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode (*setID)(struct SR_Nametag_t* self, const LCHAR* id); 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Clones a nametag. 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self Nametag handle 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param result the resulting Nametag 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode (*clone)(const struct SR_Nametag_t* self, struct SR_Nametag_t** result); 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destroys a nametag. 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self Nametag handle 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode (*destroy)(struct SR_Nametag_t* self); 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} SR_Nametag; 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __SR_NAMETAGDEFS_H */ 98