我正在使用 Android Text to Speech 引擎来阅读一些文本并且它正在工作。但是我的文本包含数字,我希望这些数字被逐位读取。
我在文档中找不到任何东西,但我仍然希望有人知道我该怎么做。
我正在使用 Android Text to Speech 引擎来阅读一些文本并且它正在工作。但是我的文本包含数字,我希望这些数字被逐位读取。
我在文档中找不到任何东西,但我仍然希望有人知道我该怎么做。
API 不允许您指定如何读取文本,因此您的代码必须修改文本输入,以便读取各个数字。
我建议在每个数字之间添加一个空格。这应该会导致TextToSpeech
读取各个数字。
如果您需要一些代码来帮助您检测数字,请使用:
private boolean isNumber(String word)
{
boolean isNumber = false;
try
{
Integer.parseInt(word);
isNumber = true;
} catch (NumberFormatException e)
{
isNumber = false;
}
return isNumber;
}
接受的答案有一个小缺陷。如果数字有 '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);
}
/* 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);
}