/*---------------------------------------------------------------------------* * vocab.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. * * * *---------------------------------------------------------------------------*/ /** FILE: vocab.h ** DATE MODIFIED: 31-Aug-07 ** DESCRIPTION: Container class for Nuance Vocabulary access ** ** All rights reserved */ #ifndef __vocab_h__ #define __vocab_h__ #include #include #include "SR_Session.h" #include "SR_Vocabulary.h" //#include "srec_arb.h" #include "simapi.h" #define GENERIC_CONTEXT '_' #define SILENCE_CONTEXT '#' #define INTRA_SILENCE_CONTEXT '&' class Vocabulary { public: Vocabulary(); Vocabulary( std::string const & vocFileName ); ~Vocabulary(); SR_Vocabulary *getSRVocabularyHandle() { return m_hVocab; } private: SR_Vocabulary *m_hVocab; }; class AcousticModel { public: AcousticModel( std::string & arbFileName ); ~AcousticModel(); CA_Arbdata *getCAModelHandle() {return m_CA_Arbdata; } int getStateIndices(int id, std::vector & stateIDs); private: CA_Arbdata* m_CA_Arbdata; }; class Pronunciation { public: typedef enum PelPosition {LEFT, RIGHT, MIDDLE}; Pronunciation(); // Pronunciation( Vocabulary & vocab ); int lookup( Vocabulary & vocab, std::string & phrase ); ~Pronunciation(); int addPron( std::string & s ); int getPronCount(); // returns number of prons bool getPron( int index, std::string &s ); void clear(); void print(); void printModelIDs(); int getPhonemeCount( int pronIndex ); bool getPhoneme( int pronIndex, int picIndex , std::string &phoneme ); int lookupModelIDs( AcousticModel &acoustic ); int getModelCount( int pronIndex ); // int getModelID( int pronIndex, int modelPos ); bool getPIC( int pronIndex, int picIndex, std::string &pic ); private: Vocabulary *m_pVocab; std::string m_Phrase; std::vector m_Prons; std::vector< std::vector > m_ModelIDs; }; #endif // __vocab_h__