What if the sphinx is completely inaccurate?
Edit for clarity: The output I get from sphinx doesn't even come close to the actual words in my audio file. What do I need to do to make it more accurate?
Here's the file I'm trying to get a transcript. It should be 8K sample rate.
- The acoustic model I am using is ru-us-8khz.tar.gz
- Dictionary: dictionary .
- Language Model: US English Generic
Speech in the file "What to do if you have a problem with your iPod", but as a conclusion, I get:
<s> <sil> well how how [um] [cough] [um] old [cough] [noise] [cough] <sil> [noise]
[um] <sil> [um] <sil> [uh] [cough] [noise] [cough] [um]
Here's my code:
package com.test.sphinxtest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.LiveSpeechRecognizer;
import edu.cmu.sphinx.api.SpeechResult;
import edu.cmu.sphinx.api.StreamSpeechRecognizer;
public class App
{
public static void main( String[] args )
{
Configuration configuration = new Configuration();
configuration.setAcousticModelPath("models/acousticmodel/en-us-8khz");
configuration.setDictionaryPath("dictionary/cmudict-0.6d");
configuration.setLanguageModelPath("models/languagemodel/en-us.lm");
configuration.setSampleRate(8000);
try {
StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration);
recognizer.startRecognition(new FileInputStream("speech/speech8k.wav"));
System.out.println("Starting recognition");
SpeechResult result = recognizer.getResult();
System.out.println("Stopping recognition");
recognizer.stopRecognition();
System.out.println("number of words " + result.getWords().size());
for(int i=0;i<result.getWords().size();i++){
System.out.println(result.getWords().get(i).getWord());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
+3
source to share
1 answer
I looked at this page: http://cmusphinx.sourceforge.net/wiki/faq#qwhy_my_accuracy_is_poor
And I saw that I needed to set my audio file to single channel.
After that, I got a reasonable result.
+2
source to share