--- a/srsf/sisrscontrollerplugin/src/sicontrollerplugin.h Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1092 +0,0 @@
-/*
-* Copyright (c) 2002-2007 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: This is the main implementation of the SI Controller Plugin.
-* Finite State Machine is implemented here.
-*
-*/
-
-
-#ifndef SICONTROLLERPLUGIN_H
-#define SICONTROLLERPLUGIN_H
-
-// ============================================================================
-// Uncomment the following directive for Bit Exact Testing.
-// ============================================================================
-//
-
-// INCLUDES
-#include "srsfbldvariant.hrh"
-#include <nsssispeechrecognitiondataclient.h>
-#include <nsssispeechrecognitiondatacommon.h>
-#include <nssdevasr.h>
-#include <d32dbms.h>
-
-// FORWARD DECLARATIONS
-class CSIControllerPluginInterface;
-class CDevASR;
-class CSIResourceHandler;
-class CSDClientResultSet;
-
-class CSIGrammarDB;
-class CSIModelBankDB;
-class CSILexiconDB;
-class CDataLoader;
-class CSIDatabase;
-
-#ifdef __SINDE_TRAINING
-class CSindeTrainer;
-#endif // __SINDE_TRAINING
-
-// CLASS DECLARATION
-
-/**
-* This is the main class of SI Controller Plugin
-*
-* @lib SIControllerPlugin.lib
-* @since 2.0
-*/
-class CSIControllerPlugin : public CActive, public MDevASRObserver
-{
-public: // Constructors and destructor
-
- /**
- * Two-phased constructor. CSIControllerPluginInterface& aControllerIf
- */
- static CSIControllerPlugin* NewL( CSIControllerPluginInterface& aControllerInterface );
-
- /**
- * Destructor.
- */
- virtual ~CSIControllerPlugin();
-
-public: // Functions from base classes
-
- /**
- * From MDevASRObserver
- * Spontaneous or non-spontaneous event received from DevASR.
- * @since 2.0
- * @param aEvent event code
- * @param aError error code
- */
- void DevASREvent( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * From MDevASRObserver
- * Notification from DevASR when feature vectors are available.
- * @since 2.0
- * @param aFV buffer containing the feature vector data
- * @param aSNR signal-to-noise ratio
- * @param aPosition indicates whether the feature vector is the first, middle, or end.
- */
- void FeatureVectorDataRcvd( const TDesC8& aFV, TInt32 aSNR, TInt32 aPosition );
-
- /**
- * From MDevASRObserver
- * A message in response to a custom command.
- * @since 2.0
- * @param aMsg buffer containing the message
- */
- void DevASRMessage( TDesC8& aMsg );
-
- /**
- * From MDevASRObserver
- * DevASR calls this method to get lexicon data.
- * @since 2.8
- * @param anID lexicon ID
- * @return Lexicon object
- */
- CSILexicon* SILexiconL( TSILexiconID anID );
-
- /**
- * DevASR calls this method to get configuration data.
- *
- * @since 2.8
- * @param "TUint32 aPackageType" Type identifier.
- * @param "TUint32 aPackageID" Identifier of package.
- * @param "TUint32 aStartPosition" Starting position within package in bytes.
- * @param "TUint32 aEndPosition" Ending position within package in bytes.
- * @return Pointer to created buffer containing the request data.
- */
- HBufC8* ConfigurationData( TUint32 aPackageType,
- TUint32 aPackageID,
- TUint32 aStartPosition,
- TUint32 aEndPosition );
-
- /**
- * Get speech data from audio buffer
- *
- * @since 2.8
- */
- void RequestSpeechData();
-
-#ifdef DEVASR_KEEP_SD
- CSDLexicon* SDLexiconL( TSILexiconID anID ) ;
-#endif
-
-public: // New functions
-
- /**
- * Adds a new pronunciation for the given model into the specified lexicon.
- * @since 2.0
- * @param aLexiconID lexicon Id, where the new pronunciation is added to
- * @param aModelBankID model bank Id
- * @param aModelID model Id
- * @param aPronunciationID reference where a new pronunciation Id is assigned to
- */
- void AddPronunciationL( TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
- TSIModelID aModelID, TSIPronunciationID& aPronunciationID );
-
- void AddPronunciationL( TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
- const TDesC8& aPronunciationPr, TSIPronunciationID& aPronunciationID );
-
- /**
- * Adds a new rule for the given pronunciation into the specified grammar.
- * @since 2.0
- * @param aGrammarID grammar Id, where the new rule is added to
- * @param aLexiconID lexicon Id
- * @param aPronunciationID pronunciation Id
- * @param aRuleID reference where a new rule Id is assigned to
- */
- void AddRuleL( TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
- TSIPronunciationID aPronunciationID, TSIRuleID& aRuleID );
-
- /**
- * Cancels the current activity and returns the plugin to Idle state.
- * @since 2.0
- */
- void Cancel();
-
- /**
- * Commits (saves) the current trained model into a permanent storage.
- * @since 2.0
- */
- void CommitChangesL( TBool aCompact );
-
- /**
- * Creates a new grammar.
- * @since 2.0
- * @param aGrammarID reference where a new rule Id is assigned to
- */
- void CreateGrammarL( TSIGrammarID& aGrammarID );
-
- /**
- * Creates a new lexicon.
- * @since 2.0
- * @param aLexiconID reference where a new lexicon Id is assigned to
- */
- void CreateLexiconL( TSILexiconID& aLexiconID );
-
- /**
- * Creates a new model bank.
- * @since 2.0
- * @param aModelBankID reference where a new model bank Id is assigned to
- */
- void CreateModelBankL( TSIModelBankID& aModelBankID );
-
- /**
- * Ends the current recognition session. Resources allocated for recognition are freed.
- * @since 2.0
- * @param -
- */
- void EndRecSessionL();
-
- /**
- * Returns all grammar Ids that belong to the current client, whose UID was set
- * with SetClientUidL().
- * @since 2.0
- * @param aGrammarIDs reference where grammar Ids are stored
- */
- void GetAllClientGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
-
- /**
- * Returns all lexicon Ids that belong to the current client, whose UID was set
- * with SetClientUidL().
- * @since 2.0
- * @param aLexiconIDs reference where lexicon Ids are stored
- */
- void GetAllClientLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
-
- /**
- * Returns all model bank Ids that belong to the current client, whose UID was set
- * with SetClientUidL().
- * @since 2.0
- * @param aModelBankIDs reference where model bank Ids are stored
- */
- void GetAllClientModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
-
- /**
- * Returns all grammar Ids that exist (for all clients).
- * @since 2.0
- * @param aGrammarIDs reference where grammar Ids are stored
- */
- void GetAllGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
-
- /**
- * Returns all lexicon Ids that exist (for all clients).
- * @since 2.0
- * @param aLexiconIDs reference where lexicon Ids are stored
- */
- void GetAllLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
-
- /**
- * Returns all model bank Ids that exist (for all clients).
- * @since 2.0
- * @param aModelBankIDs reference where model bank Ids are stored
- */
- void GetAllModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
-
- /**
- * Returns all model Ids that exist in the specified model bank.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelIDs reference where model Ids are stored
- */
- void GetAllModelIDsL( TSIModelBankID aModelBankID, RArray<TSIModelID>& aModelIDs );
-
- /**
- * Returns all pronunciation Ids that exist in the specified lexicon.
- * @since 2.0
- * @param aLexiconID lexicon Id
- * @param aPronunciationIDs reference where pronunciation Ids are stored
- */
- void GetAllPronunciationIDsL( TSILexiconID aLexiconID,
- RArray<TSIPronunciationID>& aPronunciationIDs );
-
- /**
- * Returns all rule Ids that exist in the specified grammar.
- * @since 2.0
- * @param aGrammarID grammar Id
- * @param aRuleIDs reference where rule Ids are stored
- */
- void GetAllRuleIDsL( TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleIDs );
-
- /**
- * Returns the number of models available for training system wide, based on
- * available disk space.
- * @since 2.0
- * @param aCount reference where the number of available models is set
- */
- void GetAvailableStorageL( TInt& aCount );
-
- /**
- * Returns the engine properties specified by the engine property ID array.
- * On return aPropertyValue contains an array of engine properties.
- * @since 2.0
- * @param aPropertyId constant reference to array of engine property Ids
- * @param aPropertyValue reference to array of engine property values
- */
- void GetEnginePropertiesL( const RArray<TInt>& aPropertyId,
- RArray<TInt>& aPropertyValue );
-
- /**
- * Returns the number of models in the specified model bank.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aCount reference where the number of models is set
- */
- void GetModelCountL( TSIModelBankID aModelBankID, TInt& aCount );
-
- /**
- * Returns the number of pronunciationin the specified lexicon.
- * @since 2.0
- * @param aLexiconID lexicon Id
- * @param aCount reference where the number of models is set
- */
-
- void GetPronunciationCountL(TSILexiconID aLexiconID, TInt& aCount );
-
- /**
- * Returns the number of rules in the specified grammar.
- * @since 2.0
- * @param aGrammarID Grammar Id
- * @param aCount reference where the number of models is set
- */
- void GetRuleCountL(TSIGrammarID aGrammarID, TInt& aCount );
-
- /**
- * Checks if the rule is valid or not.
- * @since 2.0
- * @param aGrammarID grammar Id
- * @param aRuleID rule Id
- * @param aValid reference where the validity of the rule is set
- */
- void GetRuleValidityL( TSIGrammarID aGrammarID, TSIRuleID aRuleID, TBool& aValid );
-
- /**
- * Returns the duration of the utterance for the specified model.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelID model Id
- * @param aDuration reference where the duration of utterance is set
- */
- void GetUtteranceDurationL( TSIModelBankID aModelBankID, TSIModelID aModelID,
- TTimeIntervalMicroSeconds32& aDuration );
-
- /**
- * Loads the specified recognizer parameter(s). These parameters are used to
- * alter the recognizer's default parameters. The parameters are specified as
- * attribute and value pairs.
- * @since 2.0
- * @param aParameterID list of parameter Ids
- * @param aParameterValue list of parameter values
- */
- void LoadEngineParametersL( const RArray<TInt>& aParameterId,
- const RArray<TInt>& aParameterValue );
-
- /**
- * Loads the specified grammar into the recognizer; done prior to recognition.
- * @since 2.0
- * @param aGrammarID grammar Id
- */
- void LoadGrammarL( TSIGrammarID aGrammarID );
-
- /**
- * Loads the specified lexicon into the recognizer; done prior to recognition.
- * @since 2.0
- * @param aLexiconID lexicon Id
- */
- void LoadLexiconL( TSILexiconID aLexiconID );
-
- /**
- * Loads the specified model bank into the recognizer; done prior to recognition.
- * @since 2.0
- * @param aModelBankID model bank Id
- */
- void LoadModelsL( TSIModelBankID aModelBankID );
-
- /**
- * Plays the previously trained utterance.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelID model Id, whose utterance is played
- */
- void PlayUtteranceL( TSIModelBankID aModelBankID, TSIModelID aModelID );
-
- /**
- * Initiates recognition; performed following loading of model bank, lexicon, and grammar.
- * @since 2.0
- * @param aClientResultSet reference where the recognition result is set
- */
- void RecognizeL( CSDClientResultSet& aClientResultSet );
-
- /**
- * Records uder utterance for training and recognition.
- * @since 2.0
- * @param aRecordTime recording time in microseconds
- */
- void RecordL( TTimeIntervalMicroSeconds32 aRecordTime );
-
- /**
- * Pre-starts sampling.
- * @since 3.2
- */
- void PreStartSamplingL();
-
- /**
- * Removes the specified grammar from the permanent storage.
- * Removing a grammar will remove all rules within the grammar.
- * @since 2.0
- * @param aGrammarID grammar Id
- */
- void RemoveGrammarL( TSIGrammarID aGrammarID );
-
- /**
- * Removes the specified lexicon from the permanent storage.
- * Removing a lexicon will remove all pronunciations within the lexicon.
- * @since 2.0
- * @param aLexiconID lexicon Id
- */
- void RemoveLexiconL( TSILexiconID aLexiconID );
-
- /**
- * Removes the specified model bank from the permanent storage.
- * Removing a model bank will remove all models within the model bank.
- * @since 2.0
- * @param aModelBankID model bank Id
- */
- void RemoveModelBankL( TSIModelBankID aModelBankID );
-
- /**
- * Removes the specified model from the specified model bank permanently.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelID model Id
- */
- void RemoveModelL( TSIModelBankID aModelBankID, TSIModelID aModelID );
-
- /**
- * Removes the specified pronunciation from the specified lexicon permanently.
- * @since 2.0
- * @param aLexiconID lexicon Id
- * @param aPronunciationID pronunciation Id
- */
- void RemovePronunciationL( TSILexiconID aLexiconID, TSIPronunciationID aPronunciationID );
-
- /**
- * Removes the specified rule from the specified grammar permanently.
- * @since 2.0
- * @param aGrammarID grammar Id
- * @param aRuleID rule Id
- */
- void RemoveRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
-
- /**
- * Removes the specified rules from the specified grammar permanently.
- * @since 2.0
- * @param aGrammarID grammar Id
- * @param aRuleIDs rule Ids
- */
- void RemoveRulesL(TSIGrammarID aGrammarID,RArray<TSIRuleID>& aRuleIDs );
-
- /**
- * Sets the client's UID for data ownership identification.
- * @since 2.0
- * @param aClientUid client's UID
- */
- void SetClientUid( TUid aClientUid );
-
- /**
- * Sets the priority settings for this controller.
- * @since 2.0
- * @param aPrioritySettings new priority settings
- */
- void SetPrioritySettings( const TMMFPrioritySettings& aPrioritySettings );
-
- /**
- * Starts a new recognition session.
- * @since 2.0
- */
- void StartRecSessionL();
-
- /**
- * Trains a new model into the specified model bank.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelID reference where a new model Id is assigned to
- */
- void TrainL( TSIModelBankID aModelBankID, TSIModelID& aModelID );
-
- /**
- * Unloads the specified rule from the specified grammar in temporary memory, previously
- * loaded with LoadGrammarL. The rule in the permanent storage remains intact.
- * @since 2.0
- * @param aGrammarID grammar Id
- * @param aRuleID rule Id
- */
- void UnloadRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
-
-
- // SI component
-
- /**
- *
- * Does speaker adapation to speaker independent models
- * @since 2.8
- * @param aResultSet a recognition result containing adaptation data
- * @param aCorrect identifies the correct recognition result from the N-best list.
- */
- void AdaptL( CSIClientResultSet& aResultSet ,TInt aCorrect );
-
- /**
- * Adds a new pronunciation for the given model into the specified lexicon.
- * @since 2.0
- * @param aLexiconID lexicon Id
- * @param aTrainText: the text to be trained
- * @param aTrainText: the text to be trained
- * @param aLanguage the pronunciation language
- * @param aPronunciationID: reference where a new pronunciation identifier is set.
- */
- void AddPronunciationL( TSILexiconID aLexiconID,
- const TDesC& aTrainText,
- TLanguage aLanguage,
- TSIPronunciationID& aPronunciationID );
-
- /**
- * From MSpeechRecognitionCustomCommandImplementor
- * Adds a new rule variant for the given pronunciation into the specified grammar.
- * @since 2.0
- * @param aGrammarID grammar Id, where the new rule is added to
- * @param aLexiconID lexicon Id
- * @param aPronunciationIDs pronunciation Id array
- * @param aRuleVariantID reference where a new rule Variant Id is assigned to
- */
- void AddRuleVariantL( TSIGrammarID aGrammarID,
- TSILexiconID aLexiconID,
- RArray<TSIPronunciationID>& aPronunciationIDs,
- TSIRuleID aRuleID,TSIRuleVariantID& aRuleVariantID );
-
- /**
- * Trains a new voice tag. The recognition phrase is the concatenation of words in the aTrainArray.
- * Pronunciations are created with all given languages, which are supported.
- * @since 2.8
- * @param aTrainArray: Recognition phrase is formed by concatenating the descriptors in this array.
- * @param aLanguageArray Pronunciations are created with these languages. Not all languages are supported. The argument can be NULL.
- * @param aLexiconID lexicon Id
- * @param aGrammarID grammar Id, where the new rule is added to
- * @param aRuleID reference where a new rule Id is assigned to
- */
- void AddVoiceTagL( MDesCArray& aTrainArray,
- RArray<TLanguage>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID& aRuleID );
-
- /**
- * Adds several new voice tags.
- * @since 2.8
- * @param aTrainArray : An array of MDesCArrays. The recognition phrases are formed by concatenating the descriptors in the MDesCArrays.
- * @param aLanguageArray Pronunciations are created with these languages. Not all languages are supported. The argument can be NULL.
- * @param aLexiconID lexicon Id
- * @param aGrammarID grammar Id, where the new rule is added to
- * @param aRuleID reference where a new rule Id is assigned to
- */
- void AddVoiceTagsL( RPointerArray<MDesCArray>& aTrainArray,
- RArray<TLanguage>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& aRuleID );
-
-#ifdef __SINDE_TRAINING
- /**
- * Trains one new SINDE voice tag. The recognition phrase is the
- * concatenation of words in the aTrainArray. Pronunciations are
- * created with all given languages, which are supported.
- *
- * @since 3.1
- * @param aTrainArray Recognition phrase is formed by concatenating
- * the descriptors in this array.
- * @param aLanguageArray Pronunciations are created with these languages..
- * @param aLexiconID Lexicon Id
- * @param aGrammarID Grammar Id, where the new rule is added to.
- * @param aRuleID Reference where a new rule Id is assigned to.
- */
- void AddSindeVoiceTagL( MDesCArray& aTrainArray,
- RArray<RLanguageArray>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- TSIRuleID& aRuleID );
-
- /**
- * Adds several new SINDE voice tags.
- *
- * @since 3.1
- * @param aTrainArray Recognition phrase is formed by concatenating
- * the descriptors in this array.
- * @param aLanguageArray Pronunciations are created with these languages..
- * @param aLexiconID Lexicon Id
- * @param aGrammarID Grammar Id, where the new rule is added to.
- * @param aRuleID Reference where a new rule Ids are assigned to.
- */
- void AddSindeVoiceTagsL( RPointerArray<MDesCArray>& aTrainArray,
- RArray<RLanguageArray>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& aRuleID );
-
-#endif // __SINDE_TRAINING
-
- /**
- * Creates a new empty rule.
- * @since 2.8
- * @param aGrammarID grammar Id, where the new rule is added to
- * @param aRuleID reference where a new rule Id is assigned to
- */
- void CreateRuleL( TSIGrammarID aGrammarID, TSIRuleID& aRuleID );
-
- /**
- * Initiates recognition; performed following loading of model bank, lexicon, and grammar.
- * @since 2.8
- * @param aResultSet: reference where the recognition result is set.
- */
- void RecognizeL( CSIClientResultSet& aResultSet );
-
- /**
- * Ends recording. Unlike Cancel(), this function may return a recognition
- * result if adequate number of samples was already recorded.
- * @since 2.8
- */
- void EndRecordL();
-
- /**
- * Unloads the specified grammar from the temporary memory,
- * previously loaded with MSrLoadGrammarL. The grammar in the permanent storage remains intact.
- * result if adequate number of samples was already recorded.
- * @since 2.0
- * @param aGrammarID grammar Id, where the new rule is added to
- */
- void UnloadGrammarL( TSIGrammarID aGrammarID );
-
- /**
- * Activate the grammar for the recognition
- * @since 2.8
- * @param aGrammarID grammar Id
- */
- void ActivateGrammarL( TSIGrammarID aGrammarID ) ;
- /**
- * Deactivate the grammar
- * @since 2.8
- * @param aGrammarID grammar Id
- */
- void DeactivateGrammarL( TSIGrammarID aGrammarID );
-
- /**
- * Create a empty rule into a given grammar
- * @since 2.8
- * @param aGrammar : a compiled grammar
- * @return Created rule
- */
- CSIRule* CreateNewRuleL( CSICompiledGrammar* aGrammar );
-
- /**
- * Create a pronunciation into a given lexicon
- * @since 2.8
- * @param aLexicon : a lexicon
- * @param aPronunciationPr : phoneme sequence of the pronunciation
- * @param aModelBankID : modelbank id
- * @return Created pronunciation id
- */
- TSIPronunciationID CreateNewPronunciationL( CSILexicon* aLexicon,
- TDesC8& aPronunciationPr,
- TSIModelBankID aModelBankID );
-
- /**
- * Add rule variants into a given rule
- * @since 2.8
- * @param aRule : a given rule
- * @param aLexiconID : a lexicon ID, the added rule variant's pronunciations belong to this lexicon
- * @param aPronunciationIDs : array of Pronunciation IDs,
- * @param aParameters : other parameters,such as language ID, for rule variants
- */
- void AddNewRuleVariantL( CSIRule& aRule,
- TSILexiconID aLexiconID,
- RArray<TSIPronunciationID>& aPronunciationIDs,
- CSIParameters& aParameters );
-
- // Test functions
- CSIRule* CreateRule1L(void);
- CSIRule* CreateRule2L(void);
- void CheckRule1L(const CSIRule* aRule);
- void CheckRule2L(const CSIRule* aRule);
-#ifdef __CONSOLETEST__
-
- // Unit Test
- public:
-
- // Returns reference to a database
- RDbNamedDatabase& GetDb();
-
- // Returns reference to model bank array
- RPointerArray<CSIModelBank>& ModelBankArray();
-
- // Returns current plugin state
- TInt PluginState();
-#endif
-
- private:
-
- /**
- * C++ default constructor.
- */
- CSIControllerPlugin( CSIControllerPluginInterface& aControllerIf );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- /**
- * RunL from CActive class.
- */
- void RunL();
-
- /**
- * Cancel handle from CActive class.
- */
- void DoCancel();
-
- /**
- * This method completes the request status and set the object active
- * to provide asynchronous behavior.
- * @since 2.0
- */
- void DoAsynch();
-
- /**
- * Plays the previously trained utterance.
- * @since 2.0
- * @param aModelBankID model bank Id
- * @param aModelID model Id, whose utterance is played
- */
- void PlayL( TSIModelBankID aModelBankID, TSIModelID aModelID );
-
- /**
- * Handles DevASR events received while in Training state.
- * @since 2.0
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventTrainL( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * Handles DevASR events received while in Recognition state.
- * @since 2.0
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventRecognize( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * Handles DevASR events received while in remove rule state.
- * @since 2.8
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventRemoveRule( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * Handles DevASR events received while in remove rules state.
- * @since 2.8
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventRemoveRules( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * Handles DevASR events received while in TTP state.
- * @since 2.8
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventTTP( TDevASREvent aEvent,
- TDevASRError aError );
-
- /**
- * Handles DevASR events received while in Play state.
- * @since 2.0
- * @param aEvent event code
- * @param aError error code
- */
- void HandleEventPlayL( TDevASREvent aEvent, TDevASRError aError );
-
- /**
- * Frees memory allocated during recognition and resets the state to Idle.
- * @since 2.0
- */
- void RecognitionReset();
-
- /**
- * Handles the acoustic model and the user utterance from DevASR received upon
- * TrainComplete event.
- * @since 2.0
- */
- void ProcessTrainCompleteL();
-
- /**
- * Handles the transfer of recognition result from DevASR into client's
- * recognition result.
- * @since 2.0
- * @return Number of results to the client
- */
- TInt ProcessRecognitionComplete();
-
- /**
- * Save TTP result into the given grammar and lexicon of the plugin database
- * @since 2.8
- * @param aSITtpWordList : data structure contains ttp results, word entries and their corresponding prounication
- * @param aLexiconID : a lexicon ID, the added rule variant's pronunciations belong to this lexicon
- * @param aRuleIDs : array of generated Rule IDs,
- * @param aParameters : other parameters,such as language ID, for rule variants
- */
-// void UpdateGrammarAndLexiconL(CSITtpWordList* aSITtpWordList , TSILexiconID aLexiconID, TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleIDs);
-
- /**
- * Save TTP result into the given grammar and lexicon of the plugin database
- * @since 2.8
- * @param aSITtpWordList : data structure contains ttp results, word entries and their corresponding prounication
- * @param aLexiconID : a lexicon ID, the added rule variant's pronunciations belong to this lexicon
- * @param aGrammarID : a grammar Id
- * @param aRuleIDs : array of generated Rule IDs,
- */
- void UpdateGrammarAndLexiconDBL( CSITtpWordList* aSITtpWordList,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID,
- RArray<TSIRuleID>& aRuleIDs );
-
- /**
- * Is the lexicon id valid in the database
- * @since 2.8
- * @param aLexiconID : a lexicon ID,
- * @return True or false
- */
- TBool IsLexiconIDInvalid( TSILexiconID aLexiconID );
-
- /**
- * Is the Grammar id valid in the database
- * @since 2.8
- * @param aGrammarID : a grammar Id
- * @return True or false
- */
- TBool IsGrammarIDInvalid( TSIGrammarID aGrammarID );
-
- // ============================================================================
- // These methods are handlers for asynchronous messages that are called from
- // the RunL. The parameters are identical to how they were initially received
- // under Public section of this class, therefore not repeated here.
- // ============================================================================
- //
-// void HandleAddPronunciationL( TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
-// TSIModelID aModelID, TSIPronunciationID& aPronunciationID );
-
-// void HandleAddPronunciationL( TSILexiconID aLexiconID, TSIModelBankID aModelBankID,
-// TDesC8& aPronunciationPr, TSIPronunciationID& aPronunciationID );
-
- void HandleAddRuleL( TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
- TSIPronunciationID aPronunciationID, TSIRuleID& aRuleID );
-
- void HandleCreateGrammarL( TSIGrammarID& aGrammarID );
-
- void HandleCreateLexiconL( TSILexiconID& aLexiconID );
-
- void HandleCreateModelBankL( TSIModelBankID& aModelBankID );
-
- void HandleGetAllClientGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
-
- void HandleGetAllClientLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
-
- void HandleGetAllClientModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
-
- void HandleGetAllGrammarIDsL( RArray<TSIGrammarID>& aGrammarIDs );
-
- void HandleGetAllLexiconIDsL( RArray<TSILexiconID>& aLexiconIDs );
-
- void HandleGetAllModelBankIDsL( RArray<TSIModelBankID>& aModelBankIDs );
-
- void HandleGetAllModelIDsL( TSIModelBankID aModelBankID, RArray<TSIModelID>& aModelIDs );
-
- void HandleGetAllPronunciationIDsL( TSILexiconID aLexiconID,
- RArray<TSIPronunciationID>& aPronunciationIDs );
-
- void HandleGetAllRuleIDsL( TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleIDs );
-
- void HandleGetAvailableStorageL( TInt& aCount );
-
- void HandleGetModelCountL( TSIModelBankID aModelBankID, TInt& aCount );
-
- void HandleGetPronunciationCountL(TSIModelBankID aLexiconID,TInt& aCount );
-
- void HandleGetRuleCountL(TSIGrammarID aGrammarID,TInt& aCount );
-
- void HandleGetRuleValidityL( TSIGrammarID aGrammarID, TSIRuleID aRuleID, TBool& aValid );
-
- void HandleGetUtteranceDurationL( TSIModelBankID aModelBankID, TSIModelID aModelID,
- TTimeIntervalMicroSeconds32& aDuration );
-
- void HandleLoadGrammarL( TSIGrammarID aGrammarID );
-
- void HandleLoadLexiconL( TSILexiconID aLexiconID );
-
- void HandleLoadModelsL( TSIModelBankID aModelBankID );
-
- void HandleRecognizeL();
-
- void HandleRecordL( TTimeIntervalMicroSeconds32 aRecordTime );
-
- void HandleRemoveGrammarL( TSIGrammarID aGrammarID );
-
- void HandleRemoveLexiconL( TSILexiconID aLexiconID );
-
- void HandleRemoveModelBankL( TSIModelBankID aModelBankID );
-
- void HandleRemoveModelL( TSIModelBankID aModelBankID, TSIModelID aModelID );
-
- void HandleRemovePronunciationL( TSILexiconID aLexiconID, TSIPronunciationID aPronunciationID );
-
- void HandleRemoveRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
-
- void HandleRemoveRulesL( TSIGrammarID aGrammarID,RArray<TSIRuleID>& aRuleIDs );
-
- void HandleTrainL( TSIModelBankID aModelBankID );
-
- void HandleUnloadRuleL( TSIGrammarID aGrammarID, TSIRuleID aRuleID );
-
- void HandlePlayUtteranceL(TSIModelBankID aModelBankID, TSIModelID aModelID);
- // SI component
-
- void HandleAdaptL(CSIClientResultSet& aResultSet ,TInt aCorrect);
-
-
-// void HandleAddPronunciationL(TSILexiconID aLexiconID, TPtrC& aTrainText,
-// TLanguage aLanguage, TSIPronunciationID* aPronunciationID) ;
-
- void HandleAddRuleVariantL(TSIGrammarID aGrammarID, TSILexiconID aLexiconID,
- RArray<TSIPronunciationID>& aPronunciationIDs,TSIRuleID aRuleID, TSIRuleVariantID& aRuleVariantID );
-
- void HandleAddVoiceTagL( MDesCArray& aTrainArray, RArray<TLanguage>& aLanguageArray,
- TSILexiconID aLexiconID, TSIGrammarID aGrammarID, TSIRuleID* aRuleIDPtr);
-
- void HandleAddVoiceTagsL( RPointerArray<MDesCArray>* aTrainArray, RArray<TLanguage>& aLanguageArray, TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID/*,
- RArray<TSIRuleID>& aRuleID*/);
-
-#ifdef __SINDE_TRAINING
- void HandleAddSindeVoiceTagsL( RPointerArray<MDesCArray>* aTrainArrays,
- RArray<RLanguageArray>& aLanguageArray,
- TSILexiconID aLexiconID,
- TSIGrammarID aGrammarID );
-#endif // __SINDE_TRAINING
-
- void HandleCreateRuleL(TSIGrammarID aGrammarID, TSIRuleID& aRuleID) ;
-
-// void HandleRecognizeL( CSIClientResultSet& aResultSet );
-
- void HandleEndRecordL();
-
- void HandleUnloadGrammarL( TSIGrammarID aGrammarID );
-
-// void HandleUpdateGrammarAndLexiconL(CSITtpWordList* iSITtpWordList , TSILexiconID aLexiconID, TSIGrammarID aGrammarID, RArray<TSIRuleID>& aRuleID);
-
- void HandlePreStartSamplingL();
-
- private: // Data
-
- // SI Controller Plugin states
- enum TControllerState
- {
- ESiPluginIdle,
- ESdPluginTrain,
- ESiPluginRecognize,
- ESiPluginAdapt,
- ESiPluginTrainText,
- ESiPluginRemoveRule ,
- ESiPluginRemoveRules,
- ESiPluginPlay,
- ESiPluginTrainSinde
- };
-
-
- // SI Controller Plugin state
- TControllerState iState;
- // Result to be sent to the client
- TInt iResult;
-
- // Reference to Controller Interface
- CSIControllerPluginInterface& iControllerIf;
-
- // SI Database
- CSIDatabase* iSIDatabase;
-
-
- // SI part
- // Model Bank database
- CSIModelBankDB* iSIModelBankDB;
- // Lexicon database
- CSILexiconDB* iSILexiconDB;
- // Grammar database
- CSIGrammarDB* iSIGrammarDB;
- TBool iVoiceTagDBLocked;
- // Resource file handler
- CSIResourceHandler* iResourceHandler;
-
- // Client's UID for data ownership identification
- TUid iClientUid;
- TBool iClientRegistered;
-
- // DevASR
- CDevASR* iDevASR;
-
- CSIResultSet* iSIResultSet; // Used during recognition
-
- /// Begin: data used in async handling of requests
- TInt iRequestFunction;
- TSIGrammarID iGrammarID;
- TSILexiconID iLexiconID;
- TSIModelBankID iModelBankID;
- TSIRuleID iRuleID;
- TSIRuleVariantID iRuleVariantID;
- TSIPronunciationID iPronunciationID;
- //RArray<TSIPronunciationID> iPronunciationIDs;
- TSIModelID iModelID;
- TTimeIntervalMicroSeconds32 iRecordTime;
- TSIGrammarID* iGrammarIDPtr;
- TSILexiconID* iLexiconIDPtr;
-
- TSIModelBankID* iModelBankIDPtr;
- TSIRuleID* iRuleIDPtr;
- TSIRuleVariantID* iRuleVariantIDPtr;
- TSIPronunciationID* iPronunciationIDPtr;
- TSIModelID* iModelIDPtr;
- TInt* iCountPtr;
- TBool* iValidPtr;
- TTimeIntervalMicroSeconds32* iDurationPtr;
-
-
-
- RArray<TSIGrammarID>* iGrammarIDs;
- RArray<TSILexiconID>* iLexiconIDs;
-
- RArray<TSIModelBankID>* iModelBankIDs;
- RArray<TSIModelID>* iModelIDs;
- RArray<TSIPronunciationID>* iPronunciationIDs;
- RArray<TSIRuleID>* iRuleIDs;
-
- // End: data used in async handling of requests
-
-
- // SI componet
- CSIClientResultSet* iSIClientResultSet ;
-
- TInt iCorrect;
- TPtrC iTrainTextPtr;
- TLanguage iLanguage;
- RArray<TLanguage>* iLanguageArray;
- RArray<RLanguageArray>* iLanguageArrayArray;
- MDesCArray *iTrainArray ;
- RPointerArray<MDesCArray>* iTrainArrays;
- CSITtpWordList* iSITtpWordList;
- RArray<TUint32> iMaxNPronunsForWord;
- TPtrC8 iPronunciationPr;
- CSICompiledGrammar *iSICompiledGrammar;
- TSIPronunciationID* iLastAddedPronunciationIDPtr;
- TSIRuleID* iLastAddedRuleIDPtr;
-
- // recompile grammar during remove rule .
- CSICompiledGrammar* iSICompiledGrammarRecompile; // Pointer to grammar to in remove rule
- TSIGrammarID iGrammarIDRecompile;
- TBool iIsGrammarRecompile;
- TSIRuleID iRuleIDRemove;
- TBool iIsRecompileGrammarActive;
-
- // TTP data loader
-
- //CTTPDataLoader* iTtpLoader;
- CDataLoader* iDataLoader;
-
- // Audio
- HBufC8* iAudioBuffer;
- TInt iNSamplesSent;
- TPtrC8 iCurrentAudioBuffer;
-
- TTimeIntervalMicroSeconds32 iRecordDurations;
- //TSIRuleVariantID iRuleVariantID;
- RDbNotifier iRDbNotifier;
-
-#ifdef __SINDE_TRAINING
- // Class which takes care of SINDE type of training process
- CSindeTrainer* iSindeTrainer;
-#endif // __SINDE_TRAINING
- };
-
-#endif // __CSIControllerPlugin_H__
-
-// End of File