14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * vocab.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 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** FILE: vocab.h 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project** DATE MODIFIED: 31-Aug-07 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project** DESCRIPTION: Container class for Nuance Vocabulary access 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project** 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project** All rights reserved 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project*/ 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __vocab_h__ 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __vocab_h__ 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <vector> 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <string> 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Session.h" 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "SR_Vocabulary.h" 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project//#include "srec_arb.h" 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "simapi.h" 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define GENERIC_CONTEXT '_' 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define SILENCE_CONTEXT '#' 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define INTRA_SILENCE_CONTEXT '&' 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectclass Vocabulary 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project public: 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Vocabulary(); 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Vocabulary( std::string const & vocFileName ); 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ~Vocabulary(); 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Vocabulary *getSRVocabularyHandle() { return m_hVocab; } 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project private: 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project SR_Vocabulary *m_hVocab; 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}; 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectclass AcousticModel 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project public: 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project AcousticModel( std::string & arbFileName ); 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ~AcousticModel(); 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project CA_Arbdata *getCAModelHandle() {return m_CA_Arbdata; } 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int getStateIndices(int id, std::vector<int> & stateIDs); 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project private: 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project CA_Arbdata* m_CA_Arbdata; 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}; 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectclass Pronunciation 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project public: 7273018b4a1d088cdda0e7bd059fddf1f308a8195aIan Rogers enum PelPosition {LEFT, RIGHT, MIDDLE}; 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Pronunciation(); 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project // Pronunciation( Vocabulary & vocab ); 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int lookup( Vocabulary & vocab, std::string & phrase ); 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ~Pronunciation(); 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int addPron( std::string & s ); 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int getPronCount(); // returns number of prons 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getPron( int index, std::string &s ); 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void clear(); 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void print(); 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void printModelIDs(); 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int getPhonemeCount( int pronIndex ); 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getPhoneme( int pronIndex, int picIndex , std::string &phoneme ); 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int lookupModelIDs( AcousticModel &acoustic ); 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int getModelCount( int pronIndex ); // 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int getModelID( int pronIndex, int modelPos ); 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getPIC( int pronIndex, int picIndex, std::string &pic ); 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project private: 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project Vocabulary *m_pVocab; 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project std::string m_Phrase; 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project std::vector<std::string> m_Prons; 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project std::vector< std::vector<int> > m_ModelIDs; 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}; 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif // __vocab_h__ 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 101