Development News

From Olympus
Jump to: navigation, search

See http://edam.speech.cs.cmu.edu/RC-Olympus-News/

Older Development News

    1. [2004-11-29] (dbohus):#* /Audio_Server_Batch Update/

I've updated Audio_Server_Batch also to work with sphinx2. If other components are still using fbs headers, basically what one needs to do is change prim_types.h to s2types.h and the fbs libraries (in the project settings) to the sphinx2 libraries (you can see the ones used in Audio_Server for instance). I recommend removing the fbs folder from Agents at this point so that if there are other components that use that, we will run into the problem...

    1. [2004-11-25] (antoine):#* /Audio_Server, Sphinx_Engine, Phoenix, Helios Update/

I added 6 new features to the !Helios feature set. They are based on the word-level confidence score computed in Sphinx_Engine. The first three are the average, min and max word confidence for the hypothesis, while the other three are the same but computed only on words deemed confident by Sphinx_Engine. In order to have those features in your logs, you need to get the latest version of the four modules cited above, plus Audio_Server_Batch if you're using it.

    1. [2004-11-24] (jsherwan):#* /Audio_Server, Sphinx_Engine, sphinx2 Update/

I added the folder 'sphinx2' to VSS -- this sphinx2 has support for Finite-State Grammars (FSGs). I've also updated Audio_Server and Sphinx_Engine to support the minor changes that sphinx2 has compared to fbs8.

    1. [2004-11-18] (antoine):#* /!DateTime Update/

I updated !DateTime so that it puts "now" in the time period specifier field (timeperiod_spec) of its output if the user said something like "now" or "as soon as possible". The start_time or end_time are still set to the actual current time but we needed this flag in Let's Go! Note that in order to use it in your system, you might need to modify the !DateTime binding filter of your DM as well.

    1. [2004-11-12] (dbohus):#* /!DateTime Update/

I updated !DateTime so that you can set the reference date from outside. The hub function exposed is !DateTime.SetRefDate, and you need to send it an :refdate integer (e.g. 20041112). You can update your !DateTime from VSS. If you want to use this functionality, you'll have to add the corresponding declaration for this function for the !DateTime server in your pgm file.

    1. [2004-09-05] (dbohus):#* /Backend Update/

I've done a couple of updates to the backend server. I made it so that it sends the begin_session to the perl backend, as a frame "query begin_session" (also query end_session). That means that in !TaskBE.pm you can catch it easily and do whatever you need with it. I've also added a bit to the BE_Server, so that it can take command line parameters, and it can pass them to a function in !TaskBE.pm (!TaskBE::setCommandLineOptions). You can look at the !RoomLineBackend !TaskBE file to figure out how exactly it works, but this can come in handy if you want to pass start-up parameters to your backend. Everything is in VSS.

    1. [2004-08-02] (dbohus):#* /Helios and !TTYRecognitionServer Update/

I've updated helios so that the confidence annotation model is specified in a file. From now on, the helios confidence score will be outputted as the h3_confidence feature (the h2_logistic_garble_conf has dissapeared). This also required a minor chnage in !TTYRecognitionServer since it was using the h3_logistic_garble_conf. You basically will need to update this files from VSS, but also get the latest confidence.model file and make sure the helios.cfg file points to it.

    1. [2004-08-02] (dbohus):#* /Generic.gra Update/

Updated the generic grammar so that "ok" also parses as a [Yes]. Before, only "okay" did.

    1. [2004-07-25] (dbohus):#* /!RavenClaw Update/

Changed some stuff in the nonunderstanding recovery strategies. Added !YieldTurn startegy, and removed some of the notify versions. You should update your !RavenClaw, but also your requests_default.pol policy file (which is the one that specifies the actions and policies). Use the roomline version of that, downloadable from \sprocket oomline

    1. [2004-07-25] (dbohus):#* /Helios bug-fix/

I fixed a bug in helios. The problem occured when the user spoke too soon, and a choose_parse is called before helios got a chance to get the dialog state information from the DM. In this case helios was buffering and waiting for the state, and only then sending the parse. The problem was that I was using an incorrect galaxy function for broadcasting the postponed reply to choose_parse, so it would actually not hit the DM and the system would freeze. Anyways, that's sorted now, so you can update your Helios from VSS

    1. [2004-07-18] (dbohus):#* /!RavenClaw Update/

