Speech Processing 15-492/18-492Spoken Dialog Systems- Details of Olympus modules- Dialog Task DesignThe Olympus ArchitectureBackendKnowledgeSourcePhone /DesktopInterpretationPHOENIXDialog ManagerRAVENCLAWGenerationROSETTARecognitionAUDIOSERVERSynthesisKALLIOPEInteraction MgrAPOLLOSynth. Engine(SAPI/FLITE)Recog. Engine(SPHINX)RavenClawPlanPlan--based dialog managerbased dialog managerTaskTask--independent engineindependent enginecore Olympus librarycore Olympus librarymanage dialog by executing task specificationmanage dialog by executing task specificationprovides generic domainprovides generic domain--independent behaviorindependent behaviorHelp, repeat, …Help, repeat, …Confirmation, nonConfirmation, non--understandings…understandings…Dialog Task SpecificationDialog Task Specificationdialog plandialog planinterpretation contextinterpretation contextRavenClaw ArchitectureManages dialog by Manages dialog by executing the dialog executing the dialog task specificationtask specificationProvides many Provides many domaindomain--independent independent conversational conversational strategiesstrategiesStandard for most Standard for most applicationsapplicationsNo need to modify, just No need to modify, just link shared librarylink shared libraryTask-independent Dialog Engine Dialog Task (Specification)Captures all domainCaptures all domain--specific dialog (task) specific dialog (task) logic using a logic using a hierarchical descriptionhierarchical descriptionUnique to each Unique to each applicationapplicationMust be created for Must be created for each applicationeach applicationLinks to dialog engine Links to dialog engine librarylibraryRavenClaw: Dialog Task SpecificationMadeleineE:LoadSymptoms GeneralFeelR:HowAreYou? I:Glad I:SorryDiagnoseFever TravelR:AskFever E:MeasureTemp I:InformFeverI:Welcomegeneral_feelinghave_feverdiagnosticTree of dialog agentsTree of dialog agentsTerminals: Inform, Request, Expect, ExecuteTerminals: Inform, Request, Expect, ExecuteNonNon--terminals / Dialog agency: plans execution of child nodesterminals / Dialog agency: plans execution of child nodesHierarchical Task Execution Network; each agent:Hierarchical Task Execution Network; each agent:PreconditionsPreconditionsSuccess & failure criteriaSuccess & failure criteriaTrigger (focus) criteriaTrigger (focus) criteriaEffectsEffectsSample Task Specification Code// /Madeleine/GeneralFeelDEFINE_AGENCY(CGeneralFeel,DEFINE_CONCEPTS(STRING_USER_CONCEPT(general_feeling, none))DEFINE_SUBAGENTS(SUBAGENT(HowAreYou, CHowAreYou)SUBAGENT(Glad, CGlad)SUBAGENT(Sorry, CSorry))SUCCEEDS_WHEN(COMPLETED(Glad) || COMPLETED(Sorry)))// /Madeleine/GeneralFeel/HowAreYouDEFINE_REQUEST_AGENT(CHowAreYou,REQUEST_CONCEPT(general_feeling)GRAMMAR_MAPPING("![Yes]>good, ![FeelingGood]>good, ""![FeelingSoSo]>soso, ![FeelingBad]>bad")))// /Madeleine/GeneralFeel/GladDEFINE_INFORM_AGENT(CGlad,PRECONDITION(C("general_feeling") == CString("good"))PROMPT("inform glad_youre_good")ON_COMPLETION(FINISH(/Madeleine)))// /Madeleine/GeneralFeel/SorryDEFINE_INFORM_AGENT(CSorry,PRECONDITION(C("general_feeling") != CString("good"))PROMPT("inform sorry_youre_bad"))R:HowAreYou?GeneralFeelI:Glad I:Sorrygeneral_feelingRavenClaw Task Specification Language (RCTSL)(Pseudo(Pseudo--)declarative language)declarative languageDefines concept typesDefines concept typesDescribes the task treeDescribes the task treeSet of C++ macrosSet of C++ macrosConcept types and agents are classesConcept types and agents are classesCan use pure C++ code if necessaryCan use pure C++ code if necessaryNeed to be recompiled when modifiedNeed to be recompiled when modifiedRCTSL ConceptsConcepts are effectively RCTSL variablesConcepts are effectively RCTSL variablesStore values for later use and manipulationStore values for later use and manipulationStandard typesStandard typesString, integer and String, integer and boolboolUserUser--defined typesdefined typesStructures and arraysStructures and arraysTwo main categories:Two main categories:SystemSystemconceptsconceptsStore internal values, database results, etc.Store internal values, database results, etc.UserUserconceptsconceptsCapture entities obtained from the userCapture entities obtained from the userHow User Concepts get ValuesGRAMMAR_MAPPINGGRAMMAR_MAPPINGdirectivedirectiveDefines which grammar Defines which grammar slot(sslot(s) from Phoenix ) from Phoenix are assigned to an expected conceptare assigned to an expected concept// /MyBus/PerformTask/GetQuerySpecs/RequestOriginPlaceDEFINE_REQUEST_AGENT( CRequestOriginPlace,REQUEST_CONCEPT(origin)PROMPT("request origin_place")GRAMMAR_MAPPING("[origin_place], ![Place]") )••Maps parsed value from grammar (slotMaps parsed value from grammar (slot[[origin_placeorigin_place]]) to concept ) to concept originoriginSpecifying Binding ScopeInitiative can be controlled via binding scopeInitiative can be controlled via binding scopeSystem vs. Mixed initiativeSystem vs. Mixed initiativeGrammar mappings encode binding scope:Grammar mappings encode binding scope:Special character before grammar slot nameSpecial character before grammar slot nameStrict (!): bind only when request agent is activeStrict (!): bind only when request agent is activeOpen (@): bind alwaysOpen (@): bind alwaysDefault (Ø): bind only when request agent’s Default (Ø): bind only when request agent’s subtask is activesubtask is active// /MyBus/PerformTask/GetQuerySpecs/RequestOriginPlaceDEFINE_REQUEST_AGENT( CRequestOriginPlace,REQUEST_CONCEPT(origin)PROMPT("request origin_place")GRAMMAR_MAPPING("[origin_place], ![Place]") )RavenClaw ExecutionDialog StackMadeleineE:LoadSymptoms GeneralFeelR:HowAreYou? I:Glad I:SorryDiagnoseFever TravelR:AskFever E:MeasureTemp I:InformFeverI:WelcomeExpectation Agendageneral_feelingcharthave_feverdiagnosticRavenClaw ExecutionDialog StackMadeleineMadeleineE:LoadSymptoms GeneralFeelR:HowAreYou? I:Glad I:SorryDiagnoseFever TravelR:AskFever E:MeasureTemp I:InformFeverI:WelcomeExpectation Agendageneral_feelingcharthave_feverdiagnosticRavenClaw ExecutionDialog StackMadeleineWelcomeMadeleineE:LoadSymptoms GeneralFeelR:HowAreYou? I:Glad I:SorryDiagnoseFever
View Full Document