batumi / KartuliSpeechRecognition

ანდროიდის ქართველი მომხმარებლებისთვის სიტყვის ამოცნობის სისტემის შექმნა
Apache License 2.0
4 stars 1 forks source link

Dont remove .raw files #15

Closed cesine closed 10 years ago

cesine commented 10 years ago

The .raw file can be used for improving the models. The appear to be deleted by the pocketshinx library as they are created, either that or they are always 000000000.raw

screen shot 2014-08-21 at 10 18 53 am

Utterance Id comes from ps_start_utt(ps, uttid); which could come from ps_decode_senscr(ps_decoder_t ps, FILE senfh, char const *uttid)

Or which could be called from swig, here is tracing it to where it might be passed in from Java:

pocketsphinx/swig/python/pocketsphinx_wrap.c:
 3418      }
 3419  SWIGINTERN void Decoder_start_utt(Decoder *self,char const *uttid,int *errcode){
 3420:         *errcode = ps_start_utt(self, uttid);
 3421      }

pocketsphinx-android/jni/pocketsphinx_wrap.c:
  993      }
  994  SWIGINTERN void Decoder_start_utt(Decoder *self,char const *uttid,int *errcode){
  995:         *errcode = ps_start_utt(self, uttid);
  996      }

SWIGEXPORT void JNICALL Java_edu_cmu_pocketsphinx_PocketSphinxJNI_Decoder_1startUtt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  Decoder *arg1 = (Decoder *) 0 ;
  char *arg2 = (char *) 0 ;
  int *arg3 = (int *) 0 ;

  (void)jenv;
  (void)jcls;
  int errcode;
  arg3 = &errcode;
  (void)jarg1_;
  arg1 = *(Decoder **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)(*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    if (!arg2) return ;
  }
  Decoder_start_utt(arg1,(char const *)arg2,arg3);
  {
    if (*arg3 < 0) {
      char buf[64];
      sprintf(buf, "Decoder_startUtt returned %d", *arg3);
      {
        SWIG_JavaException(jenv, SWIG_RuntimeError, buf); return ; 
      };
    }
  }
  if (arg2) (*jenv)->ReleaseStringUTFChars(jenv, jarg2, (const char *)arg2);
}
private final class RecognizerThread extends Thread {
        @Override
        public void run() {
            AudioRecord recorder = new AudioRecord(
                    AudioSource.VOICE_RECOGNITION, sampleRate,
                    AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_PCM_16BIT, 8192); // TODO:calculate
                                                           // properly
            decoder.startUtt(null);

So we could try sending it in to decoder.startUtt(null);