A number of bug fixes, plus having another logging stream for concepts. You should look at the latest version of the !RoomLineDM.cfg in order to adjust your configuration files. The new concept logging stream logs changes to concepts as well as their values right before each input pass. This can come in handy for debugging, so you may choose to have that stream displayed if you want. Regardless, the stream is very important for training confidence/belief updating models, so i strongly recommend having it on in the logged_streams category. For that matter, i strongly recommend having all streams logged.

    1. [2004-07-06] (dbohus):#* /Generic grammar Update/

I've updated a number of slots in the generic grammar, mostly to increase coverage (this is all based on an analysis of parsed/unparsed transcripts in the !RoomLine system).

    1. [2004-06-30] (jsherwan):#* /!BackendServer Update/

Added begin_session galaxy function, which launches a query (querytype=init_logdir, logdir=:hub_logdir) to the backend. For systems that do not require this functionality, there is nothing extra that needs to be done, and your system will work properly. If you require this functionality, you will need to make the appropriate changes to your Hub's .pgm file (specifically, add the begin_session operation to the gal_be server, and also create a rule just like Helios' begin_session rule)

    1. [2004-06-24] (jsherwan):#* /TTYRecognition Update/

Added optional -autostart command line flag, which if set causes tty to fire an init_session() on startup

    1. [2004-06-23] (jsherwan):#* /!AudioServer, TTYRecognition, Phoenix, and Helios Update/

Fixed uttid sending in !AudioServer, and added support for uttids in the other three modules

    1. [2004-06-08] (dbohus):#* /!RavenClaw Update/

In introducing the support for grounding concepts in Ravenclaw, a number of things have changed: - NOT_AVAILABLE has been replaced by UNAVAILABLE (this is just cosmetic) - The semantics of AVAILABLE and UPDATED have changed slightly. Basically they mean "available and grounded" and "updated and grounded". If you don't use grounding models on concepts in your dialog task, the semantics are equivalent (i.e. concepts with "none" grounding models are always grounded). If you want to know more about the semantics of these things, ask me (i should write it down somewhere) - The fashion in which the grounding models are defined on concepts has changed. For atomic concepts, before you would do INT_USER_CONCEPT(x, none). Now you have to do INT_USER_CONCEPT(x, "none"). In other words you have to put a real string in there. For structs and frames, the grounding models are no longer defined when the type definition is done, but rather when an actual concept of that type is used. Here's an example to clarify. Instead of:

!DEFINE_FRAME_CONCEPT_TYPE( !CRoomQueryRefinement,

   STRING_ITEM( location, none )
   INT_ITEM( size, none )
   STRING_ITEM( size_spec, none )
   STRING_ITEM( equip, none )

)

you should have just (the grounding model definitions have dissapeared from the type definition)

!DEFINE_FRAME_CONCEPT_TYPE( !CRoomQueryRefinement,

   STRING_ITEM( location )
   INT_ITEM( size )
   STRING_ITEM( size_spec )
   STRING_ITEM( equip )

)

Then, when you actually use a concept of that type, you have to define its grounding model, so:

!CUSTOM_USER_CONCEPT(query_refinement, !CRoomQueryRefinement,

 "none, location=none, size=none, size_spec=none, equip=none")

You can omit any of the none's (the default is none everywhere). And of course you can use an actual grounding model instead of any of the nones.

- Finally, i've introduced a computation for the slots_matched and slots_blocked in the DM core, and changed the computation in helios to match that. (Before we were doing concepts_bound and concepts_blocked, but that's actually something different... which is still being computed by the dm core)

At any rate, you should get the new version from VSS when you get a chance. The only changes you will have to do to your dialog task are those involving the definition of the grounding models on concepts (as outline above). Everything else should run smoothly, let me know if it doesn't.


    1. [2004-05-24] (dbohus):#* /!RavenClaw Update - Bug fixes/

A number of bugs that have sprouted on concepts since the concepts makeover (see entry on 05-19) have been fixed. Make sure you have the latest version from VSS and let me know please if you see any new bugs.

    1. [2004-05-24] (dbohus):#* /Rosetta Bug Fix/

I just fixed a bug in Rosetta.pm (it would not work fine if you had code which returned a hash of prompts). Update it from VSS (now in !CommonAgents)

    1. [2004-05-19] (dbohus):#* /!RavenClaw Update - Concepts makeover/

