语音识别:怎么办,当我"write"说话时,但识别"right"。一个应用程序,用 Kotlin 编写



我在Kotlin写了一个应用程序。我使用的标准语音识别

fun fbtnhear(view: View) {
val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, inputspeech) //"de_DE")   //en_US")  ??// de_DE?
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString())
//intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault())
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Du bist dran")
startActivityForResult(intent, sPEECHINTENTRQ)
}    

带有onActivityResult:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == sPEECHINTENTRQ && resultCode == Activity.RESULT_OK) {
val speechresult2: ArrayList<String> =
data?.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS) ?: ArrayList()
if (speechresult2.isNullOrEmpty()) {
} else {
speechlist.clear()
speechresult2.forEach() {
speechlist.add(it)
}

你知道,有些单词听起来一样,但写起来不同。一个简单的例子是";写";以及";对";。我希望;val speechresult2=ArrayList";会给我一个可能的单词列表,让我有机会让一个旋转器来选择我想要的单词。

不幸的是,我只得到一(1(个回复。

为什么arraylist没有给出几个可能的结果?

它不是那样工作的吗?还是我错过了什么?(我在这里研究了很多文档和问题,但没有找到答案(

不是"写";发音为";对吗;?因为这可能就是为什么。。。

我想,我找到了解决方案!我必须添加

intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 3)

在我的恐惧乐趣btnhear。这允许应用程序提供一个可能的解决方案列表。我认为默认值是1。(我在文档中没有找到它。但在这里检查了一些额外的线程后,我在一个示例中找到了这个参数,并对其进行了测试,结果如我所愿。(我在这里的参数3也只是一个示例!

谢谢大家。我将在几天后结束这个问题

相关内容

最新更新