CMU пример сфинкса - PullRequest
       25

CMU пример сфинкса

0 голосов
/ 04 января 2019

Моя цель - позволить пользователям говорить, нажимая кнопку, а затем, когда они нажимают кнопку для остановки, консоль выводит результат.Я попытался применить код, который пишет официальный сайт CMU sphinx, в виде следующего кода:

LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration);
// Start recognition process pruning previously cached data.
recognizer.startRecognition(true);
SpeechResult result = recognizer.getResult();
// Pause recognition process. It can be resumed then with startRecognition(false).
recognizer.stopRecognition();

Вот как я реализовал проект zk-maven:

public class SphinxSpeechRecog extends SelectorComposer<Component> {
    Configuration configuration = new Configuration();
    private LiveSpeechRecognizer recognizer;
    private SpeechResult result;

    public SphinxSpeechRecog() {
        // TODO Auto-generated constructor stub
    }

    @Listen("onClick=#speakbtn")
    public void startSpeaking() throws IOException, InstantiationException {
        //System.out.println("hi");
        configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us");
        configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict");
        configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin");
        recognizer = new LiveSpeechRecognizer(configuration);

        recognizer.startRecognition(true);
        result = recognizer.getResult();
        recognizer.stopRecognition();

    }
    @Listen("onClick=#stopspeakbtn")
    public void stopSpeaking() {

        System.out.print("result: "+result);
    }

}

интерфейс(файл .zul):

<?page title="sphinx speech recognition" contentType="text/html;charset=UTF-8"?>
<zk>
    <window title="sphinx speech recognition" border="normal" apply="sphinx.SphinxSpeechRecog">
        <button id="speakbtn" label="speak"/>
        <button id="stopspeakbtn" label="stop speaking"/> 
    </window>
</zk>

Консоль java (eclipse) выводит какой-то странный результат, подобный этому (через столько минут) :

результат: edu.cmu.sphinx.api.SpeechResult@3be41473

Что я могу сделать, чтобы оптимизировать мой код?И как получить произнесенные слова, которые я действительно хочу увидеть?

1 Ответ

0 голосов
/ 28 января 2019
for(WordResult word : result.getWords()) {
    System.out.print(word.toString());          
}

См. Больше примеров здесь .

...