Chris,<br><br>&nbsp; I&#39;ve been doing some testing of mod_pocketsphinx as well. I have tested it on my AMD Dual Core 64-bit 4200+ and a Pentium 4 HT. Both with 1 gig of memory. I&#39;m getting 100% CPU utilization on both during the recognition of a word or utterance. It pretty much brings everything to a halt until it&#39;s done and returns the result. This obviously causes the pizza demo to be fairly slow in its responses to voice input.<br>
<br>&nbsp; I haven&#39;t been able to do much testing with lumenvox on freeswitch but using lumenvox on an Asterisk box the standard CPU utilization on my Pentium 4 hovers around 5%-15% during a recognition using a much larger grammar file than the ones used for the pizza demo. <br>
<br>&nbsp; I&#39;m sure, as its name suggest, that pocketsphinx can do better than that. Not sure how low level this is but it definitely seems to be happening in the sphinx code base. <br>&nbsp;&nbsp; <br>&nbsp; Any ideas..?<br><br>Fred<br>
<br><div class="gmail_quote">On Sat, Jul 12, 2008 at 2:34 PM, Chris Danielson &lt;<a href="mailto:chris@maxpowersoft.com">chris@maxpowersoft.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



  

<div bgcolor="#ffffff" text="#000000">
Was working with mod_pocketsphinx and found it difficult to
troubleshoot the failed loading of the dictionary files.&nbsp; Tried to open
a JIRA to apply the patch on this but it told me the following:<br>
<h3>Issue Created Successfully</h3>
You have successfully created the issue (MODASRTTS-6), however you do
not have the permission to view the created issue.
<p> If you think this message is wrong, please consult your <a href="http://jira.freeswitch.org/secure/Administrators.jspa" target="_blank">administrators</a>
about getting the necessary permissions.<br>
<br>
</p>
Anyways, here is the patch.<br>
<br>
<br>
Index: mod_pocketsphinx.c<br>
===================================================================<br>
--- mod_pocketsphinx.c&nbsp; (revision 9003)<br>
+++ mod_pocketsphinx.c&nbsp; (working copy)<br>
@@ -125,12 +125,12 @@<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; model = switch_mprintf(&quot;%s%smodel%s%s&quot;,
SWITCH_GLOBAL_dirs.grammar_dir, SWITCH_PATH_SEPARATOR,
SWITCH_PATH_SEPARATOR, globals.model);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (switch_file_exists(dic, ah-&gt;memory_pool) !=
SWITCH_STATUS_SUCCESS) {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
&quot;Can&#39;t open dictionary.\n&quot;);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
&quot;Can&#39;t open dictionary. %s\n&quot;, dic);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto end;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (switch_file_exists(lm, ah-&gt;memory_pool) !=
SWITCH_STATUS_SUCCESS) {<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch_log_printf(SWITCH_CHANNEL_LOG,
SWITCH_LOG_WARNING, &quot;Can&#39;t open language model.\n&quot;);<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch_log_printf(SWITCH_CHANNEL_LOG,
SWITCH_LOG_WARNING, &quot;Can&#39;t open language model. %s\n&quot;, lm);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto end;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
<br>
<br>
<div><b>Chris Danielson</b>
<br>
Software Consultant and Co-Founder
<br>
Web: <a href="http://www.maxpowersoft.com/" target="_blank">MaxPowerSoft, LLC</a>
<br>
<br>
</div>
</div>

<br>Index: mod_pocketsphinx.c<br>
===================================================================<br>
--- mod_pocketsphinx.c &nbsp;(revision 9003)<br>
+++ mod_pocketsphinx.c &nbsp;(working copy)<br>
@@ -125,12 +125,12 @@<br>
 &nbsp; &nbsp; &nbsp; &nbsp;model = switch_mprintf(&quot;%s%smodel%s%s&quot;, SWITCH_GLOBAL_dirs.grammar_dir, SWITCH_PATH_SEPARATOR, SWITCH_PATH_SEPARATOR, globals.model);<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;if (switch_file_exists(dic, ah-&gt;memory_pool) != SWITCH_STATUS_SUCCESS) {<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, &quot;Can&#39;t open dictionary.\n&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, &quot;Can&#39;t open dictionary. %s\n&quot;, dic);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto end;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;if (switch_file_exists(lm, ah-&gt;memory_pool) != SWITCH_STATUS_SUCCESS) {<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, &quot;Can&#39;t open language model.\n&quot;);<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, &quot;Can&#39;t open language model. %s\n&quot;, lm);<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;goto end;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
<br>
<br>_______________________________________________<br>
Freeswitch-users mailing list<br>
<a href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br>