-- all -- People Communities [Browse] [Tag cloud]
<p>Spielsystem: Zwei Dialogpartner, die jeweils auf den anderen antworten, wenn dieser ausgesprochen hat (vgl. <a href="http://coco-lab.org/Elgg/das/page/minutes190607">hier</a>).</p><p>Tipps zur Inbetriebnahme:</p><ul><li>zunächst müssen Sphinx und OAA installiert werden.</li><ul><li>dazu aus meinem Homeverzeichnis die Datei sphinx+oaa.tar.bz2 herunterladen</li><li>die Datei nach /opt/ entpacken (muss man natürlich root für sein, dafür ist es dann aber auch gleich für alle auf dem Rechner installiert) </li><li>gegebenenfalls /opt/bin/ in PATH mit aufnehmen:</li><ul><li>echo export PATH=$PATH:/opt/bin/ >> .bashrc</li></ul><li>gegebenenfalls dafür sorgen, dass alle JARs in /opt/java/ dem CLASSPATH hinzugefügt werden:</li><ul><li>echo for name in `ls /opt/java/*.jar` ; do export CLASSPATH=$CLASSPATH:$name ; done >> ~/.bashrc<br /></li></ul></ul><li>das Projekt aus SVN auschecken:</li><ul><ul><li>svn co svn+ssh://helios/home/das/INPRO_SVN/Code/Java</li></ul></ul><li>nach belieben kompilieren (ich benutze Eclipse, das macht das von selbst. Bei Bedarf könnte ich auch ein ant-buildfile mit einchecken).</li><li>in folgender Reihenfolge -- am besten jeweils in einem eigenen Terminal -- starten:</li><ul><li>zunächst den Facilitator</li><ul><li>fac<br /></li></ul><li>einen DispatcherAgent <br /></li><ul><li>java org.cocolab.inpro.agents.dispatcher.DispatcherAgent dispatcher.a.xml</li></ul><li>den zweiten</li><ul><li>java org.cocolab.inpro.agents.dispatcher.DispatcherAgent dispatcher.b.xml</li></ul><li>entsprechend die Receiver:</li><ul><li>java org.cocolab.inpro.agents.vad.VADAgent vad.a.xml</li><li>java org.cocolab.inpro.agents.vad.VADAgent vad.b.xml</li></ul><li>und schließlich die Audioplayer:</li><ul><li>java org.cocolab.inpro.agents.audioplayer.AudioplayerAgent audioplay.a.xml</li><li>java org.cocolab.inpro.agents.audioplayer.AudioplayerAgent audioplay.b.xml</li></ul></ul><li>damit jetzt etwas passiert, muss einer der Agenten anfangen zu sprechen:</li><ul><li>dafür den OAA Debugger starten</li><ul><li>oaadebugc</li></ul><li>auf den Solve-Knopf drücken und das X im IclRequest durch berndPlayAudio oder durch antoniaPlayAudio ersetzen.</li></ul></ul><p>Realzeit-Fähigkeit:</p><p>wird durch die Einstellung in org/cocolab/inpro/agents/global.parameters.xml bestimmt. Im Moment ist mehr als 0.05 nicht drin, das wird aber besser, wenn wir die Audiodaten nicht mehr per OAA verschicken.</p><ul><li>Der Dispatcher ist ein Flaschenhals: wenn er eingehende Pakete verarbeitet, dann kann er keine Anfragen bearbeiten. <br /></li><ul><li>die outQueue wird "verlängert", wenn der Realzeit-Thread ins Hintertreffen gerät. Dies wird (bisher) durch den sprechenden Dialogpartner verursacht, nicht durch den hörenden. Es wäre also unfair, wenn der hörende darunter leiden müsste </li></ul><li>weniger Pakete erzeugen weniger Overhead. Andererseits können kleinere Pakete schneller verarbeitet werden und sorgen für geringere Latenz. <br /></li><ul><li>der AudioPlayer verschickt exponentiell größer werdende Pakete. Dadurch bleibt die Paketzahl möglichst gering. <br /></li><li>Um die Paketverarbeitung im Dispatcher zu entzerren, wartet er zwischen dem verschicken 9*Anzahl Frames ms. Die Übertragung dauert zwar länger, die Lastkurve wird aber gleichmäßiger. (TODO: Es wäre Zweckmäßig, die Wartezeit vom Echtzeitfaktor in der Verarbeitung abhängig zu machen. Allerdings müsste der AudioPlayer ihn dann kennen) </li><li>zu große Pakete beschäftigen den Dispatcher lange am Stück, sodass er zwischendurch keine Audio-Anfragen beantwortet. Die maximale Paketgröße im AudioPlayer ist deswegen z.Zt. auf 16 Frames begrenzt.</li></ul><li>insgesamt müssen wir drauf achten, dass zumindest das Basissystem mit dem Echtzeitfaktor zurechtkommt. Wird er verändert, müssen andere Variable wahrscheinlich daran angepasst werden: outQueue-Länge, maximale Paketgröße im AudioPlayer, Prozess-Niceness<br /></li><li>Mit einem Dialogparter (der sich selbst zuhört), erreicht mein Computer halbe Echtzeit.<br /></li></ul><p>Probleme: </p><ul><li>Irgendwann steigt der Facilitator aus: "! the atom table is full" (es ist also notwendig, alte SpeechEnd-Fakten zu löschen) </li></ul>
Public (everyone has full access) Moderated (other people can read, but not edit) Private (other people can not read or edit) You must first log in to change permissions.
Home Page