Package net.fortytwo.ripple.audio

Source Code of net.fortytwo.ripple.audio.HelloDigits

package net.fortytwo.ripple.audio;

import edu.cmu.sphinx.frontend.util.Microphone;
import edu.cmu.sphinx.recognizer.Recognizer;
import edu.cmu.sphinx.result.Result;
import edu.cmu.sphinx.util.props.ConfigurationManager;
import edu.cmu.sphinx.util.props.PropertyException;

import java.io.File;
import java.io.IOException;
import java.net.URL;


/**
* A simple HelloDigits demo showing a simple speech application
* built using Sphinx-4. This application uses the Sphinx-4 endpointer,
* which automatically segments incoming audio into utterances and silences.
*
* @author Joshua Shinavier (http://fortytwo.net)
*/
public class HelloDigits {

    /**
     * Main method for running the HelloDigits demo.
     */
    public static void main(String[] args) {
        try {
            URL url;
            if (args.length > 0) {
                url = new File(args[0]).toURI().toURL();
            } else {
                url = HelloDigits.class.getResource("hellodigits.config.xml");
            }

            ConfigurationManager cm = new ConfigurationManager(url);

            Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
            Microphone microphone = (Microphone) cm.lookup("microphone");

   
      /* allocate the resource necessary for the recognizer */
            recognizer.allocate();
   
      /* the microphone will keep recording until the program exits */
            if (microphone.startRecording()) {

                System.out.println
                        ("Say any digit(s): e.g. \"two oh oh four\", " +
                                "\"three six five\".");

                while (true) {
                    System.out.println
                            ("Start speaking. Press Ctrl-C to quit.\n");
   
        /*
        * This method will return when the end of speech
        * is reached. Note that the endpointer will determine
        * the end of speech.
        */
                    Result result = recognizer.recognize();

                    if (result != null) {
                        String resultText = result.getBestResultNoFiller();
                        System.out.println("You said: " + resultText + "\n");
                    } else {
                        System.out.println("I can't hear what you said.\n");
                    }
                }
            } else {
                System.out.println("Cannot start microphone.");
                recognizer.deallocate();
                System.exit(1);
            }
        } catch (IOException e) {
            System.err.println("Problem when loading HelloDigits: " + e);
            e.printStackTrace();
        } catch (PropertyException e) {
            System.err.println("Problem configuring HelloDigits: " + e);
            e.printStackTrace();
        }
//    catch (InstantiationException e) {
//       System.err.println("Problem creating HelloDigits: " + e);
//       e.printStackTrace();
//     }
    }
}
TOP

Related Classes of net.fortytwo.ripple.audio.HelloDigits

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.