So i just did a major makeover of all the concept classes in !RavenClaw, in order to have more support for grounding. Externally, everything behaves the same, except for structured concepts which now are of 2 types: the previous structures are now called frames, and should be derived off !CFrameConcept using DEFINE_FRAME_CONCEPT_TYPE(). We also have a new type of structure, derived off !CStructConcept using DEFINE_STRUCT_CONCEPT_TYPE() -- concepts with this type act as a single semantic unit and can undergo grounding (the fields in this structure are in lockstep, i.e. they always have the same number of hypotheses). So in short what that means is: - update your !RavenClaw from VSS, and make sure you change all the previous DEFINE_STRUCT_CONCEPT_TYPE that you had into DEFINE_FRAME_CONCEPT_TYPE, if you want to maintain the same behavior as you had before - watch out for and report bugs. Since this was a pretty significant rearrangement of the code, i expect that things might fail somewhere... I tested stuff in Roomline and it seemed to be okay, but one never knows.

    1. [2004-05-07] (dbohus):#* /!RavenClaw Update/

I've made some changes to the !GalaxyInterface and !TrafficManager in RavenClaw. The blocking calls to the hub are not made via the !GalIO_DispatchViaHub function (and hopefully will work even during system timeouts); Also, in the !TrafficManager, for non-blocking calls, the traffic manager will not attempt to parse the results (since there aren't any). Please update your !RavenClaw from VSS.

    1. [2004-05-01] (dbohus):#* /VSS Update Phase 1/

So i've started the VSS update, and completed the first part. There is a !CommonAgents folder in VSS containing the common communicator agents. Similarly, there's a !CommonTools folder which contains the Tools. Last but not least there's a !CommonAgentsOld folder which has some of the older versions of communicator components. I've cleaned up my projects: !RoomLine, LARRI and Madeleine. What you need to do for your projects: . delete (you can destroy permanently) the agents that are common. But, before doing that you need to check that your version matches the one in !CommonAgents. To do that, use the Show Differences function in VSS. . delete the Tools folder from your projects . set the new working folders appropriately Finally, once you guys have done all this, let me know and we can move to phase 2: splitting !RavenClaw. Actually, I'm thinking it would be nice to split NLG, too.

    1. [2004-04-25] (dbohus):#* /!DateTime4 update/

I updated !DateTime4 so that *all* time periods, like morning, early afternoon, etc are resolved in something that starts at minute 1 and ends at minute 59, i.e. 1201 - 1459.

    1. [2004-04-25] (dbohus):#* /Generic.gra update/

Updated the generic grammar so that you can say stuff like "what can you?", etc for the !HelpSystemCapabilities library strategy in !RavenClaw

    1. [2004-04-25] (dbohus):#* /!RavenClaw updates/

