Čeština
Deutsch
Español
Italiano
Français
Polski
Português
Türk
Български
Русский
Український
عربى
中國人
Contents:
Introduction and demo
Define voice aliases
Get voice
definitions
Enter voice change instructions
Controlling voice speed, pitch and volume
Silencing any text
Finish reading aloud early
Inserting pauses in reading
Possible uses
When reading aloud a text, @Voice, if used with the paid Premium License, may change the voices, when encountering a special annotations. These annotations have a general format as follows:
[[@instruction;optional comment}}
The annotations may be visible or hidden on @Voice text screen, but are not read aloud. Instead, if the option for processing these annotations is on, the voices are changed as instructed, otherwise these annotations are silently ignored. The semicolon ; and any text after it is optional and ignored, so you may enter there any comment you want. The two closing curly braces }} are mandatory.
The voice changes, once entered into the text, are always active. There used to be an option box to deactivate them and read with the default voice only, but I removed that option. Also the voice changes work now also without @Voice Premium License.
Here is a sample text annotated with voice changes, and a recording of @Voice reading it with and without voice changes:
[[@+Rachel=com.google.android.tts,en_GB,en-gb-x-gbg-network; any comment}} [[@+Olga=com.github.olga_yakovleva.rhvoice.android,en_US,Slt}} [[@+Angel=com.google.android.tts, es_ES, es-es-x-eed-local}} Voice changes test. This sentence without any annotations is read in the default English voice,pre-selected by the user under @Voice "Change voice or language" screen. [[@Rachel}}This will be read in Google network female voice, defined in the first line of the sample text. [[@Olga#s=1.5}}And this one will be read in RHVoice female English voice, at 1.5x speed. This voice is pretty boring... Now let's try something in Spanish. [[@Angel}}Hola amigo, esta noticia es realmente espléndida, y lo de agregar el control de voz y velocidad es super genial! [[@default; any optional comment here}} Now back to the default English voice I had selected in @Voice app, when recording this sample.
With voice changes: | |
Without voice changes: |
The instructions defining voices have the following format:
[[@+Alias=engine.package.name,language_code,voice-name[;optional comment]}}
Where Alias is a name you give to this voice yourself, language_code is the ISO language code (e.g. en_US), and voice-name is the original name under which the selected TTS engine knows this voice. Examples:
[[@+Rachel=com.google.android.tts,en_GB,en-gb-x-gbg-network; any comment}}
[[@+Olga_1=com.github.olga_yakovleva.rhvoice.android,en_US,Slt}}
[[@+Greg_3=com.google.android.tts,en_US,en-us-x-tpd-local; optional comment}}
Beginning with version 23.4.12 of @Voice, the voice definitions can also optionally contain the # character followed by voice control instructions to set the default pitch, speed and volume. Example:
[[@+Rachel=com.google.android.tts,en_GB,en-gb-x-gbg-network#s=1.25,p=1.2,v=0.75; any comment}}
Voice names or aliases may contain only English alphabet letters, numbers and the underscore _ character, and must start from a letter.
For more information on these parameters see section "Controlling voice speed,
pitch and volume" below. Please note that the voice alias instructions DO NOT
CHANGE the voice that is used for reading aloud. They should be defined just
once, anywhere in the text (although the most logical place for them seems to be
at the very beginning of the text). They define voice NAMES, which can be used
later to change voices, as described in the "Enter voice change instructions"
section
In @Voice app, press the
round button with up arrow near bottom-right, then press the “Change voice or
language” button. Select the language and voice for which you need a definition,
then press the "Voice definitions for annotations" button. Enter the voice alias
you would like to use, then look below, where the full definition is spelled
out. Press "Copy definition" button, then switch to a text editing app that
you use for entering voice annotations and paste this line of code near the
start of readable text.
When you have all the voices defined and inserted in your text, you may start adding instructions to change the voices where they are need. The instruction to change the voice is simply:
[[@Alias}}
for example for the voices defined above it would be
[[@Rachel}}
[[@Olga_1}}
etc.
These instructions can be also used to change the language, for example if one
sentence in the text is in English and another in Spanish, you could insert
voice annotations to read them with the English and Spanish TTS voices
respectively.
These instructions look like
[[@VoiceAlias#s=number,p=number,v=number}}
If used without the voice name, this instruction restores the default TTS voice. The number is always a real number between the allowed minimum and maximum value, and the meaning is as follows:
s - speed of reading aloud, values from 0.25 to 4
p - voice pitch, falues from 0.25 to 3
v - volume, values from 0 to 1, e.g. volume 0.5 is approximately half of normal volume.
The instructions of s, p and v are all optional, if you omit any of them, it will be set to the default value of 1. Example:
[[@Rachel#s=1.25}}
The above instruction tells the app to use the voice
named "Rachel" and to set the reading speed to be 1.25 faster than normal. The
omitted parameters p for pitch and v for volume will be set to their default
values.
Starting with @Voice version 27.8.6, the parameters after the # sign can optionally contain q or quiet, to skip this text when reading aloud. In its simplest form the instruction to skip reading aloud would be:
[[@#q}}
...any text here, may be multiple
paragraphs
This text will not be read aloud...
[[@}}
The above
instruction will resume reading aloud in the default voice,
or it can be any
voice change instruction without the q or
quiet parameter.
The q or quiet parameter may have an optional text to say instead of the silenced fragments, embedded into double quotes, for example:
[[@#quiet"Skipping some text"}}
Text
that won't be read.
Instead the app will say "Skipping some text"
[[@#}}
More text to read aloud normally.
Starting from @Voice ver. 28.1.1 you may insert into the text one of the following commands to finish reading early, and go to the next article on the reading list, if available:
[[@#finish}}
[[@#finish"Optional text
to say"}}
There is also a very simple pause instruction, to pause reading for any number of milliseconds. The format is
[[@~number}}
for example
[[@~2000}}
means pause reading for 2000 ms (2 seconds).
Create audio-novelas with specific voices for each character...
Create foreign language lessons for yourself or others, with explanations in your native language and foreign language text spoken in multiple native female and male voices, possibly with different accents, different speeds...
What else? Use your imagination... Have fun!