Hi,
Since I wanted to add some more words to dictionary I unzipped the above file and added to accoustic model and again coverted it to zip file. But now when I ried adding this zip folder to my netbeans project the above file was missing although it is present. Why is this? And how to make it work.
Thanks
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Have done with the sample demo example of pocketsphinx.
I want to add button click event instead of specking 'oh mighty computer' in the example given in the pocketsphinx.I am trying it from last week but not able to get it. can you tell me how can i achieve it. Not gtting the exact pinch where I should add button click event.?
Thank you.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
public class PocketSphinxActivity extends Activity implements
RecognitionListener {
/*Namedsearchesallowtoquicklyreconfigurethedecoder*/privatestaticfinalStringKWS_SEARCH="wakeup";privatestaticfinalStringFORECAST_SEARCH="forecast";privatestaticfinalStringDIGITS_SEARCH="digits";privatestaticfinalStringPHONE_SEARCH="phones";privatestaticfinalStringMENU_SEARCH="menu";/*Keywordwearelookingfortoactivatemenu*/**privatestaticfinalStringKEYPHRASE="up down left right";**privateSpeechRecognizerrecognizer;privateHashMap<String,Integer>captions;@OverridepublicvoidonCreate(Bundlestate){super.onCreate(state);// Prepare the data for UIcaptions=newHashMap<String,Integer>();captions.put(KWS_SEARCH,R.string.kws_caption);captions.put(MENU_SEARCH,R.string.menu_caption);captions.put(DIGITS_SEARCH,R.string.digits_caption);captions.put(PHONE_SEARCH,R.string.phone_caption);captions.put(FORECAST_SEARCH,R.string.forecast_caption);setContentView(R.layout.main);//((TextView) findViewById(R.id.caption_text)).setText("START SPEAKING ");// Recognizer initialization is a time-consuming and it involves IO,// so we execute it in async tasknewAsyncTask<Void,Void,Exception>(){@OverrideprotectedExceptiondoInBackground(Void...params){try{Assetsassets=newAssets(PocketSphinxActivity.this);FileassetDir=assets.syncAssets();setupRecognizer(assetDir);}catch(IOExceptione){returne;}returnnull;}@OverrideprotectedvoidonPostExecute(Exceptionresult){if(result!=null){((TextView)findViewById(R.id.caption_text)).setText("Failed to init recognizer "+result);}else{switchSearch(KWS_SEARCH);}}}.execute();}@OverridepublicvoidonDestroy(){super.onDestroy();recognizer.cancel();recognizer.shutdown();}/***Inpartialresultwegetquickupdatesaboutcurrenthypothesis.In*keywordspottingmodewecanreacthere,inothermodesweneedtowait*forfinalresultinonResult.*/@OverridepublicvoidonPartialResult(Hypothesishypothesis){((TextView)findViewById(R.id.result_text)).setText("");if(hypothesis!=null){Stringtext=hypothesis.getHypstr();makeText(getApplicationContext(),text,Toast.LENGTH_SHORT).show();}}/***Thiscallbackiscalledwhenwestoptherecognizer.*/@OverridepublicvoidonResult(Hypothesishypothesis){((TextView)findViewById(R.id.result_text)).setText("");if(hypothesis!=null){Stringtext=hypothesis.getHypstr();makeText(getApplicationContext(),text,Toast.LENGTH_SHORT).show();}}@OverridepublicvoidonBeginningOfSpeech(){}/***Westoprecognizerheretogetafinalresult*/@OverridepublicvoidonEndOfSpeech(){if(!recognizer.getSearchName().equals(KWS_SEARCH))switchSearch(KWS_SEARCH);}privatevoidswitchSearch(StringsearchName){recognizer.stop();// If we are not spotting, start listening with timeout (10000 ms or 10 seconds).if(searchName.equals(KWS_SEARCH))recognizer.startListening(searchName);elserecognizer.startListening(searchName,1000);Stringcaption=getResources().getString(captions.get(searchName));((TextView)findViewById(R.id.caption_text)).setText(caption);}privatevoidsetupRecognizer(FileassetsDir)throwsIOException{// The recognizer can be configured to perform multiple searches// of different kind and switch between themrecognizer=defaultSetup().setAcousticModel(newFile(assetsDir,"en-us-ptm")).setDictionary(newFile(assetsDir,"cmudict-en-us.dict"))// To disable logging of raw audio comment out this call (takes a lot of space on the device).setRawLogDir(assetsDir)// Threshold to tune for keyphrase to balance between false alarms and misses.setKeywordThreshold(1e-45f)// Use context-independent phonetic search, context-dependent is too slow for mobile.setBoolean("-allphone_ci",true).getRecognizer();recognizer.addListener(this);/**Inyourapplicationyoumightnotneedtoaddallthosesearches.*Theyareaddedherefordemonstration.Youcanleavejustone.*/// Create keyword-activation search.recognizer.addKeyphraseSearch(KWS_SEARCH,KEYPHRASE);// Create grammar-based search for selection between demos// Create language model searchFilelanguageModel=newFile(assetsDir,"weather.dmp");recognizer.addNgramSearch(FORECAST_SEARCH,languageModel);// Phonetic searchFilephoneticModel=newFile(assetsDir,"en-phone.dmp");recognizer.addAllphoneSearch(PHONE_SEARCH,phoneticModel);}@OverridepublicvoidonError(Exceptionerror){((TextView)findViewById(R.id.caption_text)).setText(error.getMessage());}@OverridepublicvoidonTimeout(){switchSearch(KWS_SEARCH);}
public void playAudio(View view) {
Intent objIntent = new Intent(this, PlayAudio.class);
startService(objIntent);
}
public void stopAudio(View view) {
Intent objIntent = new Intent(this, PlayAudio.class);
stopService(objIntent);
}
}
1) If I use the Bold line as:
private static final String KEYPHRASE = "up down left right";
it keep on showing the text up down left right, multiple times..
or didnt recognise any other sentenses or words.
but
If I use the Bold line as:
private static final String KEYPHRASE = " ";
it keeps on its keeps on poping up empty text bar:
2) What I want is just it should recognise whatever I speak.can you give suggesions so I can continue. with
what should I do
please give any solution.
Thank you.
Last edit: Mangesh Mukund Panchwagh 2016-03-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
public class PocketSphinxActivity extends Activity implements
RecognitionListener {
/*Namedsearchesallowtoquicklyreconfigurethedecoder*/privatestaticfinalStringKWS_SEARCH="wakeup";privatestaticfinalStringFORECAST_SEARCH="forecast";privatestaticfinalStringDIGITS_SEARCH="digits";privatestaticfinalStringPHONE_SEARCH="phones";privatestaticfinalStringMENU_SEARCH="menu";/*Keywordwearelookingfortoactivatemenu*/privatestaticfinalStringKEYPHRASE=" ";privateSpeechRecognizerrecognizer;privateHashMap<String,Integer>captions;@OverridepublicvoidonCreate(Bundlestate){super.onCreate(state);// Prepare the data for UIcaptions=newHashMap<String,Integer>();captions.put(KWS_SEARCH,R.string.kws_caption);captions.put(MENU_SEARCH,R.string.menu_caption);captions.put(DIGITS_SEARCH,R.string.digits_caption);captions.put(PHONE_SEARCH,R.string.phone_caption);captions.put(FORECAST_SEARCH,R.string.forecast_caption);setContentView(R.layout.main);//((TextView) findViewById(R.id.caption_text)).setText("START SPEAKING ");// Recognizer initialization is a time-consuming and it involves IO,// so we execute it in async tasknewAsyncTask<Void,Void,Exception>(){@OverrideprotectedExceptiondoInBackground(Void...params){try{Assetsassets=newAssets(PocketSphinxActivity.this);FileassetDir=assets.syncAssets();setupRecognizer(assetDir);}catch(IOExceptione){returne;}returnnull;}@OverrideprotectedvoidonPostExecute(Exceptionresult){if(result!=null){((TextView)findViewById(R.id.caption_text)).setText("Failed to init recognizer "+result);}else{switchSearch(KWS_SEARCH);}}}.execute();}@OverridepublicvoidonDestroy(){super.onDestroy();recognizer.cancel();recognizer.shutdown();}/***Inpartialresultwegetquickupdatesaboutcurrenthypothesis.In*keywordspottingmodewecanreacthere,inothermodesweneedtowait*forfinalresultinonResult.*/@OverridepublicvoidonPartialResult(Hypothesishypothesis){((TextView)findViewById(R.id.result_text)).setText("");if(hypothesis!=null){Stringtext=hypothesis.getHypstr();makeText(getApplicationContext(),text,Toast.LENGTH_SHORT).show();}}/***Thiscallbackiscalledwhenwestoptherecognizer.*/@OverridepublicvoidonResult(Hypothesishypothesis){((TextView)findViewById(R.id.result_text)).setText("");if(hypothesis!=null){Stringtext=hypothesis.getHypstr();makeText(getApplicationContext(),text,Toast.LENGTH_SHORT).show();}}@OverridepublicvoidonBeginningOfSpeech(){}/***Westoprecognizerheretogetafinalresult*/@OverridepublicvoidonEndOfSpeech(){if(!recognizer.getSearchName().equals(KWS_SEARCH))switchSearch(KWS_SEARCH);}privatevoidswitchSearch(StringsearchName){recognizer.stop();// If we are not spotting, start listening with timeout (10000 ms or 10 seconds).if(searchName.equals(KWS_SEARCH))recognizer.startListening(searchName);elserecognizer.startListening(searchName,1000);Stringcaption=getResources().getString(captions.get(searchName));((TextView)findViewById(R.id.caption_text)).setText(caption);}privatevoidsetupRecognizer(FileassetsDir)throwsIOException{// The recognizer can be configured to perform multiple searches// of different kind and switch between themrecognizer=defaultSetup().setAcousticModel(newFile(assetsDir,"en-us-ptm")).setDictionary(newFile(assetsDir,"cmudict-en-us.dict"))// To disable logging of raw audio comment out this call (takes a lot of space on the device).setRawLogDir(assetsDir)// Threshold to tune for keyphrase to balance between false alarms and misses.setKeywordThreshold(1e-45f)// Use context-independent phonetic search, context-dependent is too slow for mobile.setBoolean("-allphone_ci",true).getRecognizer();recognizer.addListener(this);/**Inyourapplicationyoumightnotneedtoaddallthosesearches.*Theyareaddedherefordemonstration.Youcanleavejustone.*/// Create keyword-activation search.recognizer.addKeyphraseSearch(KWS_SEARCH,KEYPHRASE);// Create grammar-based search for selection between demosFilemenuGrammar=newFile(assetsDir,"menu.gram");recognizer.addGrammarSearch(MENU_SEARCH,menuGrammar);// Create grammar-based search for digit recognitionFiledigitsGrammar=newFile(assetsDir,"digits.gram");recognizer.addGrammarSearch(DIGITS_SEARCH,digitsGrammar);// Create language model searchFilelanguageModel=newFile(assetsDir,"weather.dmp");recognizer.addNgramSearch(FORECAST_SEARCH,languageModel);// Phonetic searchFilephoneticModel=newFile(assetsDir,"en-phone.dmp");recognizer.addAllphoneSearch(PHONE_SEARCH,phoneticModel);}@OverridepublicvoidonError(Exceptionerror){((TextView)findViewById(R.id.caption_text)).setText(error.getMessage());}@OverridepublicvoidonTimeout(){switchSearch(KWS_SEARCH);}
}
1) This is how I modified the code as above.
for the following line in the code as
private static final String KEYPHRASE = " ";
the output is:
whatever I speak giving nothing in the KEYPHRASE ,It just giving the tab having no any text on it.And keep on poping that tab with blank texts.
2)And when I write the line in the code as
private static final String KEYPHRASE = " up down left right";
the output is:
It keep on displaying up down left right with infinite loop.
3)And if change the sentense(up down left right to how are you) it crashes the app.
I want that whatever I speak It should identify and displays its text on the screen.
Thank you
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
Since I wanted to add some more words to dictionary I unzipped the above file and added to accoustic model and again coverted it to zip file. But now when I ried adding this zip folder to my netbeans project the above file was missing although it is present. Why is this? And how to make it work.
Thanks
Make sure you are using sphinx4 version and do not use WSJ model, there are much more accurate models available.
I'm using sphinx4 version only. Which model should I use?
Make sure you are using sphinx4-5prealpha, see for details
http://cmusphinx.sourceforge.net/wiki/tutorialsphinx4
Have done with the sample demo example of pocketsphinx.
I want to add button click event instead of specking 'oh mighty computer' in the example given in the pocketsphinx.I am trying it from last week but not able to get it. can you tell me how can i achieve it. Not gtting the exact pinch where I should add button click event.?
Thank you.
hey I am getting this exception while adding the button click event to pocketsphinx-android-demo.
Thanks
You modified something incorrectly, you need to provide your modifications in order to get help on this issue.
The modified Code is:
Have just given some comments:
package edu.cmu.pocketsphinx.demo;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import edu.cmu.pocketsphinx.Assets;
import edu.cmu.pocketsphinx.Hypothesis;
import edu.cmu.pocketsphinx.RecognitionListener;
import edu.cmu.pocketsphinx.SpeechRecognizer;
import static android.widget.Toast.makeText;
import static edu.cmu.pocketsphinx.SpeechRecognizerSetup.defaultSetup;
public class PocketSphinxActivity extends Activity implements
RecognitionListener {
public void playAudio(View view) {
Intent objIntent = new Intent(this, PlayAudio.class);
startService(objIntent);
}
}
1) If I use the Bold line as:
private static final String KEYPHRASE = "up down left right";
it keep on showing the text up down left right, multiple times..
or didnt recognise any other sentenses or words.
but
If I use the Bold line as:
private static final String KEYPHRASE = " ";
it keeps on its keeps on poping up empty text bar:
2) What I want is just it should recognise whatever I speak.can you give suggesions so I can continue. with
what should I do
please give any solution.
Thank you.
Last edit: Mangesh Mukund Panchwagh 2016-03-04
First format your question properly.
package edu.cmu.pocketsphinx.demo;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import edu.cmu.pocketsphinx.Assets;
import edu.cmu.pocketsphinx.Hypothesis;
import edu.cmu.pocketsphinx.RecognitionListener;
import edu.cmu.pocketsphinx.SpeechRecognizer;
import static android.widget.Toast.makeText;
import static edu.cmu.pocketsphinx.SpeechRecognizerSetup.defaultSetup;
public class PocketSphinxActivity extends Activity implements
RecognitionListener {
}
1) This is how I modified the code as above.
for the following line in the code as
private static final String KEYPHRASE = " ";
the output is:
whatever I speak giving nothing in the KEYPHRASE ,It just giving the tab having no any text on it.And keep on poping that tab with blank texts.
2)And when I write the line in the code as
private static final String KEYPHRASE = " up down left right";
the output is:
It keep on displaying up down left right with infinite loop.
3)And if change the sentense(up down left right to how are you) it crashes the app.
I want that whatever I speak It should identify and displays its text on the screen.
Thank you