3

我正在使用 Android Text to Speech 引擎来阅读一些文本并且它正在工作。但是我的文本包含数字,我希望这些数字被逐位读取。

我在文档中找不到任何东西,但我仍然希望有人知道我该怎么做。

4

3 回答 3

3

API 不允许您指定如何读取文本,因此您的代码必须修改文本输入,以便读取各个数字。

我建议在每个数字之间添加一个空格。这应该会导致TextToSpeech读取各个数字。

如果您需要一些代码来帮助您检测数字,请使用:

private boolean isNumber(String word)
{
    boolean isNumber = false;
    try
    {
        Integer.parseInt(word);
        isNumber = true;
    } catch (NumberFormatException e)
    {
        isNumber = false;
    }
    return isNumber;
}
于 2012-06-28T15:22:38.607 回答
0

接受的答案有一个小缺陷。如果数字有 '0' 作为它的一个数字,它将被读作字母 'o' 而不是零。我会建议以下解决方案。

 String number = "1230";

 for(int i = 0 ; i < number.size(); i++) {

  /* refer Speech API , Don't use QUEUE_FLUSH as it results in flushing      
     some characters in this case */

   engine.speak(Character.toString(number.charAt(i)),QUEUE_ADD,null);

  }
于 2016-02-11T10:43:28.993 回答
-2
/* refer Speech API , Don't use QUEUE_FLUSH as it results in flushing      
some characters in this case */
for(int i = 0 ; i < number.size(); i++) {
  engine.speak(Character.toString(number.charAt(i)),QUEUE_ADD,null); 
}
于 2017-01-16T04:22:38.980 回答