Android文本到语音和数字

时间:2012-06-28 05:28:08

标签: android text-to-speech

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

private boolean isNumber(String word)
{
    boolean isNumber = false;
    try
    {
        Integer.parseInt(word);
        isNumber = true;
    } catch (NumberFormatException e)
    {
        isNumber = false;
    }
    return isNumber;
}

答案 1 :(得分: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);

  }

答案 2 :(得分:-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); 
}