I'm totally blind. There's a screen reader for Emacs, and being able to use Emacs on iOS would be a game changer.
For me to write an iOS speech server for Emacspeak, I need to be able to send text (with inline commands like [[rate]]/[[pbas]]/etc) to the iOS speech synth. Could a device like /dev/location or similar mechanism be added to ISH for this?
Right now you can have VoiceOver speak something just by printing it on the terminal, but I see how that's not great here. I could add a device that gives direct access to the VoiceOver API, but that doesn't give any control over rate/pitch. There's also AVSpeechUtterance which does give you full control, but then it ignores your system VoiceOver settings. Dunno if that's a problem.
There's also AVSpeechUtterance which does give you full control, but then it ignores your system VoiceOver settings.
This is expected: Emacspeak has its own rate/pitch settings and sends those along with the speech. Here's a protocol description for some context.
Cool, so that would work out nicely. I'm also not sure how this voice would interact with VoiceOver; would voiceover interrupt the emacs voice, or would you hear both voices at once? How would you expect that to behave?
Cool, so that would work out nicely. I'm also not sure how this voice would interact with VoiceOver; would voiceover interrupt the emacs voice, or would you hear both voices at once? How would you expect that to behave?
I'd turn off VO while in Emacspeak, as it's self-voicing. (unless you can think of a better way...)
Maybe you could add a flag that could be set from within the system to toggle the aliveness of the terminal region (so Emacs output by VO wouldn't read on top of Emacspeak output)?
Maybe you could add a flag that could be set from within the system to toggle the aliveness of the terminal region (so Emacs output by VO wouldn't read on top of Emacspeak output)?
Yeah that would make a lot of sense. Could be disabled while /dev/voiceover is open, for example. But then there are other things VO announces, like screen orientation and keypresses, and that's still going to conflict. There are probably not enough APIs to solve that perfectly. There is an API to automatically disable VO though.
/dev/voiceover
Maybe /dev/tts would be a better name? (this TTS is presumably independent of VO).
d
Out of interest, how do you find ish with voiceover, does it handle nicely, are you able to use nano/vim ok, what about other things like editing commands, or navigation with settings?