首页 > 解决方案 > 语音识别即服务持续

问题描述

如何在离线状态下连续运行语音识别,我尝试过 CMU,但它没有清除假设并且对我所说的每个单词而不是特定命令做出反应。感谢帮助我的人!

标签: android

解决方案


我不知道这是否是最好的解决方案,但它可能有效:

private final Listener listener = new Listener();

final Handler handler = new Handler();
        timer = new Timer();
        TimerTask doAsynchronousTask = new TimerTask() {
            @Override
            public void run() {
                handler.post(new Runnable() {
                    @SuppressWarnings("unchecked")
                    public void run() {
                        try {
                            if(!listener.isListening()){
                                listener.listenVoice();
                            }
                        }
                        catch (Exception e) {
                            // TODO Auto-generated catch block
                        }
                    }
                });
            }
        };
        timer.schedule(doAsynchronousTask, 0, 500);

您必须创建一个 AsynchronousTask,您将每 X 秒重复一次。就我而言,我每 500 毫秒做一次。您必须检查听众是否每次都在听,因为您不想要一个缺少单词的不完整句子。

我知道这个解决方案应该很奇怪,但是如果没有一些谷歌私有功能,就没有合适的方法来做到这一点。


推荐阅读