Originally, the Immersive Reader used RichEdit to convert Math-to-Speech. This solution was dependent on Windows and would not work as our solution as we migrated the Immersive Reader to run in Linux Containers.
In this project, I reverse-engineered the logic for converting two math standards (MathML and Office Math ML) to spoken text. The new implementation was written in C#/.NET and could efficiently run in a Linux Container.
This solution supported two styles of speech. The first style was “casual” and was optimized for users with good vision. The text was spoken in a way that a teacher might speak while writing math equations on the whiteboard. The second style was “verbose” and optimized for users with limited or no vision. In this case, text was spoken in a way that could be understood without actually seeing the equation.