TTS玩家说话的数字

时间:2013-10-01 10:01:18

标签: android text-to-speech google-text-to-speech

我有一个要求(在Android代码中)TTS播放器应该说出数字,例如“1234”为“一二三四”。但目前它的说法是“一千二百三十四”。

2 个答案:

答案 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);

(未经测试)