williamr@2: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __SPEECHRECOGNITIONCUSTOMCOMMANDIMPLEMENTOR_H__ williamr@2: #define __SPEECHRECOGNITIONCUSTOMCOMMANDIMPLEMENTOR_H__ williamr@2: williamr@2: // INCLUDES williamr@2: williamr@2: #include williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: This is the main class of Speech Recognition Custom Commands Implementor. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: williamr@2: class MSpeechRecognitionCustomCommandImplementor williamr@2: { williamr@2: public: williamr@2: /** williamr@2: Adds a new pronunciation for the given model into the specified williamr@2: lexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon ID to where the new pronunciation is added. williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelID williamr@2: The model ID. williamr@2: @param aPronunciationID williamr@2: A reference to where a new pronunciation ID is assigned. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrAddPronunciationL( TLexiconID aLexiconID, williamr@2: TModelBankID aModelBankID, TModelID aModelID, williamr@2: TPronunciationID& aPronunciationID ) = 0; williamr@2: williamr@2: /** williamr@2: Adds a new rule for the given pronunciation into the specified williamr@2: grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID, where the new rule is added to williamr@2: @param aLexiconID williamr@2: The lexicon ID. williamr@2: @param aPronunciationID williamr@2: The pronunciation ID. williamr@2: @param aRuleID williamr@2: A reference where a new rule ID is assigned to. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrAddRuleL( TGrammarID aGrammarID, TLexiconID aLexiconID, williamr@2: TPronunciationID aPronunciationID, williamr@2: TRuleID& aRuleID ) = 0; williamr@2: williamr@2: /** williamr@2: Cancels the current operation. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrCancel() = 0; williamr@2: williamr@2: /** williamr@2: Commit uncommited changes to the database. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrCommitChangesL() = 0; williamr@2: williamr@2: /** williamr@2: Creates a new grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: A reference where the grammar ID is stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrCreateGrammarL( TGrammarID& aGrammarID ) = 0; williamr@2: williamr@2: /** williamr@2: Creates a new lexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: A reference where the lexicon ID is stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrCreateLexiconL( TLexiconID& aLexiconID ) = 0; williamr@2: williamr@2: /** williamr@2: Creates a new model bank. williamr@2: williamr@2: @param aModelBankID williamr@2: A reference to where a new model bank ID is assigned. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrCreateModelBankL( TModelBankID& aModelBankID ) = 0; williamr@2: williamr@2: /** williamr@2: Ends the current recognition session. Resources allocated williamr@2: for recognition are freed. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrEndRecSessionL() = 0; williamr@2: williamr@2: /** williamr@2: Returns all grammar IDs that are owned by the client. williamr@2: williamr@2: @param aGrammarIDs williamr@2: A reference where grammar IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllClientGrammarIDsL(RArray& aGrammarIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all lexicon IDs that are owned by the client. williamr@2: williamr@2: @param aLexiconIDs williamr@2: A reference where the lexicon IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllClientLexiconIDsL(RArray& aLexiconIDs ) = 0; williamr@2: /** williamr@2: Returns all modelbank IDs that are owned by the client. williamr@2: williamr@2: @param aModelBankIDs williamr@2: A reference where model bank IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllClientModelBankIDsL(RArray& aModelBankIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all grammar IDs. williamr@2: williamr@2: @param aGrammarIDs williamr@2: A reference where grammar IDs are stored. williamr@2: */ williamr@2: virtual void MSrGetAllGrammarIDsL(RArray& aGrammarIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all lexicon IDs. williamr@2: williamr@2: @param aLexiconIDs williamr@2: A reference where lexicon IDs are stored. williamr@2: */ williamr@2: virtual void MSrGetAllLexiconIDsL(RArray& aLexiconIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all modelbank IDs. williamr@2: williamr@2: @param aModelBankIDs williamr@2: A reference where the model bank IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllModelBankIDsL(RArray& aModelBankIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all model IDs that exist in the specified model bank. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelIDs williamr@2: A reference where model IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllModelIDsL( TModelBankID aModelBankID, williamr@2: RArray& aModelIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all pronunciation IDs that exist in the specified lexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon ID. williamr@2: @param aPronunciationIDs williamr@2: A reference where pronunciation IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllPronunciationIDsL( TLexiconID aLexiconID, williamr@2: RArray& aPronunciationIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns all rule IDs that exist in the specified grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: @param aRuleIDs williamr@2: A reference where rule IDs are stored. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAllRuleIDsL( TGrammarID aGrammarID, williamr@2: RArray& aRuleIDs ) = 0; williamr@2: williamr@2: /** williamr@2: Returns the number of models available for training system wide, williamr@2: based on available disk space. williamr@2: williamr@2: williamr@2: @param aCount williamr@2: A reference where the number of available models is set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetAvailableStorageL( TInt& aCount ) = 0; williamr@2: williamr@2: /** williamr@2: Returns the engine properties specified by the engine property williamr@2: ID array. williamr@2: williamr@2: On return aPropertyValue contains an array of engine properties. williamr@2: williamr@2: @param aPropertyId williamr@2: A constant reference to an array of engine property IDs. williamr@2: @param aPropertyValue williamr@2: A reference to an array of engine property values. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetEnginePropertiesL( const RArray& aPropertyId, williamr@2: RArray& aPropertyValue ) = 0; williamr@2: williamr@2: /** williamr@2: Returns the number of models in the specified model bank. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aCount williamr@2: A reference where the number of models is set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetModelCountL( TModelBankID aModelBankID, TInt& aCount ) = 0; williamr@2: williamr@2: /** williamr@2: Checks if the rule is valid or not. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: @param aRuleID williamr@2: The rule ID. williamr@2: @param aValid williamr@2: A reference where the validity of the rule is set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetRuleValidityL( TGrammarID aGrammarID, williamr@2: TRuleID aRuleID, TBool& aValid ) = 0; williamr@2: williamr@2: /** williamr@2: Returns the duration of the utterance for the specified model. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelID williamr@2: The model ID. williamr@2: @param aDuration williamr@2: A reference where the duration of utterance is set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrGetUtteranceDurationL( TModelBankID aModelBankID, williamr@2: TModelID aModelID, williamr@2: TTimeIntervalMicroSeconds32& aDuration) = 0; williamr@2: /** williamr@2: Loads the specified grammar in into the recognizer; done prior to recognition. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrLoadGrammarL( TGrammarID aGrammarID ) = 0; williamr@2: williamr@2: /** williamr@2: Loads the specified lexicon into the recognizer; done prior to recognition. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrLoadLexiconL( TLexiconID aLexiconID ) = 0; williamr@2: williamr@2: /** williamr@2: Loads the specified model bank into the recognizer; done prior to recognition. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrLoadModelsL( TModelBankID aModelBankID ) = 0; williamr@2: williamr@2: /** williamr@2: Plays the previously trained utterance. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelID williamr@2: The model ID, whose utterance is played. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrPlayUtteranceL( TModelBankID aModelBankID, williamr@2: TModelID aModelID ) = 0; williamr@2: williamr@2: /** williamr@2: Initiates recognition; performed following loading of model bank, lexicon, and grammar. williamr@2: williamr@2: @param aResultSet williamr@2: A reference where the recognition result is set. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRecognizeL( CSDClientResultSet& aResultSet ) = 0; williamr@2: williamr@2: /** williamr@2: Records user utterance for training and recognition. williamr@2: williamr@2: @param aRecordTime williamr@2: A recording time in microseconds. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRecordL( TTimeIntervalMicroSeconds32 aRecordTime ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified grammar from the permanent storage. williamr@2: williamr@2: Removing a grammar will remove all rules within the grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemoveGrammarL( TGrammarID aGrammarID ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified lexicon from the permanent storage. williamr@2: williamr@2: Removing a lexicon will remove all pronunciations within the lexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemoveLexiconL( TLexiconID aLexiconID ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified model bank from the permanent storage. williamr@2: williamr@2: Removing a model bank will remove all models within the model bank. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemoveModelBankL( TModelBankID aModelBankID ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified model from the specified model bank williamr@2: permanently. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelID williamr@2: The model ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemoveModelL( TModelBankID aModelBankID, williamr@2: TModelID aModelID ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified pronunciation from the specified lexicon permanently. williamr@2: williamr@2: @param aLexiconID williamr@2: The lexicon ID. williamr@2: @param aPronunciationID williamr@2: The pronunciation ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemovePronunciationL( TLexiconID aLexiconID, williamr@2: TPronunciationID aPronunciationID ) = 0; williamr@2: williamr@2: /** williamr@2: Removes the specified rule from the specified grammar permanently. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: @param aRuleID williamr@2: The rule ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrRemoveRuleL( TGrammarID aGrammarID, williamr@2: TRuleID aRuleID ) = 0; williamr@2: williamr@2: /** williamr@2: Sets the specified grammar client UID. williamr@2: williamr@2: @param aClientUid The client UID. williamr@2: */ williamr@2: virtual void MSrSetClientUid(TUid aClientUid) = 0; williamr@2: williamr@2: /** williamr@2: Starts a new recognition session. williamr@2: williamr@2: @param aMode williamr@2: The recognition mode. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrStartRecSessionL( TRecognitionMode aMode ) = 0; williamr@2: williamr@2: /** williamr@2: Trains a new model into the specified model bank. williamr@2: williamr@2: @param aModelBankID williamr@2: The model bank ID. williamr@2: @param aModelID williamr@2: A reference to where the new model ID is assigned. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrTrainL( TModelBankID aModelBankID, williamr@2: TModelID& aModelID ) = 0; williamr@2: williamr@2: /** williamr@2: Unloads the specified rule from the specified grammar in temporary williamr@2: memory, previously loaded with LoadGrammarL(). williamr@2: williamr@2: The rule in the permanent storage remains intact. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: @param aRuleID williamr@2: The rule ID. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrUnloadRuleL( TGrammarID aGrammarID, williamr@2: TRuleID aRuleID ) = 0; williamr@2: williamr@2: /** williamr@2: Unloads the specified parameters to the engine. williamr@2: williamr@2: @param aParameterId williamr@2: An array of parameter IDs. williamr@2: @param aParameterValue williamr@2: An array of parameter values. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: virtual void MSrLoadEngineParametersL( williamr@2: const RArray& aParameterId, williamr@2: const RArray& aParameterValue ) = 0; williamr@2: williamr@2: }; williamr@2: williamr@2: #endif // __SPEECHRECOGNITIONCUSTOMCOMMANDIMPLEMENTOR_H__