SpeechSynthesis: factor out the VoiceVariant class into its own file.

This commit is contained in:
Reece H. Dunn
2013-05-09 13:51:12 +01:00
parent 8e1872c4e9
commit 774c909a9c
3 changed files with 74 additions and 57 deletions
@@ -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;