| /*---------------------------------------------------------------------------* |
| * 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 <vector> |
| #include <string> |
| #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<int> & 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<std::string> m_Prons; |
| std::vector< std::vector<int> > m_ModelIDs; |
| }; |
| |
| #endif // __vocab_h__ |
| |
| |