void onSynthDataComplete(); | 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 class Voice { | ||||
public final String name; | public final String name; | ||||
public final String identifier; | public final String identifier; |
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); | final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); | ||||
final String variantString = prefs.getString("espeak_variant", null); | final String variantString = prefs.getString("espeak_variant", null); | ||||
final SpeechSynthesis.VoiceVariant variant; | |||||
final VoiceVariant variant; | |||||
if (variantString == null) { | if (variantString == null) { | ||||
final int gender = getPreferenceValue(prefs, "default_gender", SpeechSynthesis.GENDER_MALE); | final int gender = getPreferenceValue(prefs, "default_gender", SpeechSynthesis.GENDER_MALE); | ||||
if (gender == SpeechSynthesis.GENDER_FEMALE) { | if (gender == SpeechSynthesis.GENDER_FEMALE) { | ||||
variant = SpeechSynthesis.parseVoiceVariant("default-female"); | |||||
variant = VoiceVariant.parseVoiceVariant("default-female"); | |||||
} else { | } else { | ||||
variant = SpeechSynthesis.parseVoiceVariant("default-male"); | |||||
variant = VoiceVariant.parseVoiceVariant("default-male"); | |||||
} | } | ||||
} else { | } else { | ||||
variant = SpeechSynthesis.parseVoiceVariant(variantString); | |||||
variant = VoiceVariant.parseVoiceVariant(variantString); | |||||
} | } | ||||
int rate = getPreferenceValue(prefs, "espeak_rate", Integer.MIN_VALUE); | int rate = getPreferenceValue(prefs, "espeak_rate", Integer.MIN_VALUE); |
/* | |||||
* 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); | |||||
} | |||||
} |