diff --git a/android/src/com/reecedunn/espeak/SpeechSynthesis.java b/android/src/com/reecedunn/espeak/SpeechSynthesis.java index 90d42f2d..015aedcd 100644 --- a/android/src/com/reecedunn/espeak/SpeechSynthesis.java +++ b/android/src/com/reecedunn/espeak/SpeechSynthesis.java @@ -345,59 +345,6 @@ public class SpeechSynthesis { void onSynthDataComplete(); } - public static class VoiceVariant { - public final String variant; - public final int gender; - public final int age; - - protected VoiceVariant(String variant, int age) { - if (variant.equals("male")) { - this.variant = null; - this.gender = GENDER_MALE; - } else if (variant.equals("female")) { - this.variant = null; - this.gender = GENDER_FEMALE; - } else { - this.variant = variant; - this.gender = GENDER_UNSPECIFIED; - } - this.age = age; - } - - @Override - public String toString() { - final String ret; - if (gender == GENDER_MALE) { - ret = "male"; - } else if (gender == GENDER_FEMALE) { - ret = "female"; - } else { - ret = variant; - } - if (age == AGE_YOUNG) { - return ret + "-young"; - } else if (age == AGE_OLD) { - return ret + "-old"; - } - return ret; - } - } - - public static VoiceVariant parseVoiceVariant(String value) { - String[] parts = value.split("-"); - int age = AGE_ANY; - switch (parts.length) { - case 1: // variant - break; - case 2: // variant-age - age = parts[1].equals("young") ? AGE_YOUNG : AGE_OLD; - break; - default: - return null; - } - return new VoiceVariant(parts[0], age); - } - public class Voice { public final String name; public final String identifier; diff --git a/android/src/com/reecedunn/espeak/TtsService.java b/android/src/com/reecedunn/espeak/TtsService.java index 05edb755..808e14e7 100644 --- a/android/src/com/reecedunn/espeak/TtsService.java +++ b/android/src/com/reecedunn/espeak/TtsService.java @@ -217,16 +217,16 @@ public class TtsService extends TextToSpeechService { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final String variantString = prefs.getString("espeak_variant", null); - final SpeechSynthesis.VoiceVariant variant; + final VoiceVariant variant; if (variantString == null) { final int gender = getPreferenceValue(prefs, "default_gender", SpeechSynthesis.GENDER_MALE); if (gender == SpeechSynthesis.GENDER_FEMALE) { - variant = SpeechSynthesis.parseVoiceVariant("default-female"); + variant = VoiceVariant.parseVoiceVariant("default-female"); } else { - variant = SpeechSynthesis.parseVoiceVariant("default-male"); + variant = VoiceVariant.parseVoiceVariant("default-male"); } } else { - variant = SpeechSynthesis.parseVoiceVariant(variantString); + variant = VoiceVariant.parseVoiceVariant(variantString); } int rate = getPreferenceValue(prefs, "espeak_rate", Integer.MIN_VALUE); diff --git a/android/src/com/reecedunn/espeak/VoiceVariant.java b/android/src/com/reecedunn/espeak/VoiceVariant.java new file mode 100644 index 00000000..0debe09e --- /dev/null +++ b/android/src/com/reecedunn/espeak/VoiceVariant.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2013 Reece H. Dunn + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.reecedunn.espeak; + +public class VoiceVariant { + public final String variant; + public final int gender; + public final int age; + + protected VoiceVariant(String variant, int age) { + if (variant.equals("male")) { + this.variant = null; + this.gender = SpeechSynthesis.GENDER_MALE; + } else if (variant.equals("female")) { + this.variant = null; + this.gender = SpeechSynthesis.GENDER_FEMALE; + } else { + this.variant = variant; + this.gender = SpeechSynthesis.GENDER_UNSPECIFIED; + } + this.age = age; + } + + @Override + public String toString() { + final String ret; + if (gender == SpeechSynthesis.GENDER_MALE) { + ret = "male"; + } else if (gender == SpeechSynthesis.GENDER_FEMALE) { + ret = "female"; + } else { + ret = variant; + } + if (age == SpeechSynthesis.AGE_YOUNG) { + return ret + "-young"; + } else if (age == SpeechSynthesis.AGE_OLD) { + return ret + "-old"; + } + return ret; + } + + public static VoiceVariant parseVoiceVariant(String value) { + String[] parts = value.split("-"); + int age = SpeechSynthesis.AGE_ANY; + switch (parts.length) { + case 1: // variant + break; + case 2: // variant-age + age = parts[1].equals("young") ? SpeechSynthesis.AGE_YOUNG : SpeechSynthesis.AGE_OLD; + break; + default: + return null; + } + return new VoiceVariant(parts[0], age); + } +} \ No newline at end of file