/*---------------------------------------------------------------------------* * lts.h * * * * Copyright 2007, 2008 Nuance Communciations, Inc. * * * * Licensed under the Apache License, Version 2.0 (the 'License'); * * you may not use this file except in compliance with the License. * * * * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an 'AS IS' BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * * * *---------------------------------------------------------------------------*/ #ifndef _LTS_H__ #define _LTS_H__ #if defined (GEN_STATIC_SLTS) && defined (WIN32) #include <stdio.h> #endif #define MTAG NULL typedef void* FSM_DICT_HANDLE; typedef void* LTS_HANDLE; typedef void* PHONEMAP_TABLE_HANDLE; /* creates an instance of the LTS and loads its data from file provided. Returns NULL if error. */ SWIsltsResult create_lts(char *data_filename, LTS_HANDLE *phLts); /* deallocates an instance of LTS */ SWIsltsResult free_lts(LTS_HANDLE hLts); /* runs letter_to_sound rules. Fills up phones in phone_string. This needs to be allocated by calling function to max_length. Each elements of phone string needs to be 4 characters long (output can be 3 characters plus need room for EOS) return length of phone string. If max_phone_length is exceeded, truncates output and returns max_phone_length. Returns -1 if error */ SWIsltsResult run_lts(LTS_HANDLE h, FSM_DICT_HANDLE hdict, char *input_sentence, char **output_phone_string, int *phone_length); /* static code generator for LTS structure */ #if defined (GEN_STATIC_SLTS) && defined (WIN32) void gen_static_lts(LTS_HANDLE h, const char *name, FILE *fp_out); #endif #if defined (GEN_STATIC_FSMD) && defined (WIN32) void gen_static_fsmd(FSM_DICT_HANDLE h, const char *name, FILE *fp_out); #endif typedef struct SWIsltsEngine { LTS_HANDLE m_hLts; FSM_DICT_HANDLE m_hDict; } SLTS_Engine; #endif /* _LTS_H__ */