Did you know that you can change narrators automatically when you're using GhostReader? It's an undocumented feature, and only works with the voices from Infovox iVox or ConvenienceWare, but I've confirmed that it does work.
The biggest catch is that you can only switch between voices which are the same voice type and the same voice category. The voice type is either 'Infovox iVox' or 'ConvenienceWare', the ConvenienceWare voices can only be used within GhostReader whereas the iVox voices can be used with any programs. The voice categories are 'HD' and 'HQ' or 'HQM' (these two appear to be the same). To find out which voices are in which category, look on these pages:
- ConvenienceWare Voices lists the category and gender in brackets for each ConvenienceWare voice.
- Infovox iVox Voices does the same for the iVox voices.
We can see from this, for example, that the American English voices "Heather", "Laura", "Ryan", "Kenny", and "Nelly" are all HQ/HQM voices so we can swap between these.
To do the voice change, you put this command in your text:
\vce=speaker=newspeaker\
Instead of the word "newspeaker" you need to use the name of the voice you want, but the rest has to be exact - including the last backslash. So if you're using American English voices, try using this text:
\vce=speaker=heather\Are you coming along?
\vce=speaker=ryan\Sure I am, I'd love to!
\vce=speaker=laura\I will come along too.
It will start out with Heather, then switch to Ryan and then to Laura. If you have the British English voices, you could use this text instead instead:
\vce=speaker=Lucy\Are you coming along?
\vce=speaker=Peter\Sure I am, I'd love to!
\vce=speaker=Graham\I will come along too.
I only own the British English InfoVox iVox voices so I haven't tried to see if this works when switching between languages. If it does, it could be a really useful thing for when you have a document that changes from one language to another.
Remember, this is an undocumented command, and the speech synthesis system doesn't really "know" you've changed voices so it won't automatically change back to your default voice for more speech afterwards. For example, my default system voice is Peter, but after using the snippet above (which finishes with Graham speaking) any speech synthesis afterwards will still use the Graham voice. To fix this, add another switching command for your default system voice at the end of your document. So to switch back to my default Peter voice, the above text becomes this:
\vce=speaker=Lucy\Are you coming along?
\vce=speaker=Peter\Sure I am, I'd love to!
\vce=speaker=Graham\I will come along too.\vce=speaker=Peter\
It doesn't matter that there's no text after the last voice switch, it just tells the speech synth to switch back to Peter. So when my computer next announces the time, or I ask it to speak a block of text, it will be back to speaking in the Peter voice.
Can you think of any fun uses for this? Leave a comment!
- Ricky Buchanan
We've already seen that you can use OS X's built in text-to-speech just by
Cepstral have announced version 5 of their text-to-speech voices, but I have found little detail about the improvements. The following quote is from the website:

When an application needs your attention Mac OS X often gives no visible sign at all. An application "needing attention", in Apple's language, is one that's waiting for you to tell it something before it can keep going and isn't the app you're currently working with. It could be Safari wanting you to confirm that you want it to quit the application, or TextEdit waiting for you to tell it a filename so it can save your word processing file, or anything else that the computer can't do on its own.
