gpt4 book ai didi

android - EXTRA_AVAILABLE_VOICES 始终仅返回 eng-GBR。为什么?

转载 作者:行者123 更新时间:2023-11-29 02:02:10 24 4
gpt4 key购买 nike

我正在使用以下代码 fragment 记录手机上当前所有可用(和不可用)的声音:

ArrayList<String> availableVoices = intent.getStringArrayListExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES);
String availStr = "";
for (String lang : availableVoices)
availStr += (lang + ", ");
Log.i(String.valueOf(availableVoices.size()) + " available langs: ", availStr);

ArrayList<String> unavailableVoices = intent.getStringArrayListExtra(TextToSpeech.Engine.EXTRA_UNAVAILABLE_VOICES);
String unavailStr = "";
for (String lang : unavailableVoices)
unavailStr += (lang + ", ");
Log.w(String.valueOf(unavailableVoices.size()) + " unavailable langs: ", unavailStr);

记录的结果有些令人困惑,因为我非常确定我安装了多种语言,我什至可以听到 TTS 以 eng-USA 说话,但日志显示:

1 available langs: eng-GBR,

30 unavailable langs: ara-XXX, ces-CZE, dan-DNK, deu-DEU, ell-GRC, eng-AUS, eng-GBR, eng-USA, spa-ESP, spa-MEX, fin-FIN, fra-CAN, fra-FRA, hun-HUN, ita-ITA, jpn-JPN, kor-KOR, nld-NLD, nor-NOR, pol-POL, por-BRA, por-PRT, rus-RUS, slk-SVK, swe-SWE, tur-TUR, zho-HKG, zho-CHN, zho-TWN, tha-THA,

为什么会出现这种不一致的行为? (注意 eng-GBR 出现在可用和不可用列表中...)

最佳答案

事实证明,就 Android 2.x 中的文本到语音转换而言,它是狂野的西部:每个安装的第 3 方 TTS 引擎都可以修改此 EXTRA_AVAILABLE_VOICES 的输出功能,无论他们想要什么,不管默认情况下是选中/未选中还是选中/取消选中。

我刚刚尝试从我的手机中卸载所有 TTS 引擎,只留下硬编码的 Pico,结果完全符合我的预期:

6 available voices: deu-DEU, eng-GBR, eng-USA, spa-ESP, fra-FRA, ita-ITA,

0 unavailable voices:

我不介意这个函数的输出动态引用当前选择的(即默认)TTS 引擎,但事实是一旦安装了第 3 方 TTS 引擎,这个函数的输出就不会 any sense ,因为它会忽略任何设置。

另请注意,名称具有误导性:可用的是语言,而不是语音!

我发布这个答案希望它能有所帮助 someone节省以艰难的方式发现这一点的时间和痛苦。

关于android - EXTRA_AVAILABLE_VOICES 始终仅返回 eng-GBR。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079850/

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