[TeamTalk 335]: [871] trunk/TeamTalk/Configurations/DesktopConfiguration: Rewrote hub programs for olympus2.
tk@edam.speech.cs.cmu.edu
tk at edam.speech.cs.cmu.edu
Thu Nov 8 22:38:08 EST 2007
An HTML attachment was scrubbed...
URL: http://mailman.srv.cs.cmu.edu/pipermail/teamtalk-developers/attachments/20071108/517fbf11/attachment-0001.html
-------------- next part --------------
Property changes on: trunk/TeamTalk/Configurations/DesktopConfiguration
___________________________________________________________________
Name: svn:ignore
- peerfile.txt
*.user
+ peerfile.txt
*.user
*.log
*.instance.*
Modified: trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-skeleton.pgm
===================================================================
--- trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-skeleton.pgm 2007-11-08 22:05:43 UTC (rev 870)
+++ trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-skeleton.pgm 2007-11-09 03:38:07 UTC (rev 871)
@@ -1,50 +1,34 @@
DOMAIN: cmu
LOG_DIR: ..\..\logs
-TIMESTAMP: start_listening stop_listening set_lm setattr speak reset resetlast restart_decoder add_value choose_parse launch_query begin_session process_parse start_inactivity_timeout cancel_inactivity_timeout end_session new_session end_session increment_utterance nop goto_page notify_output_manager relay_input_source restart_decoder add_voice
+TIMESTAMP: request_init_session notify_closing_session set_config reset resetlast phoenixparse choose_parse launch_query begin_session process_parse end_session new_session increment_utterance nop goto_page handle_event perform_action process_event restart_decoder add_voice
;; This is used as a toplevel subdir in LOG_DIR, if not specified
;; its default is "sls"
USER_ID: TeamTalk
;; -------------------------------------------------
-;; S E R V E R S
+;; OLYMPUS SERVERS
+;; Servers listed in order of port number
;; -------------------------------------------------
;; -------------------------------------------------
-;; The tty-sphinx server handles keyboard input
-;; -------------------------------------------------
-
-;;SERVER: tty-sphinx at localhost:11001
-;;OPERATIONS:
-;;INIT: :greeting "Welcome to the CMU zap2 1.0!"
-
-;; -------------------------------------------------
;; The sphinx server handles decoding speech
;; -------------------------------------------------
-SERVER: sphinx at localhost:11000
-OPERATIONS: start_listening stop_listening set_lm restart_decoder
-INIT: :greeting "Welcome to the CMU zap2 1.0!"
+SERVER: audio_server at localhost:11000
+OPERATIONS: begin_session end_session set_lm restart_decoder
+INIT: :greeting "Welcome to TeamTalk!"
;; -------------------------------------------------
-;; The PenDecoder server will display robot locations
-;; on a map, and allow for some map-based interactions.
-;; -------------------------------------------------
-
-SERVER: PenDecoder at localhost:11002
-OPERATIONS: set_cover speak map_update info_update task_update
-INIT: :greeting "Welcome to the CMU zap 2.0 PenDecoder!"
-
-;; -------------------------------------------------
;; The Kalliope server will convert text from the
;; language generation (NLG) server to speech heard
;; by the caller
;; -------------------------------------------------
SERVER: kalliope at localhost:12001
-OPERATIONS: speak reset add_voice
-INIT: :greeting "Welcome to the CMU zap2 1.0!"
+OPERATIONS: begin_session end_session speak reset add_voice
+INIT: :greeting "Welcome to TeamTalk!"
;; -------------------------------------------------
;; The phoenix server will parse utterances
@@ -54,15 +38,15 @@
SERVER: phoenix at localhost:13000
OPERATIONS: restart_decoder
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+INIT: :greeting "Welcome to TeamTalk!"
;; -------------------------------------------------
-;; Backend - Server (gal_be)
+;; Interaction Manager
;; -------------------------------------------------
-SERVER: gal_be at localhost:18000
-OPERATIONS: begin_session end_session launch_query
-INIT: :greeting "Welcome to the CMU zap2 1.0!"
+SERVER: apollo at localhost:20000
+OPERATIONS: begin_session end_session reinitialize process_event perform_action set_dialog_state
+INIT: :greeting "Welcome to the TeamTalk!"
;; -------------------------------------------------
;; The Builtin server is implemented by the hub to
@@ -76,67 +60,110 @@
MODE: singlethread
;; -------------------------------------------------
+;; TEAMTALK-SPECIFIC SERVERS
+;; Servers listed in order of port number
+;; -------------------------------------------------
+
+;; -------------------------------------------------
+;; The PenDecoder server will display robot locations
+;; on a map, and allow for some map-based interactions.
+;; -------------------------------------------------
+
+SERVER: PenDecoder at localhost:11002
+OPERATIONS: set_cover speak map_update info_update task_update
+INIT: :greeting "Welcome to TeamTalk!"
+
+;; -------------------------------------------------
+;; Backend - Server (gal_be)
+;; -------------------------------------------------
+
+SERVER: gal_be at localhost:18000
+OPERATIONS: begin_session end_session launch_query
+INIT: :greeting "Welcome to TeamTalk!"
+
+;; -------------------------------------------------
;; P R O G R A M S
;; -------------------------------------------------
PROGRAM: main
-LOG_IN: :init_session :close_session :startutt :endutt :emptyhyp :partialhyp :confhyps :nword :beginout :continueout :endout :resetout :parse :set_lm :goto_page
+LOG_IN: :init_session :close_session :startutt :endutt :emptyhyp :confhyps :id :parse :set_config :action_type :action_id :properties :speaktext :session_start_timestamp
-;; The decoder's continuous listener detected a new
-;; utterance.
+;; The VAD/Interaction Manager detected a new utterance
+;; increment the utt counter
RULE: :startutt --> Builtin.increment_utterance
IN:
OUT:
+;; send startutt to the audio server to begin ASR
+RULE: :startutt --> audio_server.start_utt
+IN: :id :timestamp
+OUT:
+;; The VAD/Interaction Manager detected the end of the current utterance
+;; send utt to the AudioServer to finalize ASR results
+RULE: :endutt --> audio_server.end_utt
+IN: :id :timestamp
+OUT:
+
;; The session server has triggered a new session
-RULE: :init_session | :call_answered --> Builtin.new_session
+RULE: :init_session --> Builtin.new_session
IN:
OUT:
;; The session server has triggered a new session - Tell the decoder to start listening to input
-RULE: :init_session | :call_answered --> sphinx.start_listening
-IN: :hub_logdir :hub_log_prefix
+RULE: :init_session --> audio_server.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
OUT:
+LOG_IN:
+LOG_OUT:
+;; The session server has triggered a new session - initialize the IM
+RULE: :init_session --> apollo.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
+OUT:
+LOG_IN: :session_start_timestamp
+LOG_OUT:
+
;; The session server has triggered a new session - initialize backend
-RULE: :init_session | :call_answered --> gal_be.begin_session
-IN: :hub_logdir
+RULE: :init_session --> gal_be.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
OUT:
+;; The session server has triggered a new session - initialize kalliope
+RULE: :init_session --> kalliope.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
+OUT:
+
;; The session server has closed the session - Tell the decoder to stop listening to input
-RULE: :close_session | :call_hungup --> sphinx.stop_listening
-IN:
+RULE: :close_session --> audio_server.end_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
OUT:
-;; The session server has closed the session - Make kalliope shut up so that the next caller doesn't
-;; get the tail end of the output
-RULE: :close_session | :call_hungup --> kalliope.reset
+;; The session server has closed the session - Tell the DM to ignore spurious inputs between sessions
+RULE: :close_session --> DialogManager.end_session
IN:
OUT:
-;; This is an expedient way to do barge-in. There
-;; are better ways to do this.
-RULE: :partialhyp & :nword >0 --> kalliope.reset
+;; The session server has closed the session - Tell the DM to ignore spurious inputs between sessions
+RULE: :close_session --> apollo.end_session
IN:
OUT:
-RULE: :confhyps --> kalliope.reset
+;; The session server has closed the session - Tell the kalliope something
+RULE: :close_session --> kalliope.end_session
IN:
OUT:
;; The session server has closed the session - Tell the DM to ignore spurious inputs between sessions
-RULE: :close_session | :call_hungup --> Builtin.end_session
+RULE: :close_session --> Builtin.end_session
IN:
OUT:
PROGRAM: system_error
-MESSAGE: nlg.launch_query
-LOG_IN: :inframe
-LOG_IN: :interruptable
-MESSAGE: abe.launch_query
-LOG_IN: :inframe
-LOG_OUT: :outframe
+;; -------------------------------------------------
+;; APPLICATION-DEPENDENT PROGRAMS
+;; -------------------------------------------------
+
PROGRAM: restart_decoder
RULE: --> sphinx.restart_decoder
@@ -166,3 +193,26 @@
RULE: :type = "ack" | :type = "done" --> PenDecoder.task_update
IN: :type :taskid :status
OUT:
+
+;; -------------------------------------------------
+;; APPLICATION-DEPENDENT MESSAGES
+;; -------------------------------------------------
+
+;; There a none.
+
+;; -------------------------------------------------
+;; APPLICATION-INDEPENDENT MESSAGES
+;; -------------------------------------------------
+
+MESSAGE: nlg.launch_query
+LOG_IN: :action_id :id :inframe :interruptable :dont_listen
+
+MESSAGE: apollo.process_event
+LOG_IN: :event_type :event_timestamp :properties :event_complete
+
+MESSAGE: apollo.perform_action
+LOG_IN: :action_type :properties :utt_count :dialog_state
+
+MESSAGE: apollo.set_dialog_state
+LOG_IN: :dialog_state
+
Modified: trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-template.pgm
===================================================================
--- trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-template.pgm 2007-11-08 22:05:43 UTC (rev 870)
+++ trunk/TeamTalk/Configurations/DesktopConfiguration/TeamTalk-hub-desktop-template.pgm 2007-11-09 03:38:07 UTC (rev 871)
@@ -1,32 +1,25 @@
DOMAIN: cmu
LOG_DIR: ..\..\logs
-TIMESTAMP: start_listening stop_listening set_lm setattr speak reset resetlast phoenixparse add_value choose_parse launch_query begin_session process_parse start_inactivity_timeout cancel_inactivity_timeout end_session new_session end_session increment_utterance nop goto_page notify_output_manager relay_input_source
+TIMESTAMP: set_lm setattr speak reset resetlast phoenixparse add_value choose_parse launch_query begin_session process_parse start_inactivity_timeout cancel_inactivity_timeout end_session new_session end_session increment_utterance nop goto_page notify_output_manager relay_input_source
;; This is used as a toplevel subdir in LOG_DIR, if not specified
;; its default is "sls"
USER_ID: %%DialogManager%%
;; -------------------------------------------------
-;; S E R V E R S
+;; OLYMPUS SERVERS
+;; Servers listed in order of port number
;; -------------------------------------------------
;; -------------------------------------------------
-;; The sphinx server handles decoding speech
-;; -------------------------------------------------
-
-SERVER: sphinx at localhost:11000
-OPERATIONS:
-INIT: :greeting "Welcome to the %%DialogManager%%!"
-
-;; -------------------------------------------------
;; The PenDecoder server will display robot locations
;; on a map, and allow for some map-based interactions.
;; -------------------------------------------------
SERVER: PenDecoder at localhost:11002
OPERATIONS: set_bot speak process_parse select_bot image set_goal
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
;; The Kalliope server will convert text from the
@@ -35,17 +28,17 @@
;; -------------------------------------------------
SERVER: kalliope at localhost:12001
-OPERATIONS: speak reset add_voice
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+OPERATIONS: begin_session end_session synthesize speak reset beep add_voice
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
;; The phoenix server will parse utterances
-;; emitted by the sphinx server
+;; emitted by the audio server
;; -------------------------------------------------
SERVER: phoenix at localhost:13000
-OPERATIONS: phoenixparse
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+OPERATIONS: phoenixparse parsepartialhyp
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
;; The helios server will query domain agents to
@@ -53,50 +46,64 @@
;; -------------------------------------------------
SERVER: helios at localhost:%%HeliosPort%%
-OPERATIONS: begin_session add_value choose_parse relay_input_source set_dialog_state
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+OPERATIONS: begin_session add_value choose_parse annotate_partialparse set_dialog_state
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
-;; Natural language generator - Server (nlg_remote)
+;; Interaction Manager
;; -------------------------------------------------
-SERVER: nlg at localhost:16000
-OPERATIONS: launch_query
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+SERVER: apollo at localhost:20000
+OPERATIONS: begin_session end_session reinitialize process_event perform_action set_dialog_state
+INIT: :greeting "Welcome to the TeamTalk!"
;; -------------------------------------------------
-;; Backend - Server (gal_be)
+;; The Builtin server is implemented by the hub to
+;; provide some commonly used functions.
;; -------------------------------------------------
-SERVER: gal_be at localhost:18000
-OPERATIONS: begin_session end_session launch_query
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+SERVER: Builtin
+OPERATIONS: new_session end_session increment_utterance nop
+;; Do not try to match multiple rules for a given
+;; token. This mode serializes rule firing.
+MODE: singlethread
;; -------------------------------------------------
+;; MEETINGLINE-SPECIFIC SERVERS
+;; Servers listed in order of port number
+;; -------------------------------------------------
+
+;; -------------------------------------------------
+;; Natural language generator - Server (nlg_remote)
+;; -------------------------------------------------
+
+SERVER: nlg at localhost:16000
+OPERATIONS: launch_query
+INIT: :greeting "Welcome to %%DialogManager%%!"
+
+;; -------------------------------------------------
;; Dialog Manager
;; -------------------------------------------------
SERVER: %%DialogManager%%@localhost:%%DMPort%%
-OPERATIONS: begin_session process_parse start_inactivity_timeout cancel_inactivity_timeout end_session notify_output_manager reset_variables
-INIT: :greeting "Welcome to the %%DialogManager%%!"
+OPERATIONS: begin_session handle_event process_parse end_session notify_output_manager
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
-;; The Builtin server is implemented by the hub to
-;; provide some commonly used functions.
+;; Backend - Server (gal_be)
;; -------------------------------------------------
-SERVER: Builtin
-OPERATIONS: new_session end_session increment_utterance nop
-;; Do not try to match multiple rules for a given
-;; token. This mode serializes rule firing.
-MODE: singlethread
+SERVER: gal_be at localhost:18000
+OPERATIONS: begin_session end_session launch_query
+INIT: :greeting "Welcome to %%DialogManager%%!"
;; -------------------------------------------------
;; P R O G R A M S
;; -------------------------------------------------
PROGRAM: main
-LOG_IN: :init_session :close_session :startutt :endutt :emptyhyp :partialhyp :confhyps :nword :beginout :continueout :endout :resetout :parse :set_lm :goto_page
+LOG_IN: :init_session :close_session :startutt :endutt :emptyhyp :confhyps :id :parse :set_config :action_type :action_id :properties :speaktext :session_start_timestamp
+
;; The decoder's continuous listener detected a new
;; utterance.
RULE: :startutt --> Builtin.increment_utterance
@@ -104,107 +111,90 @@
OUT:
;; The session server has triggered a new session
-RULE: :init_session | :call_answered --> Builtin.new_session
+RULE: :init_session --> Builtin.new_session
IN:
OUT:
;; The session server has triggered a new session - initialize helios
-RULE: :init_session | :call_answered --> helios.begin_session
-IN: :hub_logdir
+RULE: :init_session --> helios.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
OUT:
;; The session server has triggered a new session - initialize the DM
-RULE: :init_session | :call_answered --> %%DialogManager%%.begin_session
-IN: :hub_logdir
+RULE: :init_session --> %%DialogManager%%.begin_session
+IN: :hub_logdir :hub_log_prefix :session_start_timestamp
OUT:
+LOG_IN:
;; The session server has closed the session - Tell the DM to ignore spurious inputs between sessions
-RULE: :close_session | :call_hungup --> %%DialogManager%%.end_session
+RULE: :close_session --> %%DialogManager%%.end_session
IN:
-OUT:
-;; Multiple phrases can be enqueued to be spoken by the TTS
-;; system. For each phrase, there will be a message with
-;; the :beginout keyword sent by the TTS when it begins
-;; speaking the phrase. DM may want to distinquish this
-;; timeout-cancel condition from the :startutt
-;; timeout-cancel condition. The :why input keyword
-;; is sent to the cancel_inactivity_timeout operation
-;; to enable the DM to make this distinction if necessary.
-;;
-RULE: :startutt --> %%DialogManager%%.cancel_inactivity_timeout
-IN: (:why "startutt")
-OUT:
+;; A partial hypothesis was generated, parse it
+RULE: :partial_hyp & !:partial_parse --> phoenix.parsepartialhyp
+IN: :timestamp :hyp_properties
+OUT: :partial_parse :timestamp :hyp_properties
+LOG_IN: :partial_hyp :timestamp :hyp_properties
+LOG_OUT: :timestamp :hyp_properties
-RULE: :beginout --> %%DialogManager%%.cancel_inactivity_timeout
-IN: (:why "beginout")
-OUT:
+;; A partial parse was generated, annotate it
+RULE: :partial_parse --> helios.annotate_partialparse
+IN: :timestamp :hyp_properties
+OUT: :event_type :event_timestamp :properties :event_complete
+LOG_IN: :timestamp :hyp_properties
+LOG_OUT: :event_type :event_timestamp :properties :event_complete
-;; The session server has closed the session - it is not clear what this message does...
-RULE: :close_session | :call_hungup --> %%DialogManager%%.cancel_inactivity_timeout
-IN: (:why "hangup")
-OUT:
-
-;; when the TTS finishes with a phrase, start the clock running
-;; to wait for the user to respond to the output. If another
-;; phrase is hard on the heels of this one, it will cancel
-;; the timeout when it begins. But when it ends, it will cause
-;; the DM to re-start the timeout.
-RULE: :endout --> %%DialogManager%%.start_inactivity_timeout
-IN:
-OUT:
-
;; If we have a confidence annotated hypothesis, but
;; no parse, call phoenix to parse it
;; ---
RULE: :confhyps & !:parses --> phoenix.phoenixparse
-IN: :confhyps :npow :pow
-OUT: :total_numparses :parses :input_source
+IN: :confhyps :npow :pow :timestamp
+OUT: :total_numparses :parses :input_source :timestamp
+LOG_IN: :confhyps :npow :pow
LOG_OUT: :parses
;; Choose one of the parses based on confidence, and annotate
;; input with other features
;; ---
RULE: !:parse & :total_numparses & :parses --> helios.choose_parse
-IN: :total_numparses :parses :input_source :confhyps :npow :pow
-OUT: :parse :input_features
-LOG_OUT: :parse :input_features
+IN: :total_numparses :parses :input_source :confhyps :npow :pow :timestamp
+OUT: :parse :properties :event_type :event_timestamp :event_complete
+LOG_IN: :parses :timestamp
+LOG_OUT: :event_type :event_timestamp :parse :properties :event_complete
-RULE: :parse --> PenDecoder.process_parse
-IN: :parse :input_features
+RULE: :parse --> tty-sphinx.process_parse
+IN: :parse :properties
OUT:
+LOG_IN: :parse :properties
-RULE: :parse --> %%DialogManager%%.process_parse
-IN: :parse :input_features
+;; An event was generated by a "sensor" module, send it to the IM
+RULE: :event_type --> apollo.process_event
+IN: :event_type :event_timestamp :properties :event_complete
OUT:
+LOG_IN: :event_type :event_timestamp :properties :event_complete
+RULE: :parse --> tty-sphinx.process_parse
+IN: :parse (:input_features :properties)
+OUT:
+LOG_IN: :parse (:input_features :properties)
+
;; Handle any :speaktext keywords by sending to
;; kalliope
-RULE: :speaktext --> kalliope.speak
-LOG_IN: :phrase
-IN: (:phrase :speaktext) :interruptable :id
-OUT:
+RULE: :speaktext --> kalliope.synthesize
+LOG_IN: :phrase :id
+LOG_OUT: :id
+IN: (:phrase :speaktext) :id
+OUT:
;; Handle any :speaktext keywords by sending to
-;; PenDecoder also
-RULE: :speaktext --> PenDecoder.speak
-LOG_IN: :tty-phrase
-IN: (:robot_name :id) :speaktext
+;; tty-sphinx also
+RULE: :speaktext --> tty-sphinx.speak
+LOG_IN: :tty-phrase :id
+IN: (:tty-phrase :speaktext) :id
OUT:
-;; When kalliope has outputted, notifies Dialog Manager
-RULE: :conveyance --> %%DialogManager%%.notify_output_manager
-LOG_IN: :conveyance
-IN: :phrase :conveyance :bargein :id
-OUT:
+PROGRAM: system_error
-;;
-;; TTY Sphinx can send this when the user types "reset"
-;;
-RULE: :resetdm --> %%DialogManager%%.reset_variables
-IN:
-OUT: destroy!
-
PROGRAM: robot_message
RULE: :type = "location" --> PenDecoder.set_bot
More information about the TeamTalk-developers
mailing list