@@ -23,7 +23,7 @@ import java.util.Locale; | |||
import java.util.Set; | |||
import com.reecedunn.espeak.SpeechSynthesis; | |||
import com.reecedunn.espeak.SpeechSynthesis.Voice; | |||
import com.reecedunn.espeak.Voice; | |||
import android.content.Intent; | |||
import android.content.pm.ActivityInfo; |
@@ -32,7 +32,6 @@ import android.speech.tts.TextToSpeech.Engine; | |||
import android.util.Log; | |||
import com.reecedunn.espeak.SpeechSynthesis.SynthReadyCallback; | |||
import com.reecedunn.espeak.SpeechSynthesis.Voice; | |||
import java.io.ByteArrayOutputStream; | |||
import java.io.File; |
@@ -27,7 +27,6 @@ package com.reecedunn.espeak; | |||
import android.content.Context; | |||
import android.content.res.Configuration; | |||
import android.content.res.Resources; | |||
import android.speech.tts.TextToSpeech; | |||
import android.util.DisplayMetrics; | |||
import android.util.Log; | |||
@@ -345,51 +344,6 @@ public class SpeechSynthesis { | |||
void onSynthDataComplete(); | |||
} | |||
public class Voice { | |||
public final String name; | |||
public final String identifier; | |||
public final int gender; | |||
public final int age; | |||
public final Locale locale; | |||
public Voice(String name, String identifier, int gender, int age, Locale locale) { | |||
this.name = name; | |||
this.identifier = identifier; | |||
this.gender = gender; | |||
this.age = age; | |||
this.locale = locale; | |||
} | |||
/** | |||
* Attempts a partial match against a query locale. | |||
* | |||
* @param query The locale to match. | |||
* @return A text-to-speech availability code. One of: | |||
* <ul> | |||
* <li>{@link TextToSpeech#LANG_NOT_SUPPORTED} | |||
* <li>{@link TextToSpeech#LANG_AVAILABLE} | |||
* <li>{@link TextToSpeech#LANG_COUNTRY_AVAILABLE} | |||
* <li>{@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE} | |||
* </ul> | |||
*/ | |||
public int match(Locale query) { | |||
if (!locale.getISO3Language().equals(query.getISO3Language())) { | |||
return TextToSpeech.LANG_NOT_SUPPORTED; | |||
} else if (!locale.getISO3Country().equals(query.getISO3Country())) { | |||
return TextToSpeech.LANG_AVAILABLE; | |||
} else if (!locale.getVariant().equals(query.getVariant())) { | |||
return TextToSpeech.LANG_COUNTRY_AVAILABLE; | |||
} else { | |||
return TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE; | |||
} | |||
} | |||
@Override | |||
public String toString() { | |||
return locale.toString().replace('_', '-'); | |||
} | |||
} | |||
private static String getIanaLocaleCode(String code, final Map<String, String> javaToIana) { | |||
final String iana = javaToIana.get(code); | |||
if (iana != null) { |
@@ -40,7 +40,6 @@ import android.speech.tts.TextToSpeechService; | |||
import android.util.Log; | |||
import com.reecedunn.espeak.SpeechSynthesis.SynthReadyCallback; | |||
import com.reecedunn.espeak.SpeechSynthesis.Voice; | |||
import java.util.List; | |||
import java.util.Locale; |
@@ -0,0 +1,67 @@ | |||
/* | |||
* Copyright (C) 2012-2013 Reece H. Dunn | |||
* Copyright (C) 2011 Google Inc. | |||
* | |||
* 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; | |||
import java.util.Locale; | |||
import android.speech.tts.TextToSpeech; | |||
public class Voice { | |||
public final String name; | |||
public final String identifier; | |||
public final int gender; | |||
public final int age; | |||
public final Locale locale; | |||
public Voice(String name, String identifier, int gender, int age, Locale locale) { | |||
this.name = name; | |||
this.identifier = identifier; | |||
this.gender = gender; | |||
this.age = age; | |||
this.locale = locale; | |||
} | |||
/** | |||
* Attempts a partial match against a query locale. | |||
* | |||
* @param query The locale to match. | |||
* @return A text-to-speech availability code. One of: | |||
* <ul> | |||
* <li>{@link TextToSpeech#LANG_NOT_SUPPORTED} | |||
* <li>{@link TextToSpeech#LANG_AVAILABLE} | |||
* <li>{@link TextToSpeech#LANG_COUNTRY_AVAILABLE} | |||
* <li>{@link TextToSpeech#LANG_COUNTRY_VAR_AVAILABLE} | |||
* </ul> | |||
*/ | |||
public int match(Locale query) { | |||
if (!locale.getISO3Language().equals(query.getISO3Language())) { | |||
return TextToSpeech.LANG_NOT_SUPPORTED; | |||
} else if (!locale.getISO3Country().equals(query.getISO3Country())) { | |||
return TextToSpeech.LANG_AVAILABLE; | |||
} else if (!locale.getVariant().equals(query.getVariant())) { | |||
return TextToSpeech.LANG_COUNTRY_AVAILABLE; | |||
} else { | |||
return TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE; | |||
} | |||
} | |||
@Override | |||
public String toString() { | |||
return locale.toString().replace('_', '-'); | |||
} | |||
} |