[Android Apps and Games] psychlist:
When to speak and when to be silent

I've been having two main difficulties with Utter! One is the the quality of google speech recognition (Has anyone on this thread ever had an utterance of 'Utter!' returned correctly? Yes, I know I can rename it, and I have, although right now I can't remember what I called it. I'm surprised Google haven't solved this problem by buying Nuance, but perhaps they're saving up to buy Apple.) The other is speaking at the right time.

My problem with knowing when to speak is caused by the fact that I almost always have my phone on silent (in fact I discovered that Utter! beeps at you to tell you when to talk only few days ago, and I got Utter! nearly two weeks ago). Even if I didn't have my phone on silent, I don't want Utter! beeping at me, because the beep sounds like the noise that comes back up to you when you drop a small rodent into a well deep enough for it to reach terminal velocity before it hits the water (I assume we've all had that experience). Without the beep, I was watching the status bar, into which an icon with 'I'm listening' next to it rolls up over the course of maybe half a second. I couldn't get the hang of whether to speak at the start of the roll, the end, or some point in between, and increasing the time window from one second two didn't help at all. Anybody listening to me would have thought I was using an app called 'Stutter!'.

I don't know whether anybody else has a phone on which status bar notifications roll into place and prefers notification sounds off (I can't find a reference to it in this thread), but in case they do, here's what I've discovered:

1. The beep and the vibration that can be used as a signal to speak don't occur simultaneously.

2. If you make a Tasker profile that flashes a notification when Utter! sends the 'I'm listening' notification to the status bar, the flash notification and the beep are not simultaneous.

3. Of the beep, the vibration and the flash notification referred to above, the beep is the best indicator of when Utter! starts listening.

4. If you make a Tasker task that contains three actions (send intent to Utter! to start listening; wait n milliseconds; flash notification), the flash notification can be made to appear simultaneously with the beep each time the task is triggered. In my case n = 270, but I guess it might be different for different phones, and might vary if you have other tasks running (not an issue for me because i kill apps when i'm done with them, and i have almost no non-system apps running in the background). You need to turn off the voice greeting in Utter! for this to work, because the lengths of different voice greetings vary, and Utter! appears to start listening at some fixed period after the greeting is over. If you decide to have Utter! change what it calls you (something I do frequently), after you have given the 'call me x' command, you need to go back and disable the voice greeting again, otherwise your flash notification will appear while Utter! is still in the middle of saying 'How can I help you, o immaculate and magnificent lord of all the heavens and the oceans and the lands of the earth?'.

I've got an icon in my navigation bar that I press to trigger this task: that way, it's always at the bottom of the screen and it doesn't get covered up by any app UIs. I press it, a fraction of a second later a flash notification saying 'Talk to me' appears on my screen, and I talk. I now get far fewer returns from Utter! of 'I'm sorry but I didn't hear any speech' and 'What the hell are you talking about?'

The only problem I have now is what google returns to Utter! I know it says in the Utter! user guide or the tutorial (i forget which) that it's better to speak naturally rather than over-enunciate, but my experience is that this is not true. If Utter! doesn't understand what I'm saying, sometimes over-enunciating gets the result. I suppose the problem here is to do with the contexts that google has programmed into its speech recognition. It recognises 'the earth is the third planet from the sun' without problem, but it doesn't recognise 'open earth', presumably because it's escaped google's notice that people are building apps like Utter! If (a) 'open earth' or (b) 'open Utter!' were regarded by google as strings of words that might be expected to occur together, with no other words surrounding them, more often than (a) 'open a', 'open us' or 'opener' or (b) 'open up to', 'open after' or 'hope to', there would be a better chance of voice opening these apps. Incidentally, would it be possible to build into Utter! a command like 'kill running application' or 'kill most recent application' (with maybe a whitelist/blacklist facility to avoid mishaps), given that google has no problem recognising either of these phrases, and that it is better at recognising 'open' commands than 'kill' commands? Or is that just with me?