我有一个要求(在Android代码中)TTS播放器应该说出数字,例如“1234”为“一二三四”。但目前它的说法是“一千二百三十四”。
答案 0 :(得分:1)
TTS不允许您指定文本的读取方式,因此您的代码必须修改文本输入,以便读取单个数字。
我建议@ opalenzuela提到每个号码之间的空格。这应该导致TextToSpeech读取单个数字。
如果您需要一些代码来帮助您检测数字,请使用:
private boolean isNumber(String word)
{
boolean isNumber = false;
try
{
Integer.parseInt(word);
isNumber = true;
} catch (NumberFormatException e)
{
isNumber = false;
}
return isNumber;
}
答案 1 :(得分:1)
在定位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);
(未经测试)