MathCAT
- Autor: Neil Soiffer
- Compatibilidade com NVDA: 2018.1 ou posterior (não testado em versões anteriores)
- Download versão estável
O MathCAT foi projetado para substituir o MathPlayer, pois o MathPlayer não é mais suportado. O MathCAT gera fala e braile a partir do MathML. A fala para matemática produzida pelo MathCAT é aprimorada com prosódia para que soe mais natural. A fala pode ser navegada em três modos usando os mesmos comandos do MathPlayer. Além disso, o nó de navegação é indicado em uma tela em braile. Há suporte para as técnicas Nemeth e UEB.
O MathCAT tem várias opções de configuração que controlam a fala, a navegação e o braile. Muitas delas podem ser definidas na caixa de diálogo de configurações do MathCAT (encontrada no menu Preferências do NVDA). Para obter mais informações sobre essas configurações, consulte a [documentação do MathCAT] (https://nsoiffer.github.io/MathCAT/users.html). A documentação inclui um link para [uma tabela que lista todos os comandos de navegação no MathCAT] (https://nsoiffer.github.io/MathCAT/nav-commands.html).
Nota: MathCAT é uma biblioteca geral para gerar fala e braile a partir de MathML. Ela é usada por outros projetos de AT além do NVDA. Para obter informações sobre o projeto MathCAT em geral, consulte a página principal [MathCAT Documentation page] (https://nsoiffer.github.io/MathCAT).
Quem deve usar o MathCAT:
- Aqueles que precisam de braile Nemeth de alta qualidade (o Nemeth do MathPlayer é baseado na geração Nemeth da liblouis, que tem vários erros significativos que são tecnicamente difíceis de corrigir).
- Aqueles que precisam do braile técnico da UEB, CMU (espanhol/português), LaTeX alemão, ASCIIMath ou braile vietnamita
- Aqueles que querem experimentar a tecnologia mais recente e estão dispostos a ajudar relatando bugs
- Aqueles que usam o eloquence como voz
Quem NÃO deve usar o MathCAT:
- Qualquer pessoa que use o MathPlayer em um idioma que ainda não seja compatível com o MathCAT (existem traduções para o chinês (tradicional), espanhol, indonésio e vietnamita; as traduções serão lançadas no futuro) e que não se sinta confortável com a fala em um dos idiomas compatíveis.
- Qualquer pessoa que prefira o Access8Math ao MathPlayer (para fala ou outros recursos)
As regras de fala do MathCAT ainda não são tão abrangentes quanto as regras do MathPlayer, o que pode ser outro motivo para ficar com o MathPlayer. O MathCAT está sendo usado como teste de ideias para o MathML 4, que permite que os autores expressem sua intenção de modo que notações ambíguas possam ser faladas corretamente e não adivinhadas. Não acrescentei muitas regras, pois a arquitetura do MathCAT está centrada no uso e na inferência da intenção do autor, e isso ainda não está totalmente definido.
MathCAT Update Log
Version 0.6.3
All the language and braille Rule files are zipped up per directory and unzipped on demand.
- This currently saves ~5mb when Rules.zip is unzipped, and will save even more as more languages and braille codes are added.
- This is in preparation for MathCAT being built into NVDA 2024.3
Added new preference
DecimalSeparator
.- The default value is
Auto
, with other values being ".", ",", and "Custom". The first three values setDecimalSeparators
andBlockSeparators
. Auto
sets those preferences based on the value of theLanguage
pref. For some language such as Spanish,,
is used in some countries and.
is used in others. In this case, it is best to set the language to also include the country code (e.g,es-es
ores-mx
) to ensure the right value is used.
- The default value is
Added Swedish to supported languages.
- Added more Unicode chars to include both all Unicode chars marked as "Sm" and those with a mathclass (except Alphabetic and Glyph classes) in the Unicode standard.
- After changing how prefs work in a previous version, I forgot to change
MathRate
andPauseFactor
to be numbers, not strings. - Fixed bug in the braille Rules (missed change from earlier) where a third
argument should have been given to say to look in the Braille
definitions.yaml
files and not the speech ones when looking up the value of a definition. - Cleaned up use of
definitions.yaml
. - Fixed some bugs in the MathML cleanup for "," decimal separators.
- Found a bug in braille highlighting when nothing is highlighted (maybe never happens which is why I didn't see it in practice?)
- Fixed "Describe" mode so that it works -- it is still very minimal and probably not useful yet
- Fixed minimum supported version
Version 0.5.6
- Added Copy As... to the MathCAT dialog (in the "Navagation" pane).
- Fixed a bug where the language reverted to English when changing speech styles.
- Fixed a bug with navigation and braille
- Fixed some Asciimath spacing problems.
- Improved chemistry recognition
- Updated MathCAT to new BANA Nemeth chemistry spec (still only single line and special case style/font changes not handled)
- Fix a crash when non-ASCII digits (e.g., bold digits) are used in numbers
- Don't use italic indicators in braille codes when the math alphanumeric italic chars are used
- Some other smaller bug fixes that weren't reported by users
Version 0.5.0
- Added German LaTeX braille code. Unlike other braille codes, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
- Added (expermental) ASCIIMath braille code. Like the LaTeX braille code, this generates ASCII chars and uses the current braille output table to translate the characters to braille.
- Added "CopyAs" preference that supports copying as MathML, LaTeX, or ASCIIMath using cntl+C when focused on MathML (as before). The currently focused node is copied. Note: this is only listed in the prefs.yaml file and is not exposed (yet) in the MathCAT Preferences dialog.
Version 0.4.2
- Fixed language switching when voice changes and MathCAT language is "Auto"
- Added more checks for $Impairments to improve reading when it is not set for those who are blind
- Nemeth: fix for "~" when it isn't part of an mrow
- UEB: character additions, "~" spacing fix if prefix, xor fix,
- MathML cleanup for accented vowels (mainly for Vietnamese)
- Major rewrite of preference reading/updating code with big speedup --
added
CheckRuleFiles
pref to control which files are checked for updates - Added two new interface calls -- enables setting the navigaton location from the braille cursor (not part of MathCAT addon yet)
Version 0.3.11
- Upgraded to python 3.11 and verified working with NVDA 2024.1
- Fix bugs in Vietnamese braille and also in Speech, mostly for chemistry.
- Fix broken braille when braille code and dependent language don't match (specifically Vietnam braille and Vietnamese speech)
- Fix whitespace bug in HTML inside of tokens
- Improve roman numeral detection
Version 0.3.9
- Added Traditional Chinese translation (thanks to Hon-Jang Yang)
- Fixed bug with navigating into the base of a scripted expression that has parenthesis
- Significantly changed the way whitespace is handled. This mainly affects braille output (spaces and "omission" detection).
- Improved recognition of chemistry
- UEB braille fixes that came up from adding chemistry examples
- UEB fixes for adding auxillary parenthesis in some cases
Version 0.3.8
Braille:
- Dialog has been internationalized for several languages (many thanks to the translators!)
- Initial implementation of CMU -- the braille code used in Spanish and Portuguese speaking countries
- Fix some UEB bugs and added some characters for UEB
- Significant improvements to Vietnamese braille
Other fixes:
- Change relative rate dialog slider to have a maximum value of 100% (now only allows setting slower rates). Also, added step sizes so it is easier to raise/lower the rate significantly.
- Fix eSpeak bug that sometimes cut off speech when the relative rate was changed
- Improvements to Vietnamese speech
- Fixed bug with OneCore voices saying "a"
- Fixed some navigation bugs when
AutoZoomOut
is False (not the default) - Fix updating around language changes and some other dialog changes so they take effect immediately upon clicking "Apply" or "OK".
- Added an "Use Voice's Language" option so that out of the box, MathCAT will speak in the right language (if there is a translation)
- Several improvements for cleaning up poor MathML code
Version 0.3.3
This release has a number of bug fixes in it. The major new features and bug fixes are:
- Added Spanish Translation (thanks to Noelia Ruiz and María Allo Roldán)
- Modified navigation so that it starts zoomed in one level
- Added cntrl+alt+arrow as a way to navigate tabular structures. These keys should be more memorable because they are used for table navigation in NVDA.
- Worked around NVDA bug for eSpeak voices that caused them to slow down when the relative MathRate was set to be slower than the text speech rate.
- Worked around a OneCore voice problem so that they will speak the long 'a' sound.
There are lots of small tweaks to the speech and some bug fixes for both Nemeth and UEB.
Note: there is now an option to get Vietnam's braille standard as braille output. This is still a work in progress and is too buggy to be used other than for testing. I expect the next MathCAT release will contain a reliable implementation.
Version 0.2.5
- More improvements chemistry
Fixes for Nemeth:
- Added "omission" rules
- Added some rules for English Language Indicators
- Added more cases where the Mulitpurpose indicator is needed
- Fixes related to Nemeth and punctuation
Version 0.2
- Lots of bug fixes
- Improvements to speech
- A preference setting to control the duration of pausing (works with changes to relative speech rate for math)
- Support to recognize chemistry notation and speak it appropriately
- Translations to Indonesian and Vietnamese