いくつかのテキストを読むためにAndroidTextto Speechエンジンを使用していますが、機能しています。しかし、私のテキストには数字が含まれているので、数字を1桁ずつ読みたいと思っています。
ドキュメントには何も見つかりませんでしたが、それでも誰かが私がそれを行う方法を知っていることを望んでいます。
いくつかのテキストを読むためにAndroidTextto Speechエンジンを使用していますが、機能しています。しかし、私のテキストには数字が含まれているので、数字を1桁ずつ読みたいと思っています。
ドキュメントには何も見つかりませんでしたが、それでも誰かが私がそれを行う方法を知っていることを望んでいます。
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」が含まれている場合、ゼロではなくアルファベットの「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);
}