android - 语音识别即服务持续
问题描述
如何在离线状态下连续运行语音识别,我尝试过 CMU,但它没有清除假设并且对我所说的每个单词而不是特定命令做出反应。感谢帮助我的人!
解决方案
我不知道这是否是最好的解决方案,但它可能有效:
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 毫秒做一次。您必须检查听众是否每次都在听,因为您不想要一个缺少单词的不完整句子。
我知道这个解决方案应该很奇怪,但是如果没有一些谷歌私有功能,就没有合适的方法来做到这一点。
推荐阅读
- tcp - TCP/HTTPS 是否保证文件上传/下载的完整性?
- sql - PL/SQL ORACLE 错误:我的代码中的 PLS-00225
- android - FAILURE:任务“:app:processDebugResources”执行失败
- macos - iTerm2 点击打开选定路径
- embedded - Segger Jlink flash下载机制
- c# - 是否可以从 Azure 函数中保留环境设置?
- python - 可以使用不和谐机器人发送定义的字符串
- oracle19c - 当我尝试从 java 创建用户时,Oracle 19C 中出现错误 ORA-65096
- asp.net-core-mvc - 在不使用 DI 的情况下读取我的 .Net 5 应用程序中的应用程序设置
- javascript - FullCalendar v5.x 中 eventAfterAllRender 的替代选项