如何检测语音到文本中的静音?

时间:2018-10-04 06:00:59

标签: android speech-to-text dialogflow

我正在开发Android语音助手(使用Dialogflow),并且可以控制用户何时启动请求。

@Override
public void onListeningStarted() {
    ImageView fab_img = (ImageView)findViewById(R.id.fab_img);
    fab_img.startAnimation(performAnimation);
}

然后启动麦克风图标的动画。 之后,当他们完成问题或演讲时,我可以用它来停止动画。

@Override
public void onListeningFinished() {
    ImageView fab_img = (ImageView)findViewById(R.id.fab_img);
    fab_img.clearAnimation();
}

但是,如果用户不说话,并且一段时间后麦克风刚刚关闭,我将无法检测到。 我已经尝试过了:

@Override
public void onListeningCanceled() {

}

但是它不起作用,而且查询结果也没有运气。 有任何想法吗? 谢谢。

编辑------ @sunil sunny的建议解决方案看起来很好

@Override
public void onAudioLevel(float level) {

}

现在我正在研究需要产生静默级别的时间。

1 个答案:

答案 0 :(得分:0)

我从未使用过此API,但是从文档中,我看到了一种名为void onAudioLevel(float level); // callback for sound level visualization的方法,我认为它可以用于静音检测。它返回一个浮点值,因此,首先,当用户讲话时找出正常值是什么,当用户沉默时也找出值范围。假设A是用户讲话时的值,而B是用户不讲话时的值。然后,如果您说B持续5秒钟,那么用户将保持沉默。