Browse Source

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.
master
Reece H. Dunn 12 years ago
parent
commit
88eab88d8a

+ 6
- 10
android/jni/jni/eSpeakService.cpp View File

} }


JNIEXPORT jboolean JNIEXPORT jboolean
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoiceByProperties(
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;
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeSetVoice(
JNIEnv *env, jobject object, jstring language, jint gender) {
const char *c_language = language ? env->GetStringUTFChars(language, NULL) : NULL;


if (DEBUG) LOGV("%s(name=%s, languages=%s)", __FUNCTION__, c_name, c_languages);
if (DEBUG) LOGV("%s(language=%s, gender=%d)", __FUNCTION__, c_language, gender);


espeak_VOICE voice_select; espeak_VOICE voice_select;
memset(&voice_select, 0, sizeof(espeak_VOICE)); memset(&voice_select, 0, sizeof(espeak_VOICE));

voice_select.name = c_name;
voice_select.languages = c_languages;
voice_select.languages = c_language;
voice_select.gender = (int) gender; voice_select.gender = (int) gender;


const espeak_ERROR result = espeak_SetVoiceByProperties(&voice_select); const espeak_ERROR result = espeak_SetVoiceByProperties(&voice_select);


if (c_name) env->ReleaseStringUTFChars(name, c_name);
if (c_languages) env->ReleaseStringUTFChars(languages, c_languages);
if (c_language) env->ReleaseStringUTFChars(language, c_language);


switch (result) { switch (result) {
case EE_OK: return JNI_TRUE; case EE_OK: return JNI_TRUE;

+ 3
- 3
android/src/com/reecedunn/espeak/SpeechSynthesis.java View File

return voices; return voices;
} }


public void setVoiceByProperties(String name, String languages, int gender) {
nativeSetVoiceByProperties(name, languages, gender);
public void setVoice(String language, int gender) {
nativeSetVoice(language, gender);
} }


public void setRate(int rate) { public void setRate(int rate) {


private native final String[] nativeGetAvailableVoices(); private native final String[] nativeGetAvailableVoices();


private native final boolean nativeSetVoiceByProperties(String name, String languages, int gender);
private native final boolean nativeSetVoice(String language, int gender);


private native final boolean nativeSetRate(int rate); private native final boolean nativeSetRate(int rate);



+ 1
- 1
android/src/com/reecedunn/espeak/TtsService.java View File

mCallback.start(mEngine.getSampleRate(), mEngine.getAudioFormat(), mCallback.start(mEngine.getSampleRate(), mEngine.getAudioFormat(),
mEngine.getChannelCount()); mEngine.getChannelCount());


mEngine.setVoiceByProperties(null, mMatchingVoice.name, gender);
mEngine.setVoice(mMatchingVoice.name, gender);
mEngine.setRate(rate); mEngine.setRate(rate);
mEngine.setPitch(pitch); mEngine.setPitch(pitch);
mEngine.synthesize(text, text.startsWith("<speak")); mEngine.synthesize(text, text.startsWith("<speak"));

Loading…
Cancel
Save