Feature request: textual representation of output

30 views
Skip to first unread message

Zachary Hanson-Hart

unread,
May 7, 2013, 11:25:27 AM5/7/13
to mathj...@googlegroups.com
Hello MathJax Development community,

   Briefly, I have a feature request for an output option: text (as in words) equivalent of the properly spoken mathematics, as it would be spoken to the blind. 

Sadly, it seems that the ONLY current option for math-to-audio in a browser requires a screen reader compatible with MathPlayer, the MathPlayer plugin, and IE 7 or 8 (at least until MathPlayer 3 has a stable release). 

MathPlayer is proprietary, and closed source (and their policy is frightening when it comes to unsolicited ideas).  Just the existence of even a fledgling open-source conversion of this type would go a long way towards making math truly accessible. 

It occurred to me that the "only" thing preventing math from being available to ANY screen reader is a conversion of the mathematical representation to the words to be spoken.  In the end, if you know how to typeset it properly, you should be able to speak it properly.

I would be willing to work on development.  Is anyone else interested in this, or willing to contribute?

Thanks,
Zach

Gerardo Capiel

unread,
May 7, 2013, 12:38:01 PM5/7/13
to mathj...@googlegroups.com

Zachary,

Benetech (nonprofit behind http://bookshare.org and http://diagramcenter.org) has been exploring exactly what you are asking for. 

We had a Google Summer of Code student prototype a plug-in to MathJax last year that would provide what you are talking about.  You can check out a demo of the prototype at: http://benetech.github.io/mathjax/

Also the open source ChromeVox project is looking to incorporate MathML aural rendering using JavaScript:

http://chromevox.blogspot.com/2013/03/navigating-specialized-content-in.html

I have spoken with Peter about finding some talented developers that can help carry forward the work the student did or porting over the ChromeVox aural rendering libraries into MathJax.  Have you done any MathJax / JavaScript development?

Cheers,

Gerardo

Gerardo Capiel

VP of Engineering, Benetech

Paul Topping

unread,
May 7, 2013, 12:59:17 PM5/7/13
to mathj...@googlegroups.com

Our "frightening" policy on unsolicited ideas is one that virtually every company has to maintain in order to prevent ridiculous lawsuits. People often send in obvious ideas that the company has thought of long ago. Without such a policy, they would sue when the company releases a product that contains something similar to what is proposed. This is a result of our legal system.

 

Basically this policy ensures that the company and the person with the supposedly new ideas must first negotiate the terms under which the ideas are to be exchanged before actually doing the exchange. That sounds reasonable, doesn't it? It actually serves to protect both sides.

 

Zach, if you ever want to work with us in this area, please let me know. We are just a small software company trying to make a living. Converting math to speech is not as trivial as you might think. It is feasible to be done via open source but such projects usually run out of gas once the easy part is done and it reaches demo-ware quality. Not always, of course. There are many successful open source projects and I am a big fan of it.

 

Paul Topping

Design Science, Inc.

 

--
You received this message because you are subscribed to the Google Groups "MathJax Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mathjax-dev...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Zachary Hanson-Hart

unread,
May 8, 2013, 3:52:55 PM5/8/13
to mathj...@googlegroups.com
Hi Gerardo,

    I have not done MathJax development, nor any serious JavaScript development.  However, this is largely because I have always preferred server-side scripting (mostly perl) because browser dependencies in client side scripting make my skin crawl.  For this request, the code has nothing to do with the browser. 

I downloaded the gitHub source for the MathJax project, and the code is very readable.  I'm familiar with object oriented programming, and the syntax of JavaScript.  I don't think the language will be an issue.

The main stumbling block I'm running into is that I can't for the life of me find a standard for how math is to be spoken.  Without a standard, this will end up being "the way some person thinks it should be read."  I agree that something is better than nothing at this point.  However, there should be a push for a standard. 

If ChromeVox is more developed, I'd rather port that than work with the prototype.  If the prototype is further along, I'd like to continue that. 

-Zach

Zachary Hanson-Hart

unread,
May 9, 2013, 8:45:22 AM5/9/13
to mathj...@googlegroups.com
Hi again,

   I'm quite confused about what Chrome is doing, and so I have reservations about digging into ChromeVox. 

MathJax won't pass MathML to Chrome (see the canUseMML definition in config/MMLorHTML.js file of MathJax).  I understand that this is because Chrome doesn't support rendering MathML except briefly in version 24.  However, this gives me great pause when considering porting ChromeVox to MathJax.  I know ChromeVox is not just a Chrome extension.  But, an extension that handles something the browser itself doesn't render is a bit disconcerting. 

All of this seems like putting the cart before the horse.  It seems like the first step should be to develop a specification for "speaking MathML" (at least in English).  This is where the difficulties come in. 

Content MathML seems like it would be easier to speak.  However, web documents are primarily intended to be visual (at least that's traditionally been the approach).  The engines for rendering MathML are all for Presentation MathML. 

The issue is not how to properly speak mathematical formulas/ideas.  The issue is: given a display representation of an expression, how do you speak it to convey the content.  The big problem is information loss.  Take for example "x(2)".  Is this the function x evaluated at 2, or is it the variable x times the number 2?  This makes speaking the intentions of the author impossible without specific content information.  And this is just the basic math.  Of course, the obvious thing to do is to read what's written -- essentially "x open parentheses 2 close parentheses." 

I'm going to look at the Benetech code, look for other resources, and think some more about implementation options. 

On Tuesday, May 7, 2013 12:38:01 PM UTC-4, Gerardo Capiel wrote:

Peter Krautzberger

unread,
May 9, 2013, 11:50:22 AM5/9/13
to mathj...@googlegroups.com
Hi Zach,

I I recall correctly, Benetech's prototype used the MathSpeak rule set. I'm not precisely sure what the ChromeVox folks (which include Charles Chen and T.V. Raman) are calling their approach. But they plan to support MathJax rendering. I wouldn't dismiss ChromeVox for lack of MathML in Chrome. Finally, there's also a new rule set in development at ETS and Design Science, ClearSpeak, you might want to contact the PIs of the grant to learn more.

Peter.



--

Gerardo Capiel

unread,
May 10, 2013, 8:44:04 PM5/10/13
to mathj...@googlegroups.com

Zach,

Our prototype did use MathSpeak.  Also, there was a project done by Charles Chen who is now at Google called Firevox. He had MathML voicing, though I have never tried it.  It was also based on MathSpeak.

http://www.firevox.clcworld.net/features.html

http://www.gh-mathspeak.com/examples/grammar-rules/

Gerardo


On Tuesday, May 7, 2013 8:25:27 AM UTC-7, Zachary Hanson-Hart wrote:
Reply all
Reply to author
Forward
0 new messages