<div dir="ltr"><div>For a telephone interface, you could use a softswitch like freeswitch that supports multiple sessions (default is 1000) and protocols to communicate with an application. </div><div><br></div><div>We have tried to provide a preliminary interface between the audioserver component and the freeswitch server. There's a tarball that you can start from. The freeswitch application writes incoming audio data to a named-pipe for every new session. This audio data is read by an instance of audioserver component and forwarded to the recognizer (pocketsphinx). </div>

<div><br></div><div><a href="http://www.speech.cs.cmu.edu/apappu/pubdl/fs-dialog-interface.tar.gz">http://www.speech.cs.cmu.edu/apappu/pubdl/fs-dialog-interface.tar.gz</a></div><div><br></div><div>There is an example application (with example configuration) in the tarball. It also includes customized audioserver and the pocketsphinx engine. If you want to rest of the olympus components, you have to figure out how they will interact with the freeswitch application.</div>

<div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 8, 2014 at 1:39 PM, Nitin Dhawan <span dir="ltr"><<a href="mailto:nitin@imarketingadvantage.com" target="_blank">nitin@imarketingadvantage.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks. This does look a little complicated. We will try to understand this better and come back for further clarifications if required. <u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I do have another question on how this can be done using telephone interface. I will put it in another thread.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>

<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Aasish Pappu [mailto:<a href="mailto:aasishp@gmail.com" target="_blank">aasishp@gmail.com</a>] <br>

<b>Sent:</b> Saturday, February 8, 2014 3:21 AM<br><b>To:</b> Nitin Dhawan<br><b>Cc:</b> olympus-developers<br><b>Subject:</b> Re: [Olympus developers 443]: how to enable multiple users simultaneously.<u></u><u></u></span></p>

<div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">The architecture natively doesn't support multiple users (I assume you meant simultaneous sessions).  However, there were instances where you could run multiple instances of some of the components (Audio Server, DM, InteractionManager, Hub) corresponding to each session. Since those components are session specific. There are few components (ASR, NLU, NLG) which can run as services i.e., doesn't have to be instantiated. All of this <u></u><u></u></p>

<div><p class="MsoNormal">customization will require understanding of how the components interact. <u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The short answer is there is no easy recipe to customize the architecture for multiple sessions.<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">There are few example systems that were built to handle certain aspects of the simultaneous sessions.<u></u><u></u></p></div><div><p class="MsoNormal">

<u></u> <u></u></p></div><div><p class="MsoNormal">1. Multiparty Interaction: System interacting with more than user at a time in a single interactive session.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p>

</div><div><p class="MsoNormal">repo: <a href="http://trac.speech.cs.cmu.edu/repos/olympus/branches/MultiOly1.0/" target="_blank">http://trac.speech.cs.cmu.edu/repos/olympus/branches/MultiOly1.0/</a><u></u><u></u></p></div>

<div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">We instantiate dialog manager, hub for each user to keep track of their slot/value pairs (if different from other user). We don't have to instantiate the IM and AudioServer in this case because both users are listening on same channel (loud speakers) and talking on same channel (kinect microphone array).  While talking to the users, we don't want the dialog manager to request for multiple nlg prompts for each user, instead we synchronize the system's response from DM to one of the users or both users. We do this using a new component called conversation manager that talks to interaction-manager on behalf of both the dialog managers. More details on this work in <a href="http://link.springer.com/chapter/10.1007/978-3-642-39330-3_12" target="_blank">http://link.springer.com/chapter/10.1007/978-3-642-39330-3_12</a><u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">2. Human robot teams: Single user interacting with multiple robots. <u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p>
</div>
<div><p class="MsoNormal">We instantiate dialog manager, hub, robot backend for each robot. The dialog context for each robot is independent from each other. Here each robot's DM responds to the user based on a trigger phrase (e.g., RobotA listen, RobotB listen). <u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">repo: <a href="http://trac.speech.cs.cmu.edu/repos/teamtalk/branches/tt-olympus2/" target="_blank">http://trac.speech.cs.cmu.edu/repos/teamtalk/branches/tt-olympus2/</a><u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">

<u></u> <u></u></p><div><p class="MsoNormal">On Fri, Feb 7, 2014 at 3:44 PM, Nitin Dhawan <<a href="mailto:nitin@imarketingadvantage.com" target="_blank">nitin@imarketingadvantage.com</a>> wrote:<u></u><u></u></p><div>

<div><p class="MsoNormal">Hi<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">This might be a stupid question, but how to enable multiple users to access the system at the same time. How does the system have to be deployed.<u></u><u></u></p>

<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Based on all the documentation we have read so far, one can start all the servers and get either a speech , or tty r java-tty interfact where one user can interact at a time. <u></u><u></u></p>

<p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">We also want to enable authentication of this system, using a single sign on with another system. But thats really the next step.<u></u><u></u></p><p class="MsoNormal">

 <u></u><u></u></p><p class="MsoNormal">Thanks<u></u><u></u></p><p class="MsoNormal"><span style="color:#888888">Nitin Dhawan<u></u><u></u></span></p></div></div></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p>

<div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">-- <br>Aasish Pappu<u></u><u></u></p></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>

-- <br>Aasish Pappu<br><br>
</div>