Commit Graph
11 Commits
Author SHA1 Message Date
Reece H. Dunn 233da111db TtsService.java: rework the logic to use the new Parameter API. 2013-05-02 20:33:43 +01:00
Reece H. Dunn cc72825682 SpeechSynthesis.java: expose the different voice options from eSpeak
This makes the following changes:

1.  setVoice takes a Voice object instead of a language string.

    This is to make the API cleaner and allows SpeechSynthesis
    to pass the correct parameter (identifier for SetVoiceByName,
    or name for SetVoiceByProperties) to espeak.

2.  The espeak_SetVoiceByName API is also exposed to support passing
    the voice variant to use.

3.  The age parameter has been re-added with the constants:
    *  SpeechSynthesis.AGE_ANY
    *  SpeechSynthesis.AGE_YOUNG
    *  SpeechSynthesis.AGE_OLD
    based on the behaviour of the eSpeak voice selection algorithm.

NOTE: Due to the way that voice selection is implemented in eSpeak,
if variant is specified, the age and gender cannot be specified and
vice versa.
2013-05-02 18:06:41 +01:00
Reece H. Dunn 88eab88d8a SpeechSynthesis.java: further simplify the setVoice method.
This renames `setVoiceByProperties` to the more consise `setVoice`
and removes the name parameter as this is not used -- the voice is
set by the language and gender parameters only.
2013-05-02 16:45:46 +01:00
Reece H. Dunn 027217d5f7 SpeechSynthesis.java: Simplify the SetVoiceByProperties parameters.
The `age` parameter is not useful as eSpeak does not use this when
selecting voices. This is always set to `0` by TtsService.java.

The `variant` parameter is not used to select the actual voice
variant (from the `!v` directory) but to select the n^th matching
voice from the list of matching voices. This is always set to
select the first matching voice by TtsService.java.
2013-05-02 16:32:46 +01:00
Reece H. Dunn 4d44e88dd2 TtsService: support detecting SSML documents 2013-03-14 16:53:22 +00:00
Reece H. Dunn 48fa803bc4 TtsService.java: ensure that the voice data is installed/upgraded correctly.
When using assistive technology like TalkBack and not accessing
either the eSpeak application or the Android TTS settings
directly, the voice data would previously not be installed/upgraded
correctly.

The approach here is to move the logic to onIsLanguageAvailable so
that if the espeak voice data is not installed or is upgradable
then trigger an install of the voice data and return
TextToSpeech.LANG_MISSING_DATA.
2013-02-12 12:21:34 +00:00
Reece H. Dunn 199029e97e TtsService.java: use the context from the TtsService object itself 2013-02-11 19:03:53 +00:00
Reece H. Dunn 9d0a23bb1c TtsService.java: also report TextToSpeech.LANG_MISSING_DATA if the base resources are not found or the data can be upgraded. 2013-02-11 01:00:06 +00:00
Reece H. Dunn 1e52512637 TtsService.java: report TextToSpeech.LANG_MISSING_DATA if the engine has not been initialized. 2013-02-11 00:49:10 +00:00
Reece H. Dunn 7816a0a204 TtsService: set the language properties to the matched voice, not the requested voice 2012-12-16 11:14:12 +00:00
Reece H. Dunn 123e55a39c Relocate the package to com.reecedunn.espeak 2012-12-14 14:23:31 +00:00