Version: 0.7.6-beta.9 (also present in 0.7.6-beta.5)
Language: id · SpeechStyle: SimpleSpeak · Verbosity: Terse
What happens
With Language=id and Verbosity=Terse, a square root speaks no root word at all — only the pause and the operand:
| input |
Terse |
Medium (correct) |
<msqrt><mn>9</mn></msqrt> |
, 9 |
akar kuadrat dari 9 |
<msqrt>x+1</msqrt> |
, x tambah 1 akhir akar |
akar kuadrat dari x tambah 1 akhir akar |
mroot is unaffected — ∛27 correctly gives akar pangkat tiga 27 at Terse.
For comparison, English at Terse keeps the word: square root, 9.
Cause
In Rules/Languages/id/SimpleSpeak_Rules.yaml, the square-root rule puts the
root word itself inside the verbosity test, so at Terse nothing is emitted:
- name: default
tag: square-root
match: "."
replace:
- test:
if: "$Verbosity!='Terse'"
then: [T: "akar kuadrat"] # <-- the word is gated on verbosity
- test:
if: "$Verbosity!='Terse'"
then: [T: dari]
The English rule gates only the surrounding words (the, of) and speaks the
root word unconditionally:
- test:
if: "$Verbosity!='Terse'"
then: [ot: "the"]
- t: "square root" # <-- unconditional
- test:
if: "$Verbosity!='Terse'"
then: [t: "of"]
else: [pause: short]
Suggested fix
Move T: "akar kuadrat" out of the test so it is always spoken, leaving only
dari ("of") verbosity-gated — mirroring the English rule and the Indonesian
root rule, which already emits its word unconditionally.
How it was found
Comparing spoken output across all embedded languages while evaluating MathCAT
speech for a braille literacy app for blind children. Indonesian was the only
language of the fourteen where a construct spoke no word at all.
Version: 0.7.6-beta.9 (also present in 0.7.6-beta.5)
Language:
id· SpeechStyle: SimpleSpeak · Verbosity: TerseWhat happens
With
Language=idandVerbosity=Terse, a square root speaks no root word at all — only the pause and the operand:<msqrt><mn>9</mn></msqrt>, 9akar kuadrat dari 9<msqrt>x+1</msqrt>, x tambah 1 akhir akarakar kuadrat dari x tambah 1 akhir akarmrootis unaffected —∛27correctly givesakar pangkat tiga 27at Terse.For comparison, English at Terse keeps the word:
square root, 9.Cause
In
Rules/Languages/id/SimpleSpeak_Rules.yaml, thesquare-rootrule puts theroot word itself inside the verbosity test, so at Terse nothing is emitted:
The English rule gates only the surrounding words (
the,of) and speaks theroot word unconditionally:
Suggested fix
Move
T: "akar kuadrat"out of the test so it is always spoken, leaving onlydari("of") verbosity-gated — mirroring the English rule and the Indonesianrootrule, which already emits its word unconditionally.How it was found
Comparing spoken output across all embedded languages while evaluating MathCAT
speech for a braille literacy app for blind children. Indonesian was the only
language of the fourteen where a construct spoke no word at all.