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.master
@@ -242,8 +242,7 @@ JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeGetAvailableVoices( | |||
JNIEXPORT jboolean | |||
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoiceByProperties( | |||
JNIEnv *env, jobject object, jstring name, jstring languages, jint gender, jint age, | |||
jint variant) { | |||
JNIEnv *env, jobject object, jstring name, jstring languages, jint gender) { | |||
const char *c_name = name ? env->GetStringUTFChars(name, NULL) : NULL; | |||
const char *c_languages = languages ? env->GetStringUTFChars(languages, NULL) : NULL; | |||
@@ -254,9 +253,7 @@ JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoiceByProperties( | |||
voice_select.name = c_name; | |||
voice_select.languages = c_languages; | |||
voice_select.age = (int) age; | |||
voice_select.gender = (int) gender; | |||
voice_select.variant = (int) variant; | |||
const espeak_ERROR result = espeak_SetVoiceByProperties(&voice_select); | |||
@@ -169,9 +169,8 @@ public class SpeechSynthesis { | |||
return voices; | |||
} | |||
public void setVoiceByProperties( | |||
String name, String languages, int gender, int age, int variant) { | |||
nativeSetVoiceByProperties(name, languages, gender, age, variant); | |||
public void setVoiceByProperties(String name, String languages, int gender) { | |||
nativeSetVoiceByProperties(name, languages, gender); | |||
} | |||
public void setRate(int rate) { | |||
@@ -301,8 +300,7 @@ public class SpeechSynthesis { | |||
private native final String[] nativeGetAvailableVoices(); | |||
private native final boolean nativeSetVoiceByProperties( | |||
String name, String languages, int gender, int age, int variant); | |||
private native final boolean nativeSetVoiceByProperties(String name, String languages, int gender); | |||
private native final boolean nativeSetRate(int rate); | |||
@@ -221,7 +221,7 @@ public class TtsService extends TextToSpeechService { | |||
mCallback.start(mEngine.getSampleRate(), mEngine.getAudioFormat(), | |||
mEngine.getChannelCount()); | |||
mEngine.setVoiceByProperties(null, mMatchingVoice.name, gender, 0, 0); | |||
mEngine.setVoiceByProperties(null, mMatchingVoice.name, gender); | |||
mEngine.setRate(rate); | |||
mEngine.setPitch(pitch); | |||
mEngine.synthesize(text, text.startsWith("<speak")); |