diff -r b13cd05eeb2f -r 57b735022c18 srsf/devasr/src/devasrvmalgorithmmanager.h --- a/srsf/devasr/src/devasrvmalgorithmmanager.h Mon Jan 18 20:20:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,339 +0,0 @@ -/* -* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Algorithm manager for grammar handling algorihtms. -* -*/ - - -#ifndef DEVASRVMALGORITHMMANAGER_H -#define DEVASRVMALGORITHMMANAGER_H - -// INCLUDES -#include -#include -#include -#include -#include - -//#include "DevASRSrsAlgorithmManager.h" - -// DATA TYPES -enum TTtpHwState - { - ETtpStateUninitialized = 0, - ETtpStateIdle, - ETtpStateBusy - }; - -enum TGrCompilerState - { - EGrStateUninitialized = 0, - EGrStateIdle, - EGrStateBusyCompiling, - EGrStateBusyCombining - }; - - -// FORWARD DECLARATIONS -class MDevASRObserver; -class MSDGrammarCompiler; -//class CASRGrCompilerHwDevice; -//class CASRSVocManHwDevice; -//class CASRSTtpHwDevice; - -// CLASS DECLARATIONS - -/** -* Observer mixin. -* -* @lib NssDevAsr.lib -* @since 2.8 -*/ -class MVmAlgMgrObserver - { - public: - /** - * Called when grammars have been combined. - */ - virtual void CombineComplete( HBufC8* aResult, TInt aError ) = 0; - - /** - * Called by CVMAlgorithmManager when it needs a grammar object. - * - * @param "TSIGrammarID aGrammarID" Grammar identifier which is needed. - * @param "CSICompiledGrammar** aSIActiveGrammar" Output parameter which will - * contain the grammar object pointer if grammar is currently active. - * @param "CSICompiledGrammar** aSIDeActivatedGrammar" Output parameter which will - * contain the grammar object pointer if grammar is currently not active. - */ - virtual void GetGrammarL( const TSIGrammarID aGrammarID, - CSICompiledGrammar** aSIActiveGrammar, - CSICompiledGrammar** aSIDeActivatedGrammar ) = 0; - }; - -/** -* Algorithm manager to handle VocMan, Ttp and Grammar Compiler -* -* @lib NssDevAsr.lib -* @since 2.8 -*/ -class CVMAlgorithmManager : public CBase, public MASRSTtpHwDeviceObserver, public MASRSGrCompilerHwDeviceObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CVMAlgorithmManager* NewL( MDevASRObserver& aObserver, MVmAlgMgrObserver& aVmObserver ); - - /** - * Destructor. - */ - virtual ~CVMAlgorithmManager(); - - public: // New functions - - - /** - * Use to adapt rule after recognition. - * - * @since 2.8 - * @param "CSIResultSet& aResultSet" Result set. - * @param "TInt aResultIndex" Index of correct result. - */ - void AdaptVocabL( const CSIResultSet& aResultSet, - TInt aResultIndex ); - - /** - * Cancels training. - * - * @since 2.8 - */ - void Cancel(); - - /** - * Computes number of rule variants for grammar. - * - * @since 2.8 - * @param "CSIGrammar& aGrammar" A grammar where to add new rules. - * @param "TUint32 aTargetNRuleVariants" Preferable target number of - * all rule variants after adding new rule variants - * @param "TUint32 aMaxNRuleVariants" Maximum number of all rule variants. - * @param "RArray& aNewRuleScores" Scores for each new rule. The - * size of array tells also how many new rules will be added. - * Based on the scores some rules can get more rule variants - * than others. If there is no scores available, the array - * should initialize with constant values. - * @param "RArray& aNNeNRuleVariants" Array where to add number - * of new rule variants for new rules. The order is equivalent - * to aNewRuleScores. - * @param "TUint32& aNPrune" Number of rule variants which should be - * pruned before adding new rule variants. - */ - void ComputeNewGrammarSizeL( const CSIGrammar& aGrammar, - const TUint32 aTargetNRuleVariants, - const TUint32 aMaxNRuleVariants, - const RArray& aNewRuleScores, - RArray& aNNeNRuleVariants, - TUint32& aNPrune ); - - - /** - * Compiles SI or SD grammar to internal format. - * - * @since 2.8 - * @param "aGrammar" Reference to grammar object. - * @param "aModelBank" Reference to model bank. - */ - void CompileGrammarL( CSICompiledGrammar& aGrammar ); - - /** - * Invoked when grammar combining is needed - * - * @since 2.8 - * @param "RPointerArray& aCompiledGrammars" - * Array of previously compiled grammar - * @param "const RPointerArray& aExcludedRules" - * Rules to be blacklisted. - */ - void CombineGrammarL( const RPointerArray& aCompiledGrammars, - const RPointerArray& aExcludedRules ); - - - /** - * Determines which rule variants can be removed. - * - * @since 2.8 - * @param "CSIGrammar& aGrammar" A grammar to be pruned. - * @param "TUint32 aMinNumber" Minimum number of pruned items - * @param "RArray aPrunedRuleVariants" A array where - * to put information which variants can be pruned. - */ - TBool PruneGrammar( const CSIGrammar& aGrammar, - const TUint32 aMinNumber, - RArray& aPrunedRuleVariants ); - - /** - * Resolves result using Grammar Compiler. - * - * @since 2.8 - * @param "RArray& aNBestIDs" List of N-best results - * @param " - */ - void ResolveResult( const RArray& aNBestIDs, - CSIResultSet& aSIResultSet, - const RPointerArray& aSICompiledGrammar, - const TDesC8& aCombinedData ); - - /** - * Starts training from text. - * - * @since 2.8 - * @param "CSITtpWordList& aWordList" Text for training. - * @param "RArray& aDefaultLanguage" Default language for - * pronunciations. - * @param "RArray& aMaxNPronunsForWord" Maximum number of - * pronunciation per word. - */ - void TrainFromTextL( CSITtpWordList& aWordList, - const RArray& aDefaultLanguage, - const RArray& aMaxNPronunsForWord ); - - /** - * Retreive the properties of the engines. - * - * @since 2.0 - * @param "RArray& aPropertyId" An array of identifiers being querried. - * @param "RArray& aPropertyValue" An array of values corresponding - * to the querried identifiers. - */ - void GetEnginePropertiesL( const RArray& aPropertyId, - RArray& aPropertyValue ); - - /** - * Load the specified parameter(s) to the engines. - * - * @param "RArray& aParameterId" An array of parameter identifiers. - * @param "RArray& aParameterValue" An array of parameter values. - */ - void LoadEnginePropertiesL( const RArray& aParameterId, - const RArray& aParameterValue ); - - - public: // From MASRTtpHwDeviceObserver - - /** - * Callback function to load configuration data. - * - * @param "TUint32 aPackageType" Type identifier. - * @param "TUint32 aPackageID" Package identifier. - * @param "TUint32 aStartPosition" First byte. - * @param "TUint32 aEndPosition" Last byte. If greater than the size of - * the data, rest of the data is given. - * @return Pointer to the data buffer, TTP HW Device takes ownership. - */ - HBufC8* MathdoConfigurationData( TUint32 aPackageType, TUint32 aPackageID, - TUint32 aStartPosition = 0, - TUint32 aEndPosition = KMaxTUint32 ); - - /** - * Callback function to notify that word list is converted. - * - * @param "TInt aError" Error code, KErrNone if successful. - */ - void MathdoWordListReady( const TInt aError ); - - public: // From MASRSGrCompilerObserver - - /** - * Grammar has been compiled. - * - * @param "TInt aError" An error code. - */ - void MghdoGrammarCompilerComplete( TInt aError ); - - /** - * Grammars have been combined. - * - * @param "HBufC8* aResult" Contains the compiled grammar, NULL if error - * happened. - * @param "TInt aError" KErrNone if successful. - */ - void MghdoGrammarCombinerComplete( HBufC8* aResult, TInt aError ); - - /** - * Called when GrCompilerHwDevice needs an SI lexicon. - * - * @param "TSILexiconID anID" Requested lexicon id. - * @return Pointer to created lexicon. - */ - CSILexicon* MghdoSILexiconL( TSILexiconID anID ); - - /** - * Called when GrCompiler needs configuration data package - */ - HBufC8* MghdoConfigurationData( TUint32 aPackageType, - TUint32 aPackageID, - TUint32 aStartPosition = 0, - TUint32 aEndPosition = KMaxTUint32 ); - - private: - -/* void DeleteData( TPtrC8& aData );*/ - - /** - * C++ default constructor. - */ - CVMAlgorithmManager( MDevASRObserver& aObserver, MVmAlgMgrObserver& aVmObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - // Prohibit copy constructor - CVMAlgorithmManager( const CVMAlgorithmManager& ); - // Prohibit assigment operator - CVMAlgorithmManager& operator=( const CVMAlgorithmManager& ); - - private: // Data - // Grammar compiler HW device - CASRSGrCompilerHwDevice* iGrCompiler; - - // Vocabulary management HW device - CASRSVocManHwDevice* iVocMan; - - // TTP HW device - CASRSTtpHwDevice* iTtp; - - // Observer - MDevASRObserver& iObserver; - - // Array for data pointers -// RPointerArray iDataArray; - - // TtpHwDevice state - TTtpHwState iTtpState; - - // GrCompilerHwDeviceState - TGrCompilerState iGrState; - - // Our own observer - MVmAlgMgrObserver& iVmAlgObserver; - - }; - -#endif // DEVASRVMALGORITHMMANAGER_H - -// End of File