Page MenuHomePhabricator

Evaluate Speech Output for MathML with Intent attributes
Open, Needs TriagePublic

Description

This is rather a proof of concept check, it is to show that our generated intent attributes are working and are suitable to be processed by future screenreaders.

  • Use a library/tool like MathCAT to generate speech output (which could be read by Text-To-Speech systems) for ambiguous examples of MathML with intent and without intent.
  • Compose a list with MathML-inputs (with intent, without intent) and results of this evaluation.
  • Eventually write a script to automate this evaluation process.

Event Timeline

MathCAT:

  • https://nsoiffer.github.io/MathCATDemo/, (which is up to date with github: 0.1.24) its implemented intent rules can be found here
  • A quick check on the demo, shows that intent is read, but attributes seem not to be mapped:
  • The point-example from below translated to text as: the point $1 comma $2
  • Further examples of MathML with intent (Source):
    • Line segment example: "the line segment from $1 to $2"
    • X-coordinate example (~with correcting typo </mi>): "coordinate of <break time='150ms'/> $1 comma $2"
    • After replacing $1 with $a, $2 with $b:
      • speech result for the point-example is: the point <mark name='Mmttadu7-4'/> 0 comma <mark name='Mmttadu7-6'/> 5
      • result coordinate-example: coordinate of <break time='150ms'/> B prime comma <mark name='M7fw3v5w-5'/> <say-as interpret-as='characters'>x</say-as>
      • result line-segment example: the line segment from A prime to B prime
    • Complex example from MathCAT, see below: "apply function of <break time='150ms'/> map of <break time='150ms'/> congruence comma <mark name='M5scjtbw-2'/> <say-as interpret-as='characters'>A</say-as> comma <mark name='M5scjtbw-6'/> <say-as interpret-as='characters'>B</say-as>"
<mrow intent="point($1, $2)">
  <mo>(</mo>
  <mi arg="1">0</mi>
  <mo>,</mo>
  <mi arg="2">5</mi>
  <mo>)</mo>
</mrow>

Some more complex intent example form MathCat main.rs:

<math>
     <mrow intent='$op($a,$b)'>
     <mi arg='a'>A</mi>
  <mover arg='op' intent='$U27F6($U2245)'>
         <mo movablelimits='false' arg='U27F6' intent='map'>⟶</mo>
       <mo arg='U2245' intent='congruence'>≅</mo>
    </mover>
    <mi arg='b'>B</mi>
   </mrow>
  </math>

Conclusion for MathCAT : It is suitable for prototyping purposes, it delivers Simple Speech or Clear Speak speech, can read MathML with Intent, if some elements are missing i am sure we can add some custom rules. As an additional benefit, also various Braille formats can be generated with MathML, which could be future capabilities of MediaWiki. It has SSML for speech which can be used by common text to speech tools like espeak