. arranged !OnCreation and !OnInitialization so that they make more sense (see posting on the !RavenClawKBAdvanced. . added a !HelpSystemCapabilities library agent - it provides information about the system's general capabilities at the user's request . changed the !HelpGetTips to actually send out a counter to the NLG, specifying the count for how many times it has been invoked. This way the NLG can do more funky stuff, like cycle through the interaction tips.

    1. [2004-04-21] (dbohus):#* /Rosetta Knowledge Base Item/

Turns out that one can easily implement shortcuts (abbreviations) for prompts in Rosetta. (I was looking for this since i'm adding SSML markers in Roomline's output and i don't want to type {break time="400ms"/} every time). The way to do it is to overwrite the finalFilter routine of Rosetta. So you will have to write a Rosetta::Roomline::finalFilter routine in your equivalent of the !RoomLine.pm file. You can look at !RoomLine.pm in VSS for inspiration. (So from now on, it's ... instead of {break time="800ms"/})

    1. [2004-04-13] (dbohus):#* /!RavenClaw Update/

. Now concepts are created before agents in the task tree, so if need be the #ON_INITIALIZATION# routines can access the concepts . introduced the macro #REOPEN_TOPIC(Agent)#: this will reopen an agent(cy) for conversation but without reopening the concepts (i.e. the concepts will maintain whatever values they currently have).

    1. [2004-04-12] (dbohus):#* /Helios Bug fix - Update/

I fixed a bug whereas Helios would not compute the turn_number and dialog_state features when there was no parse, even if teh DM would send them to it.

    1. [2004-04-07] (dbohus):#* /!RavenClaw Update/

Updated the suspend library agent so that it resumes the dialog even if you say "restart session" and other things like that, which parse as a [!StartOver]

    1. [2004-04-07] (dbohus):#* /Generic.gra Update/

Updated the generic grammar so that "Hold" and other simple words like that do not directly parse as [Suspend]. At least in roomline, a lot of time these words are falsely inserted by the recongnition and the end results is that the interaction is suspended, which has an annoying effect

    1. [2004-04-07] (dbohus):#* /Versioning in our systems/

I suggest that for each of our deployed systems, we can have a system_history.txt file under the root folder, i.e. !RoomLine. This file would describe the history of changes that happened to the deployed version (i.e. language model changes, new functionality, etc). This information will turn out really useful for you later, when at some point you are in the situation when you wish you knew when you changed "x"... For a template, look at \sprocketRoomlinesystem_history.txt . BTW, this file is specific to each machine the system is deployed it, so it does not really appear in VSS. (this is bothering me a bit, but maybe we can find an even better solution)

    1. [2004-04-06] (dbohus):#* /!RavenClaw and Helios Update/

I've updated both !RavenClaw and Helios so that now helios actually receives the dialog state in a compressed form (to minimize hub communication) and computes 4 dialog level features. A couple of other problems were fixed in !RavenClaw . *Helios*: receives expectation from DM and computes 4 features: #turn_number#, #dialog_state#, #slots_matched#, #slots_blocked# . *!RavenClaw*: sends expectation in compressed form to helios. . *!RavenClaw*: fixed an ugly buffer overrun bug in #!FormatString# . *!RavenClaw*: now issues warnings if the dialog level features computed on the helios side do not coincide with the DM computations . *!RavenClaw*: changed the semantics of #FINISH#. #FINISH# now means set an agent to completed, but also eliminate it of the execution stack. If before you did: #FINISH(a)# followed by #pDMCore->!PopAgentFromExecutionStack(A)#, now you can just do: #FINISH(a)#. To just mark an agent as completed, a new macro, #!SET_COMPLETED(a)# has been introduced.

Please update your !RavenClaw and Helios from VSS as soon as possible.

    1. [2004-03-31] (dbohus):#* /Perl backend bug fixed/

I fixed a bug in the perl backend (in BE_server.pl). It prevented the backend from functioning correctly when you would send it an attribute that had a value of "0". If you use a perl backend, get the latest version of BE_server.pl from VSS

    1. [2004-03-31] (dbohus):#* /Generic.gra - !DateTime Update/

I've updated the !DateTime component and the generic grammar so that it correctly handles stuff like "right now", "as soon as possible", "right away", "immediately", etc... Update your components from VSS...

    1. [2004-03-30] (dbohus):#* /System Structure Update/

So we've changed a bit the structure of the folders for the Communicator based systems. Now we have a new #Configurations# folder, i.e.: . #@Project@Configurations# - contains the various configurations of the system . #@Project@ConfigurationsXYZConfiguration# - contains XYZ configuration (i.e. for now in Roomline i have #!PhoneConfiguration# and #!DesktopConfiguration#. The bat start files, start lists and all other configuration files (i.e. helios.cfg, etc, etc) should be in these folders. Also, the hub pgm files have moved from #ResourcesHubConfiguration# to here. The #!HubConfiguration# folder has dissapeared. The #Binx86-nt# folder should now contain only binaries (and maybe some logs produced by them. On the other hand, the #Configurations# folder should be mirrored in VSS for each project (with no sharing across projects)

  • Please update your systems to have this structure as soon as possible. Thanks.*
    1. [2004-03-29] (dbohus):#* /Helios - !RavenClaw - HUB Update/

Yet another update along the same lines as the one on 03-23. You will need to get the lastest version of Helios and !RavenClaw from VSS. The basic change is that the DM will now send not only the expectation agenda, but rather a full dialog state structure (which contains other stuff besides the agenda) to Helios. . *Helios*: replaced #set_expectation# with #set_dialog_state# call . *HUB*: you need to change your pgm files accordingly by replacing #set_expectation# with #set_dialog_state# on the #OPERATIONS# line for the helios server . *!RavenClaw*: updated !RavenClaw so that it can broadcast the dialog state in each turn to other servers. You should get the latest version from VSS. Also, you will need to change your DM configuration file (i.e. !RoomLineDM.cfg) to replace #broadcast_expectation = helios.set_expectation# with something like #broadcast_state = helios.set_dialog_state# Note that the DM can now broadcast the state to multiple servers (they have to be separated by ; on the line above). . *!RavenClaw*: finally, another change is that !RavenClaw computes a feature called "dialog_state" which will be the name of the dialog state. By default, the dialog_state will be the name of the focused agent. Alternatively you can define your own set of states by using a #dialog_states_file = filename# line in the !RavenClaw configuration file. I've created and shared across projects an example file (dialog_states.def). This file contains entries in the form #!AgentName = !StateName#. When !AgentName is in focus the dialog_state will be set to !StateName. If the focused agent is not found in the file, then the state is set to unknown. It's up to you if you want to use or not a dialog_states.def file. But you need to update your !RavenClaw either way.

    1. [2004-03-25] (dbohus):#* /Helios Update/

Last time i updated Helios (03-23), i checked in an incomplete version in VSS (thanks for the heads-up, antoine). I think I fixed it now. Also, the #lexical_models.def# file has changed name to #target_prompts.def#, which implies that, apart from doing a full Helios update, you should rename that file (if you had it before in your bin folder), and also update the helios.cfg file accordingly (#target_prompts=target_prompts.def#)

    1. [2004-03-23] (dbohus):#* /Helios - !RavenClaw - HUB Update/

I have update Helios, !RavenClaw and the PGM file so that the DM can send information about the expectation agenda to helios. Below are the changes in a bit more detail (you will have to update your helios, ravenclaw and pgms).

. *Helios* now accepts a set_expectation calls, which come from the DM. I've also changed Helios so that it uses a single configuration file (helios.cfg) as opposed to the ton of parameters in the command line. A helios.cfg file has been shared across projects. If you need it to look differently, break the share first in VSS on that file in your project. BTW, the file should go in the bin folder, and you should update your startlist files to use something like #Helios -config helios.cfg# . *HUB*: you need to change your pgm files by adding set_expectation on the #OPERATIONS# line for the helios server . *!RavenClaw*: updated !RavenClaw so that it can broadcast the expectation agenda in each turn to other servers (in the process i've also fixed a bug in computing the number of blocked concepts, and enhanced the logging for the binding process). You should get the latest version from VSS. Also, you will need to change your DM configuration file (i.e. !RoomLineDM.cfg) with something like #broadcast_expectation = helios.set_expectation#. . *!RavenClaw*: Finally, another change is that one can now define the default timeouts in the DM configuration file, using something like #default_timeout = 10#. Note that the #DEFAULT_TIMEOUT_PERIOD# macro in the #CORE_CONFIGURATION# still works, and will actually overwrite the value in the configuration file.

