alumae / ruby-pocketsphinx-server

Ruby-based web service for speech recognition, using the PocketSphinx gstreamer module
Other
91 stars 19 forks source link

Run ruby-pocketsphinx-server error #8

Closed dakshinai closed 10 years ago

dakshinai commented 10 years ago

/usr/local/lib/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- md5 (LoadError)

Is there a way to fix this error?

dakshinai commented 10 years ago

I changed the line in server.rb to require 'digest/md5'. I see a new error

E, [2014-06-04T15:33:32.815819 #4305] ERROR -- : undefined method set_property' for nil:NilClass (NoMethodError) /usr/share/ruby-pocketsphinx-server/lib/raw_recognizer.rb:42:inblock in initialize' /usr/share/ruby-pocketsphinx-server/lib/raw_recognizer.rb:40:in each' /usr/share/ruby-pocketsphinx-server/lib/raw_recognizer.rb:40:inmap' /usr/share/ruby-pocketsphinx-server/lib/raw_recognizer.rb:40:in initialize' /usr/share/ruby-pocketsphinx-server/lib/handlers/handler.rb:11:innew' /usr/share/ruby-pocketsphinx-server/lib/handlers/handler.rb:11:in initialize' /usr/share/ruby-pocketsphinx-server/lib/handlers/jsgf_handler.rb:7:ininitialize' /usr/share/ruby-pocketsphinx-server/lib/server.rb:47:in new' /usr/share/ruby-pocketsphinx-server/lib/server.rb:47:inblock (2 levels) in class:Server' /usr/share/ruby-pocketsphinx-server/lib/server.rb:42:in each' /usr/share/ruby-pocketsphinx-server/lib/server.rb:42:inblock in class:Server' /var/lib/gems/1.9.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:1402:in configure' /usr/share/ruby-pocketsphinx-server/lib/server.rb:17:inclass:Server' /usr/share/ruby-pocketsphinx-server/lib/server.rb:15:in <module:PocketsphinxServer>' /usr/share/ruby-pocketsphinx-server/lib/server.rb:11:in<top (required)>' /usr/local/lib/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in require' /usr/local/lib/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:inrequire' config.ru:13:in block in <main>' /var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:ininstance_eval' /var/lib/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in initialize' config.ru:1:innew' config.ru:1:in `

'

alumae commented 10 years ago

Most probably the pocketsphinx GStreamer plugin is not found. Have you compiled it? To test, invoke

gst-inspect-0.10 pocketsphinx

If the result is "No such element..", and you have compiled it, it is most likely just not found. To make it findable, set the GST_PLUGIN_PATH environment variable to the path where the plugin is located. On my machine:

export GST_PLUGIN_PATH=/usr/local/lib

Now, try again with gst-inspect-0.10

dakshinai commented 10 years ago

Thank you.

I have set all of these environmental variables to /usr/local/lib export GST_PLUGIN_PATH=/usr/local/lib export GST_PLUGIN_SYSTEM_PATH=/usr/local/lib export GST_PLUGIN_SYSTEM_PATH_1_0=/usr/local/lib export LD_LIBRARY_PATH=/usr/local/lib

gst-inspect-0.10 pocketsphinx works but gst-inspect-1.0 pocketsphinx does not work

@asr = Gst::ElementFactory.make "pocketsphinx", "asr" returns null

Contents of /usr/local/lib (Note: contents of gstreamer-1.0 were manually copied from gstreamer-0.10)

libpocketsphinx.a libpocketsphinx.so libpocketsphinx.so.1.1.0 libsphinxad.la libsphinxad.so.0 libsphinxbase.a libsphinxbase.so libsphinxbase.so.1.1.1 libpocketsphinx.la libpocketsphinx.so.1 libsphinxad.a libsphinxad.so libsphinxad.so.0.0.1 libsphinxbase.la libsphinxbase.so.1

gstreamer-0.10: libgstpocketsphinx.a libgstpocketsphinx.la libgstpocketsphinx.so

gstreamer-1.0: libgstpocketsphinx.a libgstpocketsphinx.la libgstpocketsphinx.so

pkgconfig: pocketsphinx.pc sphinxbase.pc

python2.7: dist-packages site-packages

python3.4: dist-packages

site_ruby: 1.9.1

I have gstreamer0.10 and gstreamer1.0 installed with ubuntu14.04LTS distribution.

I see some errors when I directly inspect the binaries

gst-inspect-0.10 *.so Plugin Details: Name: libsphinxbase.so Description: Plugin for blacklisted file Filename: /usr/local/lib/libsphinxbase.so Version: 0.0.0 License: BLACKLIST Source module: BLACKLIST Binary package: BLACKLIST Origin URL: BLACKLIST

0 features:

gst-inspect-0.10 *.so

(gst-inspect-0.10:29015): GStreamer-WARNING **: Failed to load plugin 'libgstpocketsphinx.so': libgstpocketsphinx.so: cannot open shared object file: No such file or directory Could not load plugin file: Opening module failed: libgstpocketsphinx.so: cannot open shared object file: No such file or directory

gst-inspect-1.0 *.so Plugin Details: Name libsphinxbase.so Description Plugin for blacklisted file Filename /usr/local/lib/libsphinxbase.so Version 0.0.0 License BLACKLIST Source module BLACKLIST Binary package BLACKLIST Origin URL BLACKLIST

0 features:

gst-inspect-1.0 *.so Plugin Details: Name libgstpocketsphinx.so Description Plugin for blacklisted file Filename /usr/local/lib/gstreamer-0.10/libgstpocketsphinx.so Version 0.0.0 License BLACKLIST Source module BLACKLIST Binary package BLACKLIST Origin URL BLACKLIST

0 features:

gst-inspect-0.10 libgstpocketsphinx.la Plugin Details: Name: pocketsphinx Description: PocketSphinx plugin Filename: libgstpocketsphinx.la Version: 0.8 License: BSD Source module: pocketsphinx Binary package: PocketSphinx Origin URL: http://cmusphinx.sourceforge.net/

vader: VAD element pocketsphinx: PocketSphinx

2 features: +-- 2 elements

gst-inspect-1.0 libgstpocketsphinx.la Could not load plugin file: File "libgstpocketsphinx.la" appears to be a GStreamer plugin, but it failed to initialize

From these, I'm guessing the server script is using gstreamer1.0. Could you help?

alumae commented 10 years ago

It requires gstreamer-0.10. I think it would not be too hard to make the ruby program handle gstreamer-1.0, but the pocketsphinx GStreamer plugin is written for 0.10 and it's not totally trivial to port to 1.0.

Anyway, GStreamer 0.10 and 1.0 can happily co-exist on he same machine. If you cannot gst-inspect-0.10 the libgstpocketsphinx.so file, then something is probably wrong with you GStreamer setup.

dakshinai commented 10 years ago

Thank you.

As you said all the required plugins are identified by gstreamer-0.10, including pocketsphinx, as I see from these statements.

gst-inspect-0.10 libgstpocketsphinx.la Plugin Details: Name: pocketsphinx Description: PocketSphinx plugin Filename: libgstpocketsphinx.la Version: 0.8 License: BSD Source module: pocketsphinx Binary package: PocketSphinx Origin URL: http://cmusphinx.sourceforge.net/

vader: VAD element pocketsphinx: PocketSphinx

2 features: +-- 2 elements

Also gst-inspect-0.10 pocketsphinx works.

To reconfirm, do you suggest that gst-inspect-0.10 libgstpocketsphinx.so should also work? I'm new to gstreamer and I believe I have done extensive search for this issue with no luck. Could you give me some pointers please?

Thanks in advance.

alumae commented 10 years ago

If gst-inspect-0.10 pocketsphinx works then it should also work from Ruby. Do you still get the same error as described in the initial comment?

You wrote that you now have problems with the filesink plugin? Make sure that the packages gstreamer0.10-plugins-base, gstreamer0.10-plugins-good and gstreamer0.10-plugins-bad are installed.

dakshinai commented 10 years ago

Hello,

I have all these gstreamer0.10-plugins-base, gstreamer0.10-plugins-good and gstreamer0.10-plugins-bad installed. I had reset GST_PLUGIN_SYSTEM_PATH, which lead to filesink not being found. I do not have that issue anymore.

The only problems I'm left with is gst-inspect-0.10 libgstpocketsphinx.so and the server program do not work

But gst-inspect-0.10 pocketsphinx and gst-inspect-0.10 libgstpocketsphinx.la work and apt-get install gstreamer-0.10* is up to date.

The ubuntu system I'm using is a fresh install. Please advice if I can do any code tweaks particular for my case or is there any system check that can help me identify the the issue I'm facing.

dakshinai commented 10 years ago

Hello,

I tried an alternate line @asr = Gst::ElementFactory.find("pocketsphinx").create("asr") instead of @asr = Gst::ElementFactory.make "pocketsphinx", "asr"

find returns nill object though gst-inspect-0.10 works. Could you please help.

Is there a specific ruby, ruby-gems and ruby-gstreamer version I should use?

alumae commented 10 years ago

I managed to reproduce your error with Ruby 1.9.1 (I had Ruby 1.8 before and hadn't upgraded for a long time). I'm investigating it.

alumae commented 10 years ago

It seems that the Ruby 1.9.1 Gstreamer bindings use Gstreamer 1.0 and I see no way to change it. Unfortunately the Pocketsphinx Gstreamer plugin is for Gstreamer 0.10.

So, it seems that currently the only way is to use Ruby 1.8 which is of course a shame as its not even available from the official repositories for recent Linux distributions.

To fix this, PocketSphinx GStreamer plugin must be ported to 1.0.

dakshinai commented 10 years ago

Thank you. I was trying to install ruby1.8 with rvm and I did. However I'm yet unable to install libgst-ruby1.8, as there are too many dependencies for which I'm unable to get a source.

Could you tell me how easy it is and the steps to port the PocketSphinx GStreamer plugin to 1.0?

alumae commented 10 years ago

Porting to Gstreamer 1.0 involves getting to know GStreamer and Pocketsphinx plugin internals, learning the changes from 0.10 to 1.0 ( http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/random/porting-to-1.0.txt), implementing the new plugin and figuring out what to do with the two versions (I would vote for just replacing the 0.10 plugin with the new one in the SVN trunk).

But as you probably know, I'm not the author or Pocketsphinx GStreamer plugin, so you should probably ask the CMU SPhinx people about it.

On Wed, Jun 11, 2014 at 1:55 AM, Dakshina Ilangovan < notifications@github.com> wrote:

Thank you. I was trying to install ruby1.8 with rvm and I did. However I'm yet unable to install libgst-ruby1.8, as there are too many dependencies for which I'm unable to get a source.

Could you tell me how easy it is and the steps to port the PocketSphinx GStreamer plugin to 1.0?

— Reply to this email directly or view it on GitHub https://github.com/alumae/ruby-pocketsphinx-server/issues/8#issuecomment-45682676 .

dakshinai commented 10 years ago

Hello,

I tried all the steps on an older Ubuntu distribution (10.04 LTS) and I was able run the server with ruby-1.8.

I'm seeing a new error

Setting hmm to models/est16k.cd_cont_3000-mapadapt... ERROR: "pocketsphinx.c", line 134: Failed to find mdef file inside the model folder specified with -hmm 'models/est16k.cd_cont_3000-mapadapt' INFO: feat.c(713): Initializing feature stream to type: '1s_c_d_dd', ceplen=13, CMN='prior', VARNORM='no', AGC='none' INFO: cmn.c(142): mean[0]= 12.00, mean[1..12]= 0.0 ERROR: "acmod.c", line 87: Folder 'models/est16k.cd_cont_3000-mapadapt' does not contain acoustic model definition 'mdef'

I do not see a models directory in the server code base? Could you help clarify this?

alumae commented 10 years ago

Contrary to the documentation, the the conf.yaml file was using Estonian models. I updated the configuration to use English models that Sphinx automatically installs (see conf.yaml and modify accroding to your needs). I also updated the main README.

dakshinai commented 10 years ago

Thank you!! I'm now able to run the server successfully.

Few notes if you can validate at your end:

  1. I commented out lines that worked on property "cmn_mean", as this does not exist in the latest build of pocketsphinx.
  2. The pocketsphinx patch "patch -p0 -i ps_gst.patch" rejects some changes and also makes pocketsphinx to build with errros.
  3. I had to "gem install rdoc" before doing a "gem install sinatra"

Thank you again for patiently and consistently helping me through to run the server.

dakshinai commented 10 years ago

Hello!

I have a question. Does the server app support remote connections? curl -T $(POCKETSPHINX_DIR)/test/data/wsj/n800_440c0207.wav -H "Content-Type: audio/x-wav" "http://serverip:8080/recognize" I tried printing on a GET request and it did work.

However the content length on a PUT request is less and no response is returned. I see 504 error. Could you check at your end once?

alumae commented 10 years ago

What do you mean by remote connection? Client and server on different machines? Yes, this is supported (actually this the point of this software). We use it like that all the time.

I don't understand the rest of your comment. Can you give me the output of the curl command and what the server prints to sysout/syserr as the result?

dakshinai commented 10 years ago

I'm trying to send a audio file from windows to the ubuntu server using a http put request.

Instead of localhost, I tried a wget/curl/fiddler http put request to http://serverip:8080/recognize. I got a timeout 504 error. In fiddler I saw that server gave a empty response. (The remote request is identical to local request except for server ip address)

I ensured that telnet to the serverip on port 8080 worked.

In the server debug I logged the request content length. The remote request had a size lesser than a successful localhost request (18k compared to 100k). I'm guessing this is the padding length.

alumae commented 10 years ago

The timeout error might indicate that there is a firewall between your client and server.

As I said before, please give me the output of curl (with -v (verbose option)) and server. For example, in my system:

Client:

curl -v -T elas-metsas.wav -H "Content-Type: audio/x-wav"  "http://fourier:8082/recognize"
* Hostname was NOT found in DNS cache
*   Trying 172.17.3.104...
* Connected to fourier (172.17.3.104) port 8082 (#0)
> PUT /recognize HTTP/1.1
> User-Agent: curl/7.36.0
> Host: fourier:8082
> Accept: */*
> Content-Type: audio/x-wav
> Content-Length: 163244
> Expect: 100-continue
> 
* Done waiting for 100-continue
* We are completely uploaded and fine
< HTTP/1.1 200 OK
< Date: Wed, 18 Jun 2014 07:57:53 GMT
< Status: 200 OK
< Connection: close
< X-Frame-Options: sameorigin
< Content-Type: application/json; charset=utf-8
< Content-Disposition: attachment
< X-XSS-Protection: 1; mode=block
< Content-Length: 475
< 
{
  "status": 0,
  "hypotheses": [
    {
      "utterance": "elas metsas muti ja keset kuuski noori vanu"
    },
    {
      "utterance": "elas metsas muti ja keset kuuski noori vanu on"
    },
    {
      "utterance": "elas metsas muti ja keset kuuski noori vanu ja"
    },
    {
      "utterance": "elas metsas muti jaa keset kuuski noori vanu"
    },
    {
      "utterance": "elas metsas ja keset kuuski noori vanu"
    }
  ],
  "id": "5dd807b35e9e14104a01762a38ace2fe"
* Closing connection 0
}

Server:

I, [2014-06-18T10:57:44.267216 #19448]  INFO -- : Request ID: 5dd807b35e9e14104a01762a38ace2fe
I, [2014-06-18T10:57:44.267295 #19448]  INFO -- : Determining request handler...
I, [2014-06-18T10:57:44.267441 #19448]  INFO -- : Request will be handled by #<PocketsphinxServer::PrettifyingHandler:0x62faf70>
I, [2014-06-18T10:57:44.267486 #19448]  INFO -- : Preparing request handler recognizer...
I, [2014-06-18T10:57:44.267750 #19448]  INFO -- : User agent: curl/7.36.0
I, [2014-06-18T10:57:44.267807 #19448]  INFO -- : Device ID : default
I, [2014-06-18T10:57:44.510004 #19448]  INFO -- : Setting CMN mean to  9.48, 0.44,-0.44, 0.23,-0.23,-0.19,-0.12,-0.33,-0.02,-0.19,-0.12,-0.05,-0.22 
INFO: cmn_prior.c(66): cmn_prior_set: from <  9.48  0.44 -0.44  0.23 -0.23 -0.19 -0.12 -0.33 -0.02 -0.19 -0.12 -0.05 -0.22 >
INFO: cmn_prior.c(77): cmn_prior_set: to   <  9.48  0.44 -0.44  0.23 -0.23 -0.19 -0.12 -0.33 -0.02 -0.19 -0.12 -0.05 -0.22 >
I, [2014-06-18T10:57:44.510230 #19448]  INFO -- : Parsing content type audio/x-wav
I, [2014-06-18T10:57:44.510308 #19448]  INFO -- : CAPS string is audio/x-wav
D, [2014-06-18T10:57:45.269488 #19448] DEBUG -- : ---- pad-added ---- 
I, [2014-06-18T10:57:45.721742 #19448]  INFO -- : Data end received
INFO: cmn_prior.c(121): cmn_prior_update: from <  9.53  0.30 -0.23  0.13 -0.20 -0.15 -0.18 -0.31 -0.03 -0.19 -0.09 -0.05 -0.20 >
INFO: cmn_prior.c(139): cmn_prior_update: to   <  9.29  0.27 -0.11  0.07 -0.17 -0.13 -0.16 -0.28 -0.03 -0.19 -0.08 -0.05 -0.18 >
INFO: ngram_search_fwdtree.c(1549):     6052 words recognized (12/fr)
INFO: ngram_search_fwdtree.c(1551):  1198045 senones evaluated (2349/fr)
INFO: ngram_search_fwdtree.c(1553):  6325536 channels searched (12403/fr), 172884 1st, 242188 last
INFO: ngram_search_fwdtree.c(1557):    21681 words for which last channels evaluated (42/fr)
INFO: ngram_search_fwdtree.c(1560):   764449 candidate words for entering last phone (1498/fr)
INFO: ngram_search_fwdtree.c(1562): fwdtree 4.67 CPU 0.916 xRT
INFO: ngram_search_fwdtree.c(1565): fwdtree 5.62 wall 1.102 xRT
INFO: ngram_search_fwdflat.c(305): Utterance vocabulary contains 360 words
INFO: ngram_search_fwdflat.c(940):     4211 words recognized (8/fr)
INFO: ngram_search_fwdflat.c(942):   203199 senones evaluated (398/fr)
INFO: ngram_search_fwdflat.c(944):   268816 channels searched (527/fr)
INFO: ngram_search_fwdflat.c(946):    27884 words searched (54/fr)
INFO: ngram_search_fwdflat.c(948):    21651 word transitions (42/fr)
INFO: ngram_search_fwdflat.c(951): fwdflat 0.56 CPU 0.109 xRT
INFO: ngram_search_fwdflat.c(954): fwdflat 0.58 wall 0.114 xRT
INFO: ngram_search.c(1266): lattice start node <s>.0 end node </s>.403
INFO: ngram_search.c(1294): Eliminated 0 nodes before end node
INFO: ngram_search.c(1399): Lattice has 417 nodes, 797 links
D, [2014-06-18T10:57:51.492427 #19448] DEBUG -- : CMN mean after:  9.29, 0.27,-0.11, 0.07,-0.17,-0.13,-0.16,-0.28,-0.03,-0.19,-0.08,-0.05,-0.18 
I, [2014-06-18T10:57:51.620631 #19448]  INFO -- : PRETTIFYING: elas metsas muti ja keset kuuski noori vanu
I, [2014-06-18T10:57:51.942750 #19448]  INFO -- : RESULT:      elas metsas muti ja keset kuuski noori vanu
I, [2014-06-18T10:57:51.942832 #19448]  INFO -- : PRETTIFYING: elas metsas muti ja keset kuuski noori vanu on
I, [2014-06-18T10:57:52.392915 #19448]  INFO -- : RESULT:      elas metsas muti ja keset kuuski noori vanu on
I, [2014-06-18T10:57:52.392997 #19448]  INFO -- : PRETTIFYING: elas metsas muti ja keset kuuski noori vanu ja
I, [2014-06-18T10:57:52.728433 #19448]  INFO -- : RESULT:      elas metsas muti ja keset kuuski noori vanu ja
I, [2014-06-18T10:57:52.728512 #19448]  INFO -- : PRETTIFYING: elas metsas muti jaa keset kuuski noori vanu
I, [2014-06-18T10:57:53.140324 #19448]  INFO -- : RESULT:      elas metsas muti jaa keset kuuski noori vanu
I, [2014-06-18T10:57:53.140402 #19448]  INFO -- : PRETTIFYING: elas metsas ja keset kuuski noori vanu
I, [2014-06-18T10:57:53.441211 #19448]  INFO -- : RESULT:      elas metsas ja keset kuuski noori vanu
172.17.3.115 - - [18/Jun/2014 10:57:53] "PUT /recognize HTTP/1.1" 200 475 9.1775
I, [2014-06-18T10:57:53.444378 #19448]  INFO -- : 172.17.3.115 - - [18/Jun/2014 10:57:53] "PUT /recognize HTTP/1.1" 200 475 9.1784
dakshinai commented 10 years ago

Request sent from Windows that sits behind a proxy. Curl response with/without proxy on server ip C:\Users\dilangov\Downloads\curl-7.33.0-win64-nossl>curl -v -T n800_440c0207.wav -H "Content-Type: audio/x-wav" "http://134.134.171.110:8080/recognize"

C:\Users\dilangov\Downloads\curl-7.33.0-win64-nossl>curl -v --noproxy 134.134.17 1.110 -T n800_440c0207.wav -H "Content-Type: audio/x-wav" "http://134.134.171.1 10:8080/recognize"

I, [2014-06-18T10:45:38.139705 #2769] INFO -- : worker=0 ready I, [2014-06-18T10:47:39.030882 #2769] INFO -- : Request ID: 03bf370cbf46c6b3387171b203809ec3 I, [2014-06-18T10:47:39.031037 #2769] INFO -- : Determining request handler... I, [2014-06-18T10:47:39.031177 #2769] INFO -- : Request will be handled by #PocketsphinxServer::PrettifyingHandler:0xb6e68af0 I, [2014-06-18T10:47:39.031270 #2769] INFO -- : Preparing request handler recognizer... I, [2014-06-18T10:47:39.037376 #2769] INFO -- : User agent: curl/7.33.0 I, [2014-06-18T10:47:39.037510 #2769] INFO -- : Device ID : default W, [2014-06-18T10:47:39.037768 #2769] WARN -- : Falling back to deprecated cmn_means.yaml instead of cmn_means.json I, [2014-06-18T10:47:39.038020 #2769] INFO -- : Parsing content type audio/x-wav I, [2014-06-18T10:47:39.038159 #2769] INFO -- : CAPS string is audio/x-wav D, [2014-06-18T10:47:40.081149 #2769] DEBUG -- : ---- pad-added ---- I, [2014-06-18T10:47:40.129207 #2769] INFO -- : Data end received I, [2014-06-18T10:47:40.129278 #2769] INFO -- : Length:18786 E, [2014-06-18T10:48:40.964512 #2725] ERROR -- : worker=0 PID:2769 timeout (61s > 60s), killing E, [2014-06-18T10:48:40.972148 #2725] ERROR -- : reaped # worker=0 I, [2014-06-18T10:48:40.972378 #2725] INFO -- : worker=0 spawning... I, [2014-06-18T10:48:40.973741 #2777] INFO -- : worker=0 spawned pid=2777

dakshinai commented 10 years ago

Wget

C:\Program Files (x86)\GnuWin32\bin>wget -v --post-file="n800_440c0207.wav" --he ader="Content-Type: audio/x-wav" "http://134.134.171.110:8080/recognize" SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc --2014-06-18 11:04:07-- http://134.134.171.110:8080/recognize Connecting to 134.134.171.110:8080... connected. HTTP request sent, awaiting response... No data received. Retrying.

--2014-06-18 11:05:09-- (try: 2) http://134.134.171.110:8080/recognize Connecting to 134.134.171.110:8080... connected. HTTP request sent, awaiting response... No data received. Retrying.

--2014-06-18 11:06:48-- (try: 3) http://134.134.171.110:8080/recognize Connecting to 134.134.171.110:8080... connected. HTTP request sent, awaiting response... ^C C:\Program Files (x86)\GnuWin32\bin>

dakshinai commented 10 years ago

Fiddler response

HTTP/1.1 504 Fiddler - Receive Failure Date: Wed, 18 Jun 2014 18:26:49 GMT Content-Type: text/html; charset=UTF-8 Connection: close Cache-Control: no-cache, must-revalidate Timestamp: 11:26:49.757

[Fiddler] ReadResponse() failed: The server did not return a response for this request. Server returned 0 bytes.

alumae commented 10 years ago

What does the server print out when you make a remote request?

dakshinai commented 10 years ago

This is what I see

I, [2014-06-18T10:45:38.139705 #2769] INFO -- : worker=0 ready I, [2014-06-18T10:47:39.030882 #2769] INFO -- : Request ID: 03bf370cbf46c6b3387171b203809ec3 I, [2014-06-18T10:47:39.031037 #2769] INFO -- : Determining request handler... I, [2014-06-18T10:47:39.031177 #2769] INFO -- : Request will be handled by #PocketsphinxServer::PrettifyingHandler:0xb6e68af0 I, [2014-06-18T10:47:39.031270 #2769] INFO -- : Preparing request handler recognizer... I, [2014-06-18T10:47:39.037376 #2769] INFO -- : User agent: curl/7.33.0 I, [2014-06-18T10:47:39.037510 #2769] INFO -- : Device ID : default W, [2014-06-18T10:47:39.037768 #2769] WARN -- : Falling back to deprecated cmn_means.yaml instead of cmn_means.json I, [2014-06-18T10:47:39.038020 #2769] INFO -- : Parsing content type audio/x-wav I, [2014-06-18T10:47:39.038159 #2769] INFO -- : CAPS string is audio/x-wav D, [2014-06-18T10:47:40.081149 #2769] DEBUG -- : ---- pad-added ---- I, [2014-06-18T10:47:40.129207 #2769] INFO -- : Data end received I, [2014-06-18T10:47:40.129278 #2769] INFO -- : Length:18786 E, [2014-06-18T10:48:40.964512 #2725] ERROR -- : worker=0 PID:2769 timeout (61s > 60s), killing E, [2014-06-18T10:48:40.972148 #2725] ERROR -- : reaped # worker=0 I, [2014-06-18T10:48:40.972378 #2725] INFO -- : worker=0 spawning... I, [2014-06-18T10:48:40.973741 #2777] INFO -- : worker=0 spawned pid=2777

This is the log I had added I, [2014-06-18T10:47:40.129278 #2769] INFO -- : Length:18786

The length is 1/10 of a successful request.

alumae commented 10 years ago

You are using some proxy between your client and server? What kind of proxy? The server-client protocol uses HTTP chunked transfer encoding -- maybe it's not supported by the proxy?

dakshinai commented 10 years ago

Hello, I tried a curl between two ubuntu machines. Both had no firewall and I disabled proxy but I still see the timeouts (same error). I was able to telnet from machine 1 to server.

Any idea?

alumae commented 10 years ago

Let me get it straight: the exact same audio file is processed correctly when sent from the local machine but causes a timeout when sent from a remote machine? If this is the case then I'm afraid I cannot help. There isn't any code in the server that could cause this. This must be caused by some other factors. Remotely sent files are processed just fine on my setups.

dakshinai commented 10 years ago

Hello,

These are my findings. I put a stub debug print for HTTP PUT/GET/POST in server.rb. All the remote requests were handled with a 200OK. Also I added support for text/plain and tried a debug print on the server to see request body. The text file went intact. Could you give me some pointers to troubleshoot further? It will be of great help.

dakshinai commented 10 years ago

Hello,

I tried with a small audio file and it went through the remote request. The server works for me now for all files. Thanks so much for your guidance :)

alumae commented 10 years ago

Thanks a lot for your patience!

nshmyrev commented 9 years ago

FYI, pocketsphinx has been just ported to gstreamer 1.0

alumae commented 9 years ago

OK, will port soon.