Speech synthesis / screen reader?
Jeffrey Lee (213) 6048 posts |
The discussion in the MONITOR WANTED thread about all the arcane incantations that must be blind-typed to get a working display made me realise something – in 99% of cases the only way the computer provides feedback to the user is via the display. But almost every machine will have audio output available, and in general it’s a lot harder to misconfigure your audio than it is to misconfigure your video. If the ROM contained a built-in speech synthesiser that was capable of acting as a screen reader when at the CLI, then that would remove a lot of the guesswork when it comes to trying to reconfigure a machine which has a non-functional display. No doubt, visually impaired people would favour the addition of speech-oriented features as well. |
nemo (145) 2552 posts |
Extra points if it sounds like Kenneth Kendall. |
James Wheeler (3283) 344 posts |
Would be nice as long as it’s not on by default. Maybe a keyboard shortcut could turn it on? |
Rick Murray (539) 13850 posts |
Ah… but on modern machines it’s apparently pretty simple – either hardware a suitable display type and mode (as I have with my Pi), or let the machine read the EDID, or just use a default (like SVGA) to start with1? The majority of the blind typing? That happens with older machines, due to the eccentric “monitor detection” methods, and the inability to use EDID as IIC was never wired to the VGA socket. As for the voice reader, it would be interesting having such a thing on a system that is extremely mouse-centric, however the blatantly easy place to patch in support for such a thing would be !Help. The only additional change necessary would be for !Help to prefix its messages with the name of the application, so “This is the Title bar…” would give an indication of which title bar. To see how well such a thing might work as a proof of concept, maybe provide some hooks to: http://espeak.sourceforge.net/ ? 1 One of the reasons I think the Pi starting in FullHD is dumb…it only works with monitors capable of such a thing, anybody using analogue “TV” video output or an HDMI→VGA adaptor with an older monitor will be stuck. |
Steve Pampling (1551) 8172 posts |
Which, if I recall means that it can’t distributed with the OS content but it could be downloaded by a link or default start script such that both espeak and the source(or pointer to the source) end up on the users drive. |
Rick Murray (539) 13850 posts |
Maybe what we need first is a module called “GPLwiggle” that can take commands (or a simple script) to download and install some things that could not be directly built into the OS? Sort of like PackMan, only scriptable? |
Frederick Bambrough (1372) 837 posts |
Negated if it starts calling me Dave. |
Steve Pampling (1551) 8172 posts |
Yup. “Sort of like Packman” or webget is what I was thinking. Probably even a suitable(non-GPL) set of code for a version of webget around somewhere. |
Chris Mahoney (1684) 2165 posts |
If I understand things correctly then there’s no problem with including GPL apps in the disc image; it’s just the ROM that’s problematic. If you softload a module through Boot (or GPLwiggle!) then I don’t believe it runs afoul of the static-linking restriction. |
Steve Pampling (1551) 8172 posts |
I believe it needs to be distributed separately, hence the GPLwiggle1 use to ensure the GPL components end up where required. 1 Part of my mind sees an animated image of a single digit being wiggled |
Chris Mahoney (1684) 2165 posts |
As a real-world example, NetSurf is GPL and is distributed in the Pi SD image, seemingly without any problems. |
Jon Abbott (1421) 2651 posts |
You could always approach Superior about !Speech, never used it myself so don’t know what it sounds like, probably pretty awful by today’s standards! |
Chris Evans (457) 1614 posts |
Being able to type blind a few different VESA standard modes with a simple command could be useful. Say VESA640 & VESA1920. Not using the loaded MDF! |
John Williams (567) 768 posts |
Even simpler is to make sure that you have a file in your library called something memorable that will restore a basic valid screen mode. My file is called “Restore”, and says, simply, /
That way, I can easily get something useable by blind-typing "Restore" in any case combination!
|
Chris Evans (457) 1614 posts |
Typing a wimpmode 27 command is something I’ve done frequently over the years. But if the currently loaded mode definition file isn’t suitable it gets difficult and what happens when !Boot doesn’t complete. I have resorted to obey files in Library which loaded an MDF and set wimpmode x y c ex ey LGBT… Having VESA modes in ROM and overiding any loaded MDF would be very useful. |
Rick Murray (539) 13850 posts |
This. And no problem with overriding (implies you can’t change the VESA modes) because a VESA mode with the correct timings is a VESA mode with the correct timings, and anything else…isn’t. |
Jeffrey Lee (213) 6048 posts |
ScreenModes has a few big tables of VESA modes so that it can include them in mode lists that are generated from EDID. Which means that a *VESA640 command (or maybe “*VESA <name>” to allow arbitrary modes to be selected) should be pretty straightforward to implement, only needing to do two tasks:
But the point about the screen reader is that if something goes wrong with the above (typo in your command, ScreenModes is unplugged, video driver is unplugged, current GraphicsV driver is configured incorrectly, keyboard layout isn’t correct, monitor cable is unplugged, something crashes during the mode change, etc.) you’ll get some feedback instead of just being left to guess at the problem when the command doesn’t work. |
Andrew McCarthy (3688) 605 posts |
The idea of a screen-reader is a good one. Another use-case (deaf user?) might be to press a key or combination of keys which enables you to type in a mode number directly, or how’s about a key that starts a process of going through the most common modes or successfully used screen modes. A final thought, allocate a key (or set of keys) to start mode detection again. |
Steve Pampling (1551) 8172 posts |
Sounds a bit PC, is that one of those non-discriminatory modes? :) |
Rick Murray (539) 13850 posts |
Well, we all know VGA is easy and gets around pretty much everywhere with everything and really isn’t choosey. |
Rick Murray (539) 13850 posts |
Only if this is implemented at boot time and nowhere else. Actually, that’s not such a bad idea – we have various magic keypresses that do stuff when the machine powers up. Why not one that can switch to a mode tester? Like start off in 640×480, 60Hz and just cycle to a different mode if SPACE is pressed, go to the previous mode if DELETE is pressed, force RISC OS to the current mode if ENTER is pressed, and give up and begin booting if ESC is pressed…? Maybe, just maybe, I might be able to get some sort of stable video output from my Brake – ‘cos my HDMI to VGA adaptor (which works flawlessly on the Pi) really really doesn’t like the Beagle’s output. |
Steve Pampling (1551) 8172 posts |
one of those non-discriminatory modes? Are you saying VGA “swings both ways”? (non-PC1) 1 Politically correct. |
Rick Murray (539) 13850 posts |
I think the polite phrase is “curious”, as in “hmm, I wonder what this does?”. |