-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't spam so much to the log when matching fails #1
Comments
All this spam is simply the result of raising one exception, which I do as a way to safely stop execution of a command wherever I am in the code. Do you know if there's another simple mechanism to do this, like a sort of "exit" action that raises a special exception type that doesn't trigger Talon logspam? Then I could just log something terse and exit(). I guess in my case I do happen to have one place where everything rolls up to, where I could catch exceptions and log the errors (the begin_generator function). |
Reverting the earlier solution, as this swallows the exception and would allow chained commands to run. Based on my conversation with Ryan above, raising an exception seems to be the best option available right now, and it also aligns with how Cursorless handles errors. |
It's not quite as bad with the recent Talon beta changes.
To step back a bit — there are generally two common reasons talon-gaze-ocr fails:
It'd be good to figure out how to surface this information, even if it's outside the log. This likely should be filed as another issue — perhaps, like with cursorless, talon-gaze-ocr should either display more detailed information in the failure overlay or use a notification. One other thing I noticed with the above is that a recording didn't get saved, so I couldn't figure out how Talon interpreted my speech as "click it go". I wonder if this is normal in Talon when exceptions are raised? I've never checked… |
Indeed, recordings are not saved when an exception is raised (I just confirmed that with Cursorless as well). I'm going to bring this up next week when I sync up with Ryan to see if that might be possible to change. That seems like the most useful thing to do from a debugging standpoint (note that I do already show the recognized ASR text at the top of the screen as part of the debugging overlay, and you can adjust the pause with user.ocr_debug_display_seconds). In terms of fixing the underlying issue, I think that the upcoming "dynamic list" feature will be the most helpful because we can bias recognition towards what is seen onscreen. Regarding the second issue of eye tracking: I am currently using the raw gaze output from Talon. The best long term fix is probably to use Ryan's filtered/predicted gaze. I'm going to check with him if it might be possible to use that without enabling cursor control. |
Also, from a logging standpoint, what did you have in mind for better understanding eye tracking failures? Currently the debugging overlay is designed to show you what it perceived. I guess ideally we would have something like a video to better understand this, or perhaps logged data that could be used to investigate dynamic search radius adjustments. Practically speaking, I think we are most likely to benefit from the in-depth work that Ryan is already doing to improve eye tracking, though. |
I find the debugging overlay a bit overwhelming — trying to take in that much information with the default delay and figuring out which of the failure modes I am triggering is difficult. Maybe this will improve with practice, but for now I just treat it as a "fail" and try saying/looking again. I guess failure to correctly OCR the onscreen text would be another thing to identify, but I've never had this happen in practice. This may be partially because I've only used talon-gaze-ocr on the Mac. |
Makes sense. Consider bumping up the delay as noted above. If you want to repeat the command you can do so before the overlay has disappeared (it will be hidden before running another OCR round). |
When talon-gaze-ocr can't find anything, it outputs a great deal of text to the log. For those of us who keep the log visible all the time this is somewhat distracting.
Here is an example:
The text was updated successfully, but these errors were encountered: