107: Control with your Voice, with Sal Soghoian

5 Likes

I tried adding a voice control for first inbox item. It opens omnifocus and opens my inbox, but then it speaks back to me, “Tree select is not a function. Tree select is undefined.”

Any ideas how to get that to go away?

Greetings! The “tree select” issue sounds like you’re using something other than OmniFocus 3.13 or OmniFocus 4? I assume it’s on macOS? The scripting for OmniFocus “outline” or “tree” is in 3.13 or higher on macOS.

It was on iOS. I actually figured it out this morning, I had both 3.13 and the beta version on my iPhone. I removed 3.13 and am just using the beta and it works great. Thank you!

1 Like

Excellent sleuthing – Gold Star for you!

Cheers,

Sal

P.S. please let us know your requests, suggestions, ideas, comments. There are response links on the website.

1 Like

I am trying to get the First Inbox Item Voice Control to work. (MacOS, OF 3.13.1) I already got my Sides flying in & out, so my set up works. When I say the magical incantation, I get the initial try window. The Run Script Button will not activate. Any ideas?

… I read the code (not my first language), and this looks like a speech function, not an Omni automation script.

Greetings! Scroll the entire script and the Run Script button will activate.

https://omni-automation.com/script-url/security.html

“On all platforms (iOS, iPadOS, macOS) the displayed script must be viewed in its entirety prior to the execution control being enabled.”

Omni Automation has Speech Synthesis (TTS) classes!

https://omni-automation.com/shared/speech.html

:man_facepalming: - Thanks @Sal !

After the completion of the ‘Set Due Date’ voice control script, it speaks the entire completed activity. “The task item due date is set to 12 AM midnight on January 23rd, 2023…”

I haven’t found a way to disable that in the Voice Over or Spoken Content settings. So is this a function of the Voice Control script?

If you have to set many due dates, that recitation is going to get very tiresome. I feel like it does not have to repeat anything if you can confirm it with your eyes. Or simply receive the date back to you.

Other than updating the script with new code, is there any way to change this behavior?

Greetings!

The spoken reply is put in the script as a response example. If you prefer to have no spoken response, you can disable line 75 by placing two forward slashes before the start of the line:

// synthesizer.speakUtterance(utterance)

Then use the Omni Automation Script URL Constructor to encode the altered script and copy it to the clipboard. Find the command in the Voice Control commands list in the Voice Control system preferences and replace the existing encoded script with the new version.