--- /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