Can't access microphone while running Dialog demo in sphinx4 5prealpha

前端 未结 4 1667
长发绾君心
长发绾君心 2021-01-12 04:23

I am trying to run the dialog demo of sphinx 4 pre aplha but it gives errors.

I am creating a live speech application.

I imported the project using maven and

4条回答
  •  隐瞒了意图╮
    2021-01-12 04:50

    The answer of aetherwalker worked for me - in more detail I overwrote the following files with my own implementations where I only changed the used SpeechSourceProvider:

    First one is the AbstractSpeechRecognizer:

    public class MaxAbstractSpeechRecognizer {
    protected final Context context;
    protected final Recognizer recognizer;
    
    protected ClusteredDensityFileData clusters;
    
    protected final MaxSpeechSourceProvider speechSourceProvider;
    
    /**
     * Constructs recognizer object using provided configuration.
     * @param configuration initial configuration
     * @throws IOException if IO went wrong
     */
    public MaxAbstractSpeechRecognizer(Configuration configuration)
        throws IOException
    {
        this(new Context(configuration));
    }
    
    protected MaxAbstractSpeechRecognizer(Context context) throws IOException {
        this.context = context;
        recognizer = context.getInstance(Recognizer.class);
        speechSourceProvider = new MaxSpeechSourceProvider();
    } .......................
    

    Then the LiveSpeechRecognizer:

    public class MaxLiveSpeechRecognizer extends MaxAbstractSpeechRecognizer {
    
    private final Microphone microphone;
    
    /**
     * Constructs new live recognition object.
     *
     * @param configuration common configuration
     * @throws IOException if model IO went wrong
     */
    public MaxLiveSpeechRecognizer(Configuration configuration) throws IOException
    {
        super(configuration);
        microphone = speechSourceProvider.getMicrophone();
        context.getInstance(StreamDataSource.class)
            .setInputStream(microphone.getStream());
    }......................
    

    And last but not least the SpeechSourceProvider:

    import edu.cmu.sphinx.api.Microphone;
    
    public class MaxSpeechSourceProvider {
    
    private static final Microphone mic = new Microphone(16000, 16, true, false);
    
    Microphone getMicrophone() {
        return mic;
    }
    }
    

提交回复
热议问题