mmdevicefw/speechrecogsupport/ASR/inc/SpeechRecognitionUtility.h
changeset 0 b8ed18f6c07b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmdevicefw/speechrecogsupport/ASR/inc/SpeechRecognitionUtility.h	Thu Oct 07 22:34:12 2010 +0100
@@ -0,0 +1,700 @@
+// Copyright (c) 2002-2009 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:
+//
+
+#ifndef __SPEECHRECOGNITIONUTILITY_H__
+#define __SPEECHRECOGNITIONUTILITY_H__
+
+// INCLUDES
+
+#include <e32base.h>
+#include <mmf/common/mmfcontroller.h>
+#include <mmf/common/speechrecognitioncustomcommands.h>
+#include <mmf/common/speechrecognitiondataclient.h>
+#include <speechrecognitionutilityobserver.h>
+
+
+// CLASS DECLARATION
+
+/**
+@publishedAll
+@released
+
+This is the main class of Speech Recognition Utility.
+
+@since  8.0
+*/
+class CSpeechRecognitionUtility : public CBase
+	{
+	class CBody;
+public:
+
+	/**
+	Factory function for creating this class.
+
+	@param	aClientUid
+	        The UID of the client.
+	@param 	aSpeechRecognitionUtilityObserver
+	        A reference to the event observer class.
+
+	@return	A pointer to CSpeechRecognitionUtility object
+
+	@since  8.0
+	*/
+	IMPORT_C static CSpeechRecognitionUtility* NewL(
+							MSpeechRecognitionUtilityObserver&
+							aSpeechRecognitionUtilityObserver, TUid aClientUid );
+
+	/**
+	Factory function for creating this class. Leaves a pointer on the cleanup stack.
+
+	@param  aSpeechRecognitionUtilityObserver		
+	        A reference to the event observer class.
+	@param  aClientUid
+	        A client UID for data ownership.
+
+	@return A pointer to a CSpeechRecognitionUtility object.
+
+	@since  8.0
+	*/
+	IMPORT_C static CSpeechRecognitionUtility* NewLC(
+							MSpeechRecognitionUtilityObserver&
+							aSpeechRecognitionUtilityObserver, TUid aClientUid );
+
+	/**
+	Destructor.
+
+	@since  8.0
+	*/
+	IMPORT_C ~CSpeechRecognitionUtility();
+
+	/**
+	Returns the engine properties specified by the engine property
+	ID array. On return aPropertyValue contains an array of engine
+	properties.
+
+	@param  aPropertyId		
+	        A constant reference to an array of engine property ID's.
+	@param  aPropertyValue
+	        A reference to an array of engine property values.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetEngineProperties( const RArray<TInt>& aPropertyId,
+		RArray<TInt>& aPropertyValue );
+
+	/**
+	Adds a new pronunciation for the given model into the
+	specified lexicon.
+	
+	@param  aLexiconID			
+	        The lexicon ID, where the new pronunciation is added to.
+	@param  aModelBankID		
+	        The model bank ID.
+	@param	aModelID			
+	        The model ID.
+	@param  aPronunciationID	
+	        A reference where the new pronunciation ID is assigned to.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt AddPronunciation( TLexiconID aLexiconID,
+		TModelBankID aModelBankID, TModelID aModelID,
+		TPronunciationID& aPronunciationID );
+
+	/**
+	Adds a new rule for the given pronunciation into the
+	specified grammar.
+
+	@param  aGrammarID			
+	        The grammar ID, where the new rule is added to.
+	@param  aLexiconID			
+	        The lexicon ID.
+	@param  aPronunciationID	
+	        The pronunciation ID.
+	@param  aRuleID				
+	        A reference where the new rule ID is assigned to.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt AddRule( TGrammarID aGrammarID, TLexiconID aLexiconID,
+		TPronunciationID aPronunciationID, TRuleID& aRuleID );
+
+	/**
+	Cancels the current operation.
+
+	@since 8.0
+	*/
+	IMPORT_C void Cancel();
+
+	/**
+	Commit the current train operation to the database.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt CommitChanges();
+
+	/**
+	Creates a new grammar.
+
+	@param  aGrammarID			
+	        A reference where grammar ID is stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt CreateGrammar( TGrammarID& aGrammarID );
+
+	/**
+	Creates a new lexicon.
+
+	@param  aLexiconID			
+	        A reference where lexicon ID is stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt CreateLexicon( TLexiconID& aLexiconID );
+
+	/**
+	Loads the specified model bank into the recognizer;
+	done prior to recognition.
+
+	@param  aModelBankID
+			The Model bank ID
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt LoadModels( TModelBankID aModelBankID );
+
+	/**
+	Loads the specified grammar into the recognizer;
+	done prior to recognition.
+	
+	@param  aGrammarID			
+	        The grammar ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt LoadGrammar( TGrammarID aGrammarID );
+
+	/**
+	Loads the specified lexicon into the recognizer;
+	done prior to recognition.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt LoadLexicon( TLexiconID aLexiconID );
+
+	/**
+	Returns the duration of the utterance for the specified model.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        The model ID.
+	@param  aDuration			
+	        The reference where the duration of utterance is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetUtteranceDuration( TModelBankID aModelBankID,
+		TModelID aModelID,
+		TTimeIntervalMicroSeconds32& aDuration);
+
+	/**
+	Plays the previously trained utterance.
+
+	@param  aModelBankID
+	        The model bank ID.
+	@param  aModelID
+	        The model ID, whose utterance is played.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt PlayUtterance( TModelBankID aModelBankID,
+		TModelID aModelID);
+
+	/**
+	Returns the number of models in the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelCount			
+	        The reference where the number of models is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetModelCount( TModelBankID aModelBankID, TInt& aModelCount );
+
+	/**
+	Ends the current recognition session. Resources allocated
+	for recognition are freed.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt EndRecSession();
+
+	/**
+	Starts a new recognition session.
+
+	@param  aMode				
+	        The recognition mode.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt StartRecSession( TRecognitionMode aMode );
+
+	/**
+	Initiates recognition; performed following loading of
+	model bank, lexicon, and grammar.
+
+	@param  aResultSet			
+	        A reference where the recognition result is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt Recognize( CSDClientResultSet& aResultSet );
+
+	/**
+	Records user utterance for training and recognition.
+
+	@param  aRecordTime			
+	        The recording time in microseconds.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt Record( TTimeIntervalMicroSeconds32 aRecordTime );
+
+	/**
+	Removes the specified grammar from the permanent storage. 
+
+	Removing a grammar will remove all rules within the grammar.
+
+	@param  aGrammarID			
+	        The grammar ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt RemoveGrammar( TGrammarID aGrammarID );
+
+	/**
+	Removes the specified pronunciation from the specified lexicon permanently.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+	@param  aPronunciationID	
+	        The pronunciation ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt RemovePronunciation( TLexiconID aLexiconID,
+		TPronunciationID aPronunciationID );
+
+	/**
+	Removes the specified lexicon from the permanent storage.
+	
+	Removing a lexicon will remove all pronunciations within the lexicon.
+
+	@param  aLexiconID			
+	        The lexicon ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt RemoveLexicon( TLexiconID aLexiconID );
+
+	/**
+	Removes the specified model from the specified model bank
+	permanently.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        The model ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt RemoveModel( TModelBankID aModelBankID,
+		TModelID aModelID );
+
+	/**
+	Removes the specified rule from the specified grammar permanently.
+
+	@param  aGrammarID			
+	        The grammar ID.
+	@param  aRuleID
+	        The rule ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt RemoveRule( TGrammarID aGrammarID, TRuleID aRuleID );
+
+	/**
+	Trains a new model into the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelID			
+	        A reference where a new model ID is assigned to.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt Train( TModelBankID aModelBankID, TModelID& aModelID );
+
+	/**
+	Unloads the specified rule from the specified grammar in temporary memory, previously loaded 
+	with LoadGrammarL.
+
+	The rule in the permanent storage remains intact.
+
+	@param  aGrammarID			
+	        The grammar ID.
+	@param  aRuleID				
+	        The rule ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt UnloadRule( TGrammarID aGrammarID, TRuleID aRuleID );
+
+	/**
+	Sets the event handler for asynchronous events.
+
+	@param  aSpeechRecognitionUtilityObserver		
+	        A pointer to an observer.
+
+	@since  8.0
+	*/
+	IMPORT_C void SetEventHandler( MSpeechRecognitionUtilityObserver*
+		aSpeechRecognitionUtilityObserver );
+
+	/**
+	Returns all pronunciation IDs that exist in the specified lexicon.
+
+	@param  aLexiconID
+	        The lexicon ID.
+	@param  aPronunciationIDs
+	        A reference where pronunciation IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllPronunciationIDs( TLexiconID aLexiconID,
+		RArray <TPronunciationID>& aPronunciationIDs );
+
+	/**
+	Returns all grammar IDs owned by the client.
+
+	@param  aGrammarIDs			
+	        A reference where rule IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllClientGrammarIDs(RArray <TGrammarID>& aGrammarIDs );
+
+	/**
+	Returns all lexicons owned by the client.
+
+	@param  aLexiconIDs	
+	        A reference where lexicon IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllClientLexiconIDs(RArray <TLexiconID>& aLexiconIDs );
+
+	/**
+	Returns all modelbank IDs owned by the client.
+
+	@param  aModelBankIDs			
+	        A reference where modelbank IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+		IMPORT_C TInt GetAllClientModelBankIDs(
+							RArray<TModelBankID>& aModelBankIDs );
+	/**
+	Returns all grammar IDs.
+
+	@param  aGrammarIDs			
+	        A reference where rule IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllGrammarIDs(RArray <TGrammarID>& aGrammarIDs );
+	
+	/**
+	Returns all lexicons IDs.
+
+	@param  aLexiconIDs	
+	        A reference where lexicon IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllLexiconIDs(RArray <TLexiconID>& aLexiconIDs );
+
+	/**
+	Returns all modelbank IDs.
+
+	@param  aModelBankIDs			
+	        A reference where modelbank IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllModelBankIDs(
+		RArray<TModelBankID>& aModelBankIDs );
+
+	/**
+	Returns all model IDs that exist in the specified model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+	@param  aModelIDs			
+	        A reference where model IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllModelIDs( TModelBankID aModelBankID,
+		RArray <TModelID>& aModelIDs );
+
+	/**
+	Checks if the rule is valid or not.
+
+	@param  aGrammarID
+	        The grammar ID.
+	@param	aRuleID
+			The rule ID.
+	@param  aValid
+	        A reference where the validity of the rule is set.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetRuleValidity( TGrammarID aGrammarID, TRuleID aRuleID,
+		TBool& aValid );
+
+	/**
+	Returns all rule IDs that exist in the specified grammar.
+
+	@param  aGrammarID			
+	        The grammar ID.
+	@param  aRuleIDs			
+	        A reference where rule IDs are stored.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAllRuleIDs( TGrammarID aGrammarID,
+		RArray <TRuleID>& aRuleIDs );
+
+	/**
+	Creates a new model bank.
+
+	@param  aModelBankID		
+	        A reference where a new model bank IF is assigned to.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt CreateModelBank( TModelBankID& aModelBankID );
+
+	/**
+	Removes the specified model bank from the permanent storage.
+
+	Removing a model bank will remove all models within the model bank.
+
+	@param  aModelBankID		
+	        The model bank ID.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since	8.0
+	*/
+	IMPORT_C TInt RemoveModelBank( TModelBankID aModelBankID );
+
+	/**
+	Returns the number of models available for training system model storage, based on available 
+	disk space.
+
+	@param  aAvailableStorage	
+	        The number of models that can be contained in available storage.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt GetAvailableStorage( TInt& aAvailableStorage );
+
+	/**
+	Loads the specified parameters into the recognition engine.
+
+	@param  aParameterId		
+	        The array of parameter IDs.
+	@param  aParameterValue		
+	        The array of parameter values.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+	*/
+	IMPORT_C TInt LoadEngineParameters( const RArray<TInt>& aParameterId,
+					const RArray<TInt>& aParameterValue );
+
+	/**
+	Sets the audio priority and preference for train, playback and recognition.
+
+	@param  aPriority				
+	        The priority for voice recognition.
+	@param  aTrainPreference		
+	        The preference for training.
+	@param  aPlaybackPreference		
+	        The preference for playback.
+	@param  aRecognitionPreference	
+	        The preference for recognition.
+
+	@return An error code indicating if the function call was successful. KErrNone on success, otherwise
+	        another of the system-wide error codes.
+
+	@since  8.0
+
+	*/
+	IMPORT_C TInt SetAudioPriority( TInt aPriority, TInt aTrainPreference,
+		TInt aPlaybackPreference, TInt aRecognitionPreference );
+
+private:
+	/**
+	Private C++ constructor for this class.
+
+	@since  8.0
+	*/
+	CSpeechRecognitionUtility();
+
+	/**
+	Second phase constructor for this class.
+
+	@param  aSpeechRecognitionUtilityObserver		
+	        A reference to the event observer class.
+
+	@since  8.0
+	*/
+	void ConstructL(MSpeechRecognitionUtilityObserver& aSpeechRecognitionUtilityObserver);
+
+private:
+	CBody* iBody;
+	friend class CBody;
+};
+
+#endif	// of __SPEECHRECOGNITIONUTILITY_H__
+
+	// End of File