diff -r cad71a31b7fc -r e36f3802f733 srsf/nssvasapi/nssvascore/inc/nssvassiutilitywrapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srsf/nssvasapi/nssvascore/inc/nssvassiutilitywrapper.h Wed Sep 01 12:29:17 2010 +0100 @@ -0,0 +1,335 @@ +/* +* Copyright (c) 2006-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: +* +*/ + + +#ifndef NSSVASSIUTILITYWRAPPER_H +#define NSSVASSIUTILITYWRAPPER_H + +// INCLUDES +#include +#include +#include +#include + +// CLASS DECLARATION + +/** +* CNssSiUtilityWrapper +* @since 3.1 +* @see nsssispeechrecognitionutility.h +* @see nsssispeechrecognitionutilityobserver.h +* @see nsssiutilitybase.h +*/ +NONSHARABLE_CLASS ( CNssSiUtilityWrapper ) : public CActive, + public MSISpeechRecognitionUtilityObserver + { + public: // Constructors & destructor + + /** + * Two-phased constructor + * + * @since 3.1 + */ + static CNssSiUtilityWrapper* NewL( MSISpeechRecognitionUtilityObserver& aObserver, + TUid aClientUid ); + + /** + * Destructor. + */ + virtual ~CNssSiUtilityWrapper(); + + public: // New functions + + /** + * + * Adapts the speaker independent models to a specific speaker's voice. + * + * @since 2.8 + * @param aResultSet Recognition result N-Best + * @param aCorrect Index to N-Best pointing the correct result. + * @return system wide error code + */ + TInt Adapt( const CSIClientResultSet& aResultSet, + TInt aCorrect ); + + /** + * Adds a new rules for the given phrases into the + * specified grammar. + * + * @param aTextArrayArray Array of text arrays. The phrase k is the concatenation + * of texts in array k. + * @param aLanguageArray pronunciations will be generated for these languages + * @param aLexiconID lexicon, where to add pronunciations + * @param aGrammarID grammar, where to add rules + * @param aRuleID the ID of the rule will be placed on this variable. + * If some of the names fail while others succeed, + * KInvalidRuleID will be placed to the array. + * @return system wide error code + */ + TInt AddVoiceTags( const RPointerArray &aTextArrayArray, + const RArray &aLanguageArray, + TSILexiconID aLexiconID, + TSIGrammarID aGrammarID, + RArray& aRuleIDArray ); + + /** + * Adds a new rules for the given phrases into the + * specified grammar. + * + * @param aTextArrayArray Array of text arrays. The phrase k is the concatenation + * of texts in array k. + * @param aLanguageArray pronunciations will be generated for these languages + * @param aLexiconID lexicon, where to add pronunciations + * @param aGrammarID grammar, where to add rules + * @param aRuleID the ID of the rule will be placed on this variable. + * If some of the names fail while others succeed, + * KInvalidRuleID will be placed to the array. + * @return System wide error code + */ + TInt AddVoiceTags( const RPointerArray& aTextArrayArray, + const RArray& aLanguageArray, + TSILexiconID aLexiconID, + TSIGrammarID aGrammarID, + RArray& aRuleIDArray ); + + /** + * Cancels the current operation + */ + void CancelUtility(); + + /** + * Saves the changes into a permanent storage. + * + * @return System-wide errors + */ + TInt CommitChanges(); + + /** + * Creates a new grammar. + */ + TInt CreateGrammar( TSIGrammarID& aGrammarID ); + + /** + * Creates a new lexicon. + */ + TInt CreateLexicon( TSILexiconID& aLexiconID ); + + /** + * Creates a new model bank. + * @param aModelBankID reference where a new model + * bank Id is assigned to + * @return system wide error codes + */ + TInt CreateModelBank( TSIModelBankID& aModelBankID ); + + /** + * Ends the current recognition session. Resources allocated + * for recognition are freed. + * @param aModelBankID reference where a new model bank Id is + * assigned to + * @return system wide error codes + */ + TInt EndRecSession(); + + /** + * + * Loads the specified grammar into the recognizer; + * done prior to recognition. + * @param aGrammarID grammar ID + * @return system wide error codes + */ + TInt LoadGrammar( TSIGrammarID aGrammarID ); + + /** + * + * Loads the specified model bank into the recognizer; + * done prior to recognition.. + * @param ModelBankID model bank Id + * @return system wide error codes + */ + TInt LoadModels( TSIModelBankID aModelBankID ); + + + /** + * Records uder utterance for training and recognition. + * @param aRecordTime recording time in microseconds + * @return system wide error codes + */ + TInt Record( TTimeIntervalMicroSeconds32 aRecordTime ); + + /** + * Pre-starts samping before Record call. + * + * @since 3.2 + * @return System wide error code + */ + TInt PreStartSampling(); + + /** + * Initiates speaker independent recognition; performed + * following loading of model bank, lexicon, and grammar. + * + * @param aResultSet reference where the recognition + * result is set + * @return system wide error codes + */ + TInt Recognize( CSIClientResultSet& aResultSet ); + + /** + * Removes the specified grammar from the permanent storage. + * Removing a grammar will remove all rules within the grammar. + * + * @param aGrammarID grammar Id + * @return system wide error codes + */ + TInt RemoveGrammar( TSIGrammarID aGrammarID ); + + /** + * Removes the specified lexicon from the permanent storage. + * Removing a lexicon will remove all pronunciations within the + * lexicon. + * + * @param aLexiconID lexicon Id + * @return system wide error codes + */ + TInt RemoveLexicon( TSILexiconID aLexiconID ); + + + /** + * Removes the specified model bank from the permanent storage. + * Removing a model bank will remove all models within the model bank. + * + * @param aModelBankID model bank Id + * @return system wide error codes + */ + TInt RemoveModelBank( TSIModelBankID aModelBankID ); + + /** + * Removes the specified rule from the specified grammar permanently. + * + * @param aGrammarID grammar Id + * @param aRuleID rule Id + * @return system wide error codes + */ + TInt RemoveRule( TSIGrammarID aGrammarID, TSIRuleID aRuleID ); + + /** + * Removes multiple rules from the specified grammar permanently. + * + * @param aGrammarID grammar Id + * @param aRuleID rule Id + * @return system wide error codes + */ + TInt RemoveRules( TSIGrammarID aGrammarID, RArray& aRuleIDs ); + + /** + * Set the audio priority and preference for train, playback + * and recognition + * + * @param aPriority priority for voice recognition + * @param aTrainPreference preference for training + * @param aPlaybackPreference preference for playback + * @param aRecognitionPreference preference for recognition + * @return system wide error codes + */ + TInt SetAudioPriority( TInt aPriority, TInt aTrainPreference, + TInt aPlaybackPreference, TInt aRecognitionPreference ); + + /** + * Set the event handler for asynchronous events + * + * @param aSpeechRecognitionUtilityObserver pointer to observer + */ + void SetEventHandler( MSISpeechRecognitionUtilityObserver* + aSpeechRecognitionUtilityObserver ); + + + /** + * Starts a new recognition session. + * + * @param aMode recognition mode + * @return system wide error codes + */ + TInt StartRecSession( TNSSRecognitionMode aMode ); + + + /** + * 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 grammar Id + * @param aRuleID rule Id + * @return system wide error codes + */ + TInt UnloadRule( TSIGrammarID aGrammarID, TSIRuleID aRuleID ); + + + private: // Functions + + /** + * C++ constructor. + */ + CNssSiUtilityWrapper( MSISpeechRecognitionUtilityObserver& iObserver, TUid aClientUid ); + + /** + * EPOC constructor. + */ + void ConstructL(); + + /** + * From CActive + */ + void RunL(); + + /** + * From CActive + */ + void DoCancel(); + + /** + * Sets the active object ready to be run + */ + void Ready(); + + /** + * From MSISpeechRecognitionUtilityObserver + */ + void MsruoEvent( TUid aEvent, TInt aResult ); + + private: // Member variables + + // Handle to library loader + RLibrary iLib; + + // UID of the client + TUid iClientUid; + + // Utility API + MSISpeechRecognitionUtilityBase* iUtility; + + // Reference to callback handler + MSISpeechRecognitionUtilityObserver& iObserver; + + // Stored callback parameters + TUid iEvent; + TInt iResult; + }; + +#endif // NSSVASSIUTILITYWRAPPER_H + +// End of file