gpt4 book ai didi

android - Samsung Galaxy S3 上的 TTS 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:51 25 4
gpt4 key购买 nike

我正在为使用 TTS 的 Android 开发应用程序。我创建了一个启动画面,我在其中检查是否安装了 TTS 引擎,如果没有安装,它会转到 Google Play 下载它。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
...
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
...
if (requestCode == PersonalTextToSpeech.MY_DATA_CHECK_CODE)
{
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
{
mTts = new TextToSpeech(context, this);
} else
{
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
context.startActivity(installIntent);
}
}
}

它在 2.2 和 2.3.x 操作系统的三星设备上运行良好。如果需要,它会转到 Google Play,但现在我已经尝试使用三星 Galaxy S3(4.1.1),它默认安装了 2 个 TTS(三星和谷歌),所以我得到一个对话框,要求选择一个。

Select TTS

如果用户选择三星,它运行完美,但如果用户选择谷歌,它会转到设置 --> 语言和输入 --> 文本到语音输出 --> Google 文本到语音引擎 --> 设置 --> 安装语音数据,我得到这个: TTS Languages installed

所以,我有 3 个问题:

  1. 有什么方法可以在不询问的情况下以编程方式强制使用 Samsung TTS 吗?

  2. 我的设备来自西类牙,但如果我将语言更改为英语,则我的 Google TTS 语言列表中不提供该语言,而且我找不到添加它的方法(参见屏幕截图 #2)。< br/>
  3. 如果我将语言更改为西类牙语,该语言应该安装在我的设备中(参见屏幕截图 #2),但由于某些原因 TTS resultCodeLANG_NOT_SUPPORTED (-2) .

事实上,就在我写这篇文章的时候,我发现了一些奇怪的东西。

如果您选择 Samsung TTS,它会“工作”(resultCode = CHECK_VOICE_DATA_PASS (1)),但“语音声音”会根据您使用的方式而改变您的设置(查看屏幕截图 #3): TTS Settings

如果您选择 Samsung,它将根据您在以下选项中的选择使用 Samsung TTS 或 Google TTS:设置 --> 语言和输入 --> 文本到语音输出。

因此,即使您选择 Samsung TTS,您也可以使用 Google TTS,但如果您直接选择 Google TTS(参见屏幕截图 #1),它将失败。

谁能解释一下我做错了什么?

感谢您的帮助。

最佳答案

我也被这个问题困住了,我通过替换我的 onActivityResult 中的代码解决了它。我没有检查 TTS 数据,而是检查了可用的语音。

             if (availableLanguages.isEmpty()) {
// no language data available, prompt for install
Intent installIntent = new Intent();
installIntent
.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
} else {
// some language data is available, create TTS instance
myTTS = new TextToSpeech(this, this);
}

关于android - Samsung Galaxy S3 上的 TTS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13286227/

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