So far these changes only support sending the expectations to helios. In the future, I will update helios to actually perform feature computations based on these expectations. Also, in the future i will make the "timeout" inputs go through helios.

    1. [2004-03-20] (dbohus):#* /Grammar Update/

Updated the generic grammar to fix some bugs in [Yes]. (before "i am" and things like that parsed as [Yes], which is not considered incorrect). Please update your grammars from VSS.

    1. [2004-03-18] (dbohus):#* Added a Tools folder in !RavenClaw in VSS, shared across all the !RavenClaw projects. This folder will contain various tools associated with the !RavenClaw dialog manager. For now, there's a single one, a perl module that can be used to parse !RavenCLaw dialog.log files (!RavenClawLogParser). You should update your local distributions to include this folder.
    1. [2004-03-18] (antoine):#* /Sphinx-TTY-Phoenix-Helios-Hub update/

I changed small things in all the modules mentioned above (only the !AudioServer for Sphinx), which you should get from VSS and recompile. I changed the name of some features that get passed through the hub so it's also necessary to change the pgm file for each system. You have to change the rule that passes a recognition hypothesis to Phoenix (look at !BusLine/Resources/HubConfiguration/ for an example).

    1. [2004-03-18] (antoine):#* /New Sphinx module for batch decoding/

I created a new project in the !MultiDecoder folder called Audio_Server_Batch. It allows you to create a Sphinx-Phoenix-Helios line to reprocess recordings from old sessions (this is useful if you have a new recognizer and want to get the new Helios output for these sessions, to train a confidence annotation module for example). You can use the standard Phoenix and Helios. All you need is the new Audio_Server_Batch, a new hub pgm file and a new startlist. You can find the pgm file in the !BusLine/Resources/HubConfiguration folder (batch-mode.pgm). Ask me if you want the new startlist since it's not in VSS.

    1. [2004-03-18] (antoine):#* /Kalliope update/

I updated Kalliope so that it can run with a Festival server now. You have to decide at compile time if you want a Theta or a Festival version. People using Kalliope should get the new version from VSS.

    1. [2004-03-18] (dbohus):#* /Testing mailing list; and testing recursive/
    1. [2004-03-17] (dbohus):#* /!DateTime4 Update/

I updated !DateTime4 to correct for a bug in the computation of past_date (the flag that indicates if the resolved date was in the past). If you use !DateTime4, you should grab from VSS and recompile.

    1. [2004-03-17] (dbohus):#* /Grammar Update/

I've updated the Generic grammar to contain a slot for [Neither]. If you use Generic.gra, you should update it from VSS and recompile your grammar

Personal tools