I just thought of another way to implement this without changing RavenClaw:<br>








<p class="MsoNormal">Add another server ProcessRawData which receives the raw data input (in parallel with the parser)<br>
ProcessRawData outputs the input text in the format of the Parser:</p>


<p class="MsoNormal">[RawText] ( the typed in text )<br>
<br>
</p>




<p class="MsoNormal">The output is&nbsp; passed&nbsp; to the DialogManager.process_parse message<br>
</p>
<p class="MsoNormal">The the text will bind to all concept that are expected in the [RawText] grammar mapping.<br>
</p>
<p class="MsoNormal">Please let me know your thoughts on this.<br>
</p>
<p class="MsoNormal">thank you<br>
Svetlana<br>
</p>

<br><div><span class="gmail_quote">On 11/5/06, <b class="gmail_sendername">Svetlana Stenchikova</b> &lt;<a href="mailto:svetastenchikova@gmail.com">svetastenchikova@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dan, thank you for&nbsp; your answer. I have another question. <br>


<p>We are interested in the functionality where a free text can
be entered through TTY (or through free speech recognition). </p>




<p>For example, a user can be asked to describe the event. The
grammar for this description is not available, so we want to store all of the
typed ( or recognized) text, and/or a URL of the recorded speech <span>&nbsp;</span>into the concept in a dialog manager. </p>




<p>We need to bypass the parser. I would need to make changes
to the RavenClaw to accommodate this, right?</p>




<p>Currently the user input from the TTY (or ASR) <span>&nbsp;</span>is processed by the parser. </p>




<p>&nbsp;The control flow is determined by the .pgm file. This entry
causes it to call process_parse when an output from the parser is available:</p>


<p>&nbsp;</p>














<p>;; If we have a confidence annotated hypothesis, but<br>
;; no parse, call phoenix to parse it<br>
;; ---<br>
RULE: :confhyps &amp; !:parses --&gt; phoenix.phoenixparse<br>
IN: :confhyps :npow :pow :clip_info<br>
OUT: :total_numparses :parses :input_source<br>
LOG_OUT: :parses</p>






<p>&nbsp;</p>


<p>So I plan to add another entry:</p>




















<p>&nbsp;;; If we have a confidence annotated hypothesis, but<br>
;; no parse, call DM directly<br>
;; ---<br>
RULE: :confhyps &amp; !:parses --&gt; DM.process_raw<br>
IN: :confhyps :npow :pow :clip_info<br>
OUT:<br>
LOG_OUT:<br>
<br>
&nbsp;</p>


<p>Add process_raw() to </p>










<p>Libraries/RavenClaw/DMInterfaces/GalaxyInterfaceFunctions.h&amp; implement in GalaxyInterface.cpp<br>
&nbsp;</p>


















<p>process_raw() function will be called whenever an output
from the TTY (or ASR) is received. So, this output will go to both parser and
DialogManager.process_raw.<br>
process_raw() <span>&nbsp;</span>assigns
the text to a concept (but only in the case when the concept is currently expected):<br>
For every expected concept as compiled by <span style="font-size: 10pt;">CDMCoreAgent::compileExpectationAgenda():<br>
</span>If a concept is a &quot;raw speech&quot; concept, <span>&nbsp;</span>set its value to the raw text received in an <span>&nbsp;</span>input frame <span>&nbsp;</span>to process_raw&nbsp;<br>
I would have to add a type to a concept to indicate that it
allows &quot;raw text&quot; input.</p>




<p><br>
Does this implementation plan make sense? </p>


<p>Could you please make any suggestions?</p>


<p>Jahanzeb must have done something similar because his
application can record user's input. Do you know how that was implemented?</p>


<p>&nbsp;</p>

Thank you,<br><span class="sg">
Svetlana<br>
<br>
<br>
<br>

</span></blockquote></div><br>