gpt4 book ai didi

android - 使用嵌入式 TTS 在 Android 上进行离线语音识别

转载 作者:行者123 更新时间:2023-11-30 03:46:49 24 4
gpt4 key购买 nike

我很想看看是否可以在 Android 上使用 Google TTS 进行离线语音识别,并且尝试过让它工作但没有成功。我正在开发一款 Android 应用程序,该应用程序要求用户对着手机说出“魔法词”,手机会在听到正确的词时做出响应。当我连接到网络时语音识别工作完美,但我需要让它离线工作。

我在浏览 Android 文档时遇到了这个:[KEY_FEATURE_EMBEDDED_SYNTHESIS][1] 文档说使用 getFeatures(Locale) 检索功能以查看引擎支持哪些功能。它返回了两个特性:用于 Google Text-to-speech Engine 的 embeddedTts 和 networkTts,因此 embeddedTts 特性可用。在下面代码的第 3 行中,我根据 Android 文档启用了此功能,但它似乎没有任何效果。我还尝试将 networkTts 功能设置为 false,但也没有改变行为。每当我未连接到数据网络时,我都会收到“目前无法连接到 Google”的错误消息。

我希望这里有人可以帮助我了解如何使用 embeddedTts。

我正在运行 Android 4.1.1 的三星 Galaxy S3 上测试我的应用

谢谢。

相关代码如下:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
HashMap<String, String> localSpeech = new HashMap<String, String>();
localSpeech.put(TextToSpeech.Engine.KEY_FEATURE_EMBEDDED_SYNTHESIS, "true");
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
// Fill the list view with the strings the recognizer thought it could have heard
ArrayList<String> matches = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
if (matches.size() == 0)
{
tts.speak("Heard nothing", TextToSpeech.QUEUE_FLUSH, null);

} else {
String mostLikelyThingHeard = matches.get(0);
String magicWord = "Magic";
if (mostLikelyThingHeard.equals(magicWord)) {
//tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, null);
tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, localSpeech);
} else {
tts.speak("The magic word is not " + mostLikelyThingHeard + " try again", TextToSpeech.QUEUE_FLUSH, localSpeech);
}
}

}
else {
Log.d("APP", "result NOT ok");
}

super.onActivityResult(requestCode, resultCode, data);
}

最佳答案

您将语音识别(也称为“语音识别”和“语音转文本”)与语音合成(也称为“TTS”和“文本转语音”)混淆了。要回答您的问题,使用语音合成 API 无法实现语音识别。

关于android - 使用嵌入式 TTS 在 Android 上进行离线语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866303/

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