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 __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__ williamr@2: #define __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__ williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: This is the main class of Speech Recognition Custom Commands. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: class RSpeechRecognitionCustomCommands : public RMMFCustomCommandsBase williamr@2: { williamr@2: public: williamr@2: /** williamr@2: Public C++ constructor for RSpeechRecognitionCustomCommands class. williamr@2: williamr@2: @param aController williamr@2: A reference to a RMMFController object. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C RSpeechRecognitionCustomCommands(RMMFController& aController); williamr@2: williamr@2: /** williamr@2: Adds a new pronunciation for the given model into the specified 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt AddPronunciation(TLexiconID aLexiconID, williamr@2: TModelBankID aModelBankID, TModelID aModelID, williamr@2: TPronunciationID& aPronunciationID); williamr@2: williamr@2: /** williamr@2: Adds a new rule for the given pronunciation into the specified grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID to where the new rule is added. 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 to where a new rule ID is assigned. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt AddRule(TGrammarID aGrammarID, TLexiconID aLexiconID, williamr@2: TPronunciationID aPronunciationID, TRuleID& aRuleID); williamr@2: williamr@2: /** williamr@2: Cancels the current operation. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void Cancel(); williamr@2: williamr@2: /** williamr@2: Commits the current train operation to the database. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt CommitChanges(); williamr@2: williamr@2: /** williamr@2: Creates a new grammar. williamr@2: williamr@2: @param aGrammarID williamr@2: A reference to where the grammar ID is stored. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt CreateGrammar(TGrammarID& aGrammarID); williamr@2: williamr@2: /** williamr@2: Creates a new lexicon. williamr@2: williamr@2: @param aLexiconID williamr@2: A reference where lexicon ID is stored. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt CreateLexicon(TLexiconID& aLexiconID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt CreateModelBank(TModelBankID& aModelBankID); williamr@2: williamr@2: /** williamr@2: Ends the current recognition session. williamr@2: williamr@2: The resources allocated for recognition are freed. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt EndRecSession(); williamr@2: williamr@2: /** williamr@2: Returns all grammar IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllClientGrammarIDs(); williamr@2: williamr@2: /** williamr@2: Returns all lexicon IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllClientLexiconIDs(); williamr@2: williamr@2: /** williamr@2: Returns all modelBank IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllClientModelBankIDs(); williamr@2: williamr@2: /** williamr@2: Returns all grammar IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllGrammarIDs(); williamr@2: williamr@2: /** williamr@2: Returns all lexicon IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllLexiconIDs(); williamr@2: williamr@2: williamr@2: /** williamr@2: Returns all modelBank IDs owned by the client. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllModelBankIDs(); 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: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllModelIDs(TModelBankID aModelBankID); 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: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllPronunciationIDs(TLexiconID aLexiconID); 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: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAllRuleIDs(TGrammarID aGrammarID); 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: @param aAvailableStorage williamr@2: The number of models that can be held in available storage space. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetAvailableStorage(TInt& aAvailableStorage); williamr@2: williamr@2: /** williamr@2: Returns the engine properties specified by the engine property williamr@2: ID array. On return aPropertyValue contains an array of engine williamr@2: 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetEngineProperties(const RArray& aPropertyId, williamr@2: RArray& aPropertyValue); 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 aModelCount williamr@2: The reference where the number of models is set. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetModelCount(TModelBankID aModelBankID, williamr@2: TInt& aModelCount); williamr@2: 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt GetRuleValidity(TGrammarID aGrammarID, TRuleID aRuleID, williamr@2: TBool& aValid); williamr@2: williamr@2: /** williamr@2: * williamr@2: * Returns the duration of the utterance for the specified model. williamr@2: * @since 8.0 williamr@2: * @param aModelBankID model bank Id williamr@2: * @param aModelID model Id williamr@2: * @param aDuration reference where the duration of williamr@2: * utterance is set williamr@2: * @return System-wide errors williamr@2: */ williamr@2: IMPORT_C TInt GetUtteranceDuration(TModelBankID aModelBankID, williamr@2: TModelID aModelID, TTimeIntervalMicroSeconds32& aDuration); williamr@2: williamr@2: /** williamr@2: Loads the specified grammar into the recognizer; done prior to recognition. williamr@2: williamr@2: @param aGrammarID williamr@2: The grammar ID. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt LoadGrammar(TGrammarID aGrammarID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt LoadLexicon(TLexiconID aLexiconID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt LoadModels(TModelBankID aModelBankID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt PlayUtterance(TModelBankID aModelBankID, williamr@2: TModelID aModelID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Recognize(CSDClientResultSet& aResultSet); williamr@2: williamr@2: /** williamr@2: Records the user utterance for training and recognition. williamr@2: williamr@2: @param aRecordTime williamr@2: The recording time in microseconds. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Record(TTimeIntervalMicroSeconds32 aRecordTime); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemoveGrammar(TGrammarID aGrammarID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemoveLexicon(TLexiconID aLexiconID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemoveModelBank(TModelBankID aModelBankID); williamr@2: williamr@2: /** williamr@2: Removes the specified model from the specified model bank 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemoveModel(TModelBankID aModelBankID, williamr@2: TModelID aModelID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemovePronunciation(TLexiconID aLexiconID, williamr@2: TPronunciationID aPronunciationID); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt RemoveRule(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Sets the client UID for client. williamr@2: williamr@2: @param aClientUid williamr@2: The client UID. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt SetClientUid(TUid aClientUid); 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt StartRecSession(TRecognitionMode aMode); 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: The reference to where a new model ID is assigned. williamr@2: williamr@2: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt Train(TModelBankID aModelBankID, TModelID& aModelID); williamr@2: williamr@2: /** williamr@2: Unloads the specified rule from the specified grammar in temporary williamr@2: memory, previously loaded with LoadGrammarL(). The rule in the williamr@2: 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt UnloadRule(TGrammarID aGrammarID, TRuleID aRuleID); williamr@2: williamr@2: /** williamr@2: Uploads the specified parameters into 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: @return An error code indicating if the function call was successful. KErrNone on success, otherwise williamr@2: another of the system-wide error codes. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C TInt LoadEngineParameters(const RArray& aParameterId, williamr@2: const RArray& aParameterValue); williamr@2: williamr@2: /** williamr@2: Gets an array of pronunciation IDs previously requested by GetAllPronunciationIDs. williamr@2: williamr@2: @param aPronunciationIDs williamr@2: An array to store pronunciation IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetPronunciationIDArrayL(RArray& aPronunciationIDs); williamr@2: williamr@2: /** williamr@2: Gets an array of rule IDs previously requested by GetAllRuleIDs. williamr@2: williamr@2: @param aRuleIDs williamr@2: An array to store rule IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetRuleIDArrayL(RArray& aRuleIDs); williamr@2: williamr@2: /** williamr@2: Gets an array of model IDs previously requested by GetAllModelIDs. williamr@2: williamr@2: @param aModelIDs williamr@2: An array to store model IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetModelIDArrayL(RArray& aModelIDs); williamr@2: williamr@2: /** williamr@2: Gets an array of grammar IDs previously requested by GetAllGrammarIDs. williamr@2: williamr@2: @param aGrammarIDs williamr@2: An array to store grammar IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetGrammarIDArrayL(RArray& aGrammarIDs); williamr@2: williamr@2: /** williamr@2: Gets an array of lexicon IDs previously requested by GetAllLexiconIDs. williamr@2: williamr@2: @param aLexiconIDs williamr@2: An array to store lexicon IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetLexiconIDArrayL(RArray& aLexiconIDs); williamr@2: williamr@2: williamr@2: /** williamr@2: Gets an array of modelBank IDs previously requested by GetAllModelBankIDs. williamr@2: williamr@2: @param aModelBankIDs williamr@2: An array to store modelBank IDs. williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetModelBankIDArrayL(RArray& aModelBankIDs); williamr@2: williamr@2: williamr@2: /** williamr@2: Gets a client result set previously created by a call to Recognise(). williamr@2: williamr@2: @param aResultSet williamr@2: The ResultSet used to contain the recognition results williamr@2: williamr@2: @since 8.0 williamr@2: */ williamr@2: IMPORT_C void GetResultSetL(CSDClientResultSet& aResultSet); williamr@2: williamr@2: private: williamr@2: void DoGetEnginePropertiesL(const RArray& aPropertyId, williamr@2: RArray& aPropertyValue); williamr@2: void DoLoadEngineParametersL(const RArray& aParameterId, williamr@2: const RArray& aParameterValue); williamr@2: williamr@2: williamr@2: CBufFlat* ExternalizeIntArrayL(const RArray& aArray); williamr@2: void InternalizeIntArrayL(TDes8& aDes, TInt aNumberElements, RArray& aArray); williamr@2: williamr@2: void DoRecognizeL(CSDClientResultSet& aResultSet); williamr@2: private: williamr@2: TAny* iReservedPtr_1; // reserved for future expansion williamr@2: TAny* iReservedPtr_2; // reserved for future expansion williamr@2: }; williamr@2: williamr@2: #endif // __SPEECHRECOGNITIONCUSTOMCOMMANDS_H__