gpt4 book ai didi

安卓, Kotlin 。 SpeechRecognizer 由于某种原因无法正常工作

转载 作者:行者123 更新时间:2023-12-02 13:41:53 25 4
gpt4 key购买 nike

我正在使用名为 SpeechRecognizer 的 Android 语音 API 尝试将语音翻译成文本,但由于某种原因,只要我点击按钮 - 我就会看到消息 “目前无法访问谷歌” ,不等我讲话, window 就关闭了。或者声音只是结结巴巴,没有任何 react 。

class MainActivity : AppCompatActivity() {
var voiceButton: Button? = null
var textView: TextView? = null
var listener: Listener? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

initializeView()
initializeListeners()
}

fun initializeView() {
voiceButton = findViewById(R.id.voiceButton)
textView = findViewById(R.id.textView)
listener = Listener()
}
fun initializeListeners() {
voiceButton?.setOnClickListener {
val speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this)
speechRecognizer.setRecognitionListener(listener)
val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM)
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault())
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,5);

speechRecognizer.startListening(intent)

if (intent.resolveActivity(packageManager) != null) {
startActivityForResult(intent, 10)
} else {
Toast.makeText(this, "Unfortunately device not supported", Toast.LENGTH_SHORT).show()
}
}
}
只是为什么?这段代码有什么问题?我认为这段代码应该可以工作,因为对其他人来说它可以正常工作。也许这个 API 不支持我的模拟器( Nexus One API 22 )?我只是不知道有什么问题。
也许你知道如何解决它?谢谢,我会感谢你的帮助!
如果有人突然遇到类似的问题,这就是我在一段时间后解决这个问题的方法:
您需要开启 虚拟麦克风使用主机音频输入 .转到:更多(右侧的“...”)-> 麦克风-> 打开“ 虚拟麦克风使用主机音频输入”。
此外,您的模拟器必须有更新的更新版本,否则语音识别将无法工作。

最佳答案

我认为你的听众是问题,你不能只初始化 listener = Listener()并将其传递给speechRecognizer。它需要接收RecognitionListener具有许多回调的监听器类型,您可以使用如 onResults这表明您的听众每次听到语音和更多回调。
尝试将您的监听器更改为 listener = object : RecognitionListener{ HERE OVERRIDE THE METHODS } 最终它看起来像这样:

     listener = object :RecognitionListener {
override fun onReadyForSpeech(params: Bundle?) {
TODO("Not yet implemented")
}

override fun onRmsChanged(rmsdB: Float) {
TODO("Not yet implemented")
}

override fun onBufferReceived(buffer: ByteArray?) {
TODO("Not yet implemented")
}

override fun onPartialResults(partialResults: Bundle?) {
TODO("Not yet implemented")
}

override fun onEvent(eventType: Int, params: Bundle?) {
TODO("Not yet implemented")
}

override fun onBeginningOfSpeech() {
TODO("Not yet implemented")
}

override fun onEndOfSpeech() {
TODO("Not yet implemented")
}

override fun onError(error: Int) {
TODO("Not yet implemented")
}

override fun onResults(results: Bundle?) {
TODO("Not yet implemented")
}
}
您可以阅读任何回调以利用您自己的需求
希望能帮助到你

关于安卓, Kotlin 。 SpeechRecognizer 由于某种原因无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62622244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com