From 027217d5f7e21628a3d8f6dd92e83e7c77ee43b8 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Thu, 2 May 2013 16:32:42 +0100 Subject: [PATCH] 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. --- android/jni/jni/eSpeakService.cpp | 5 +---- android/src/com/reecedunn/espeak/SpeechSynthesis.java | 8 +++----- android/src/com/reecedunn/espeak/TtsService.java | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/android/jni/jni/eSpeakService.cpp b/android/jni/jni/eSpeakService.cpp index 98aa1a66..9d55155e 100644 --- a/android/jni/jni/eSpeakService.cpp +++ b/android/jni/jni/eSpeakService.cpp @@ -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); diff --git a/android/src/com/reecedunn/espeak/SpeechSynthesis.java b/android/src/com/reecedunn/espeak/SpeechSynthesis.java index 538a4cc0..6546e8af 100644 --- a/android/src/com/reecedunn/espeak/SpeechSynthesis.java +++ b/android/src/com/reecedunn/espeak/SpeechSynthesis.java @@ -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); diff --git a/android/src/com/reecedunn/espeak/TtsService.java b/android/src/com/reecedunn/espeak/TtsService.java index 59cfbdbc..3a97695a 100644 --- a/android/src/com/reecedunn/espeak/TtsService.java +++ b/android/src/com/reecedunn/espeak/TtsService.java @@ -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("