Skip to content

VoiceOver Punctuation Bug Passes Embedded Speech Commands

May 10, 2011

I made an interesting discovery today while investigating a strange punctuation issue with VoiceOver. Normally, I use VO either in no punctuation (for general work), or all (for coding, so these problems have escaped my attention until now). After trying out the text verbosity settings, the bugs are quite something to experience. The results revealed some large problems with VoiceOver’s punctuation processing/filtering, as well as a way to write embedded speech commands so that VoiceOver will pass them along to the Mac Speech Manager.

Before going further with the following examples, open VO Utility, and go to Verbosity, Text. Start with all punctuation, and set the repeated punctuation to always spoken.

Read these lines:

********** Oh my God, it’s full of stars!
———- forwarded messages do this ———-
[[[[[[[[[[ whole lot of brackets ]]]]]]]]]]]

VO reads all of that punctuation, as it should. Now, set repeated punctuation to first two times and read those lines again.

notice that only the first line with the asterisks/stars are repeat-filtered? It seems that VO has a very limited list of punctuation that is eligible for filtering. Observe…



Vo filters these, though:


I guess the question is, do they leave the first group out for a reason, or have they been overlooked somehow?

Now, go back to your VO Utility window, set the repeat-filter back to always spoken, and change punctuation to none. You should now hear no punctuation, except, in the following, you will.

var1 & var2 &&&&&&&&&&
"""hello world""" @@@@@@@@@@@@@
#1 #2 #######
$1,000,000,000 is a lot of $$$$$$$$$$
500% is a lot of %%%%%%%%%%
_lame bugs_ __________
c:\wow\this\is\bad \\\\\\\\\\

That's right. No punctuation is really some weak form of some punctuation, after all, or else this is a huge bug.

Now, set the repeat-filter to first two times, which should, at least, get rid of the cases where lots of punctuation is in a row. It reduces many cases, such as the following: @@@@@@@@@@@@@
#1 #2 #######
$1,000,000,000 is a lot of $$$$$$$$$$
500% is a lot of %%%%%%%%%%
_lame bugs_ __________
c:\wow\this\is\bad \\\\\\\\\\

But still lets these totally slide:

var1 & var2 &&&&&&&&&&
"""hello world""" """"""""""

So, now that it is obvious that the whole punctuation processing code is not quite working as we expect, back to the bracket issue.

Set the punctuation to none, and set the repeat-filter to always spoken.

For the brackets problem, the key is three left brackets in a row.

This is no problem:


However, this is:

[[[ test

If, however, you set punctuation to either most or all, then three brackets are no problem.

[[[ test

Now, please go back to no punctuation before continuing.

What is, in fact, happening, is that, when set to no punctuation, VoiceOver is not filtering out left brackets. It filters them out when they're isolated, but, when you have two or more in a row, then the number, less one, are passed, as in the following:

[[[rate 175]]][[[pbas 0]]][[[pmod 0]]] please do not attempt to adjust your speakers.
[[[rate 300]]][[[pbas 60]]][[[pmod 200]]] Nothing is seriously wrong!
[[[rate 130]]][[[pbas 40]]][[[pmod 200]]] reeeeeeeeeeeeeeeeeeeeeeeeeealy!

I exploit this above to force VO to pass along embedded Speech Manager commands.

An actual command looks like:

[[rate 150]] Hello, world.

When I use three brackets to open and close, instead of two, then VO passes two along to the synth.

[[[rate 150]]] Hello, world.

The above doesn’t work in all punctuation mode, probably because VO uses a substitution dictionary to replace punctuation names.


is replaced with

left bracket left bracket

Anyway, I anticipate that this will soon become a popular prank on instant messaging and e-mail lists. Not sure how many problems can be created by pranksters redefining embedded speech command delimiters, or by forcing the VO synchronization callback to run with odd values. Anyway, besides the potential pranks, it seems to me that the entire punctuation filtering approach should be examined.

From → Uncategorized

  1. Thank you a bunch for sharing this with all people you really know
    what you are talking approximately! Bookmarked. Please also visit my site =).

    We could have a link alternate agreement between us

  2. Hello, I believe your blog may be having browser
    compatibility problems. When I take a look at your web site in Safari, it looks fine but when opening in I.E., it’s got some overlapping issues.
    I simply wanted to give you a quick heads up! Apart from that, fantastic

  3. I blog often and I really appreciate your content.
    The article has really peaked my interest. I will book mark your website and
    keep checking for new information about once per week.
    I opted in for your Feed too.

  4. Heya i am for the first time here. I found this board and I find
    It truly useful & it helped me out much. I hope to give something back and heslp others like you aided me.

  5. Very great post. I just stumbled upon your blog and wished to say that I have really loved surfing around your weblog posts.
    In any case I’ll be subscribing for your rss feed and I
    am hoping you write once more very soon!

  6. Thanks for your marvelous posting! I genuinely enjoyed
    reading it, you’re a great author.I will be sure to bookmark your blog and definitely will come
    back very soon. I want to encourage that you continue your
    great work, have a nice holiday weekend!

  7. A fascinating discussion is definitely worth comment.
    I do think that you should write more about this issue, it may not be
    a taboo subject but usually folks don’t talk about such subjects.
    To the next! Cheers!!

  8. This blog is really cool! How can I make one like this?

  9. Howdy! Quick queston that’s totakly off topic.
    Do you know how to make your site mobil friendly?
    My site looks weirdd when viewing from my apple iphone.
    I’m trying to find a template or plugin that might be able
    tto correct this problem. If you have any recommendations,
    please share.Thanks!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s