KeepTalkingAssist supports all standard modules and the needy Knob. Following is notes on my current progress to optimize the input flow.
Button - Color and Text entry are separate stages, and it reads out all the options for “Releasing A Held Button”. It's slow but it works. Ideally the first inputs should be done in one stage for speed.
Keypad - The program has been given a couple of different ways of describing each of the symbols (most from Devan), such as [Octopus, Squid, Spider, Spaceship] all map to the same symbol. Each symbol is a separate input stage. Unlike Button, this actually flows really well this slow (and accurate).
Knob - In one input stage it must be told all the columns where both lights are lit. This works well but it really needs to be possible to interrupt another module solver to use.
Maze - Both co-ordinates of each shape are given in one stage each, then it reads out the solution maybe a little too quickly. First time writing an A* algorithm by the way!
Memory - The display and the buttons left to right are given in one stage then it reads what label to press. Flow is perfect.
Morse Code - I didn't spend much time on this one, describing morse code is a pain, and missing a letter or a letter ending can lead to getting the wrong solution. Works well when you get the first 2 letters correct.
Password - The column is given in a stage each, it tries to find the solution as it goes. If there's 3 possible solutions it'll read them all out to try. Usually solved after 2-3 columns.
Simon - First things first, the flow on this one is terrible. If you make a mistake a few sequences in, it's a disaster. It's fine with strikes it's just my memory. What the program really needs, is to just describe how the colours rotate/swap and let the bomb diffuser do all the work (cause it would be faster and could be done during another module).
Who's On First - Text input wise, the flow is fine, however the TTS reading out all the options can be a disaster - should consider swapping over to Devan's grammar. Some of the solutions are poorly optimized, the program should just read the read few and prompt to continue.
Wires Simple - The first module I wrote the solver for, each wire colour is a separate input stage. This one has one of the worst flows given how simple it should be. Waiting on accurate speech recognition before improving.
Wires Complicated - Currently this one has all the wire colours in a separate stage, then all the lights and symbols together. I believe I have a bug in my lookup table somewhere but I can't find it, think it has something to do with white wires. The flow is okay, but it might be better to give the LED/colours/symbol together per wire.
Wires Sequence - Each wire colour to letter is given in one input stage, the flow is fine. I see no reason to further optimize.