Я новичок в Sphinx 4 и пытаюсь сделать приложение для простого распознавания цифр. У меня есть набор wavs с тремя цифрами, выраженный с короткой паузой (например, one_five_nine.wav) для теста. Проблема заключается в том, что распознавание файла останавливается после обнаружения первой цифры, поэтому у меня есть только «один» в качестве вывода для one_five_nine.wav.Sphinx 4: узнайте wav со словами, произносящимися с короткой паузой
Вот мой передний конец конфигурации
<component name="epFrontEnd16k" type="edu.cmu.sphinx.frontend.FrontEnd">
<propertylist name="pipeline">
<item>audioFileDataSource</item>
<item>dataBlocker </item>
<item>speechClassifier </item>
<item>speechMarker </item>
<item>nonSpeechDataFilter </item>
<item>preemphasizer </item>
<item>windower </item>
<item>fft </item>
<item>melFilterBankFor16k</item>
<item>dct </item>
<item>liveCMN </item>
<item>featureExtraction </item>
</propertylist>
</component>
и код
Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
recognizer.allocate();
AudioFileDataSource dataSource = (AudioFileDataSource) cm.lookup("audioFileDataSource");
File folder = new File(testDataSetDirectory);
for (final File fileEntry : folder.listFiles()) {
// retrive URL
URL audioURL = null;
try {
audioURL = fileEntry.toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// configure the audio input for the recognizer
dataSource.setAudioFile(audioURL, null);
Result result = recognizer.recognize();
String recognizedText = result != null ? result.getBestFinalResultNoFiller() : "null";
// print
System.out.println(fileEntry.getName() + ":\t" + recognizedText);
}
Спасибо за помощь.
большое, большое спасибо – user2283573