首页 > 解决方案 > 如何使 RecognizerIntent.EXTRA_PROMPT 消息粘在那里?

问题描述

我正在制作一个在 Android 中使用SpeechRecognizerand的应用程序。RecognizerIntent

这个应用程序应该工作的方式是:用户在屏幕上看到一些文本,用户必须将这些字符串/文本大声读入手机的麦克风(这SpeechRecognizer就是使用的方式。)语音识别工作完美!我的问题是通过意图发送的提示消息:

intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "the quick brown fox jumps over the lazy dog");

dialog box此提示消息在弹出时会显示在 google 的语音识别器中。

问题:一旦用户开始说话,上面的prompt消息就会消失,并被用户自己的话(用户对着麦克风说的内容)替换为正在录制的内容。但是由于文本 (初始提示消息)已经消失,用户不知道该读什么/说什么了!

这背后的想法是我希望用户能够阅读屏幕上的文本,并同时对着麦克风说话(他正在阅读的内容)。

有什么办法可以让语音识别启动时对话框内的提示信息不消失?

这是简单的代码:

public void startSpeechRecognizer(){
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "the quick brown fox jumps over the lazy dog\n");
    startActivityForResult(intent, SPEECH_RECOGNITION_REQUEST);
}

我已经浏览了文档,但找不到任何关于此的内容。有什么方法可以实现这一点,或者有什么解决方法吗?

标签: javaandroid

解决方案


我进行了很多搜索,并意识到默认的 SpeechRecognizer 对话框(开始录制时弹出的对话框)无法赋予任何特殊的 UI 属性。

要实现不同的 UI,必须通过定义自定义视图来制作自定义对话框,可能扩展相同的 SpeechRecognizer 类以具有在语音记录弹出中显示文本或图像等功能。

因此,我要结束这个问题。


推荐阅读