我有一个要求(在 Android 代码中),TTS 播放器应该说出数字,例如“1234”作为“一二三四”。然而目前它的说法是“一千二百三十四”。
问问题
2514 次
2 回答
2
TTS 不允许您指定如何读取文本,因此您的代码必须修改文本输入,以便读取各个数字。
我建议@opalenzuela 提到每个数字之间有一个空格。这应该会导致 TextToSpeech 读取各个数字。
如果您需要一些代码来帮助您检测数字,请使用:
private boolean isNumber(String word)
{
boolean isNumber = false;
try
{
Integer.parseInt(word);
isNumber = true;
} catch (NumberFormatException e)
{
isNumber = false;
}
return isNumber;
}
于 2013-10-01T10:08:49.437 回答
2
当面向 API 级别 21+(Lollipop)时,尝试以下新的可能性TtsSpan
:
SpannableString spannableString = new SpannableString("The number is 123456789.");
spannableString.setSpan(new TtsSpan.DigitsBuilder().build(), 14, 22, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
new TextToSpeech(context, null).speak(spannableString, 0, null, null);
(未测试)
于 2015-05-18T09:09:25.367 回答