From 2a3a1a0a815849477cf39af415bbfa25b3744b3d Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Tue, 18 Dec 2012 14:38:57 +0000 Subject: [PATCH] Move the sample text logic into SpeechSynthesis.getSampleText and add test cases for it. --- .../espeak/test/SpeechSynthesisTest.java | 23 ++- .../com/reecedunn/espeak/test/VoiceData.java | 194 ++++++++++-------- android/res/values/donottranslate.xml | 35 ---- .../com/reecedunn/espeak/GetSampleText.java | 105 +--------- .../com/reecedunn/espeak/SpeechSynthesis.java | 13 ++ 5 files changed, 148 insertions(+), 222 deletions(-) diff --git a/android/eSpeakTests/src/com/reecedunn/espeak/test/SpeechSynthesisTest.java b/android/eSpeakTests/src/com/reecedunn/espeak/test/SpeechSynthesisTest.java index 00abbb8a..d6acc066 100644 --- a/android/eSpeakTests/src/com/reecedunn/espeak/test/SpeechSynthesisTest.java +++ b/android/eSpeakTests/src/com/reecedunn/espeak/test/SpeechSynthesisTest.java @@ -16,7 +16,6 @@ package com.reecedunn.espeak.test; -import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -307,4 +306,26 @@ public class SpeechSynthesisTest extends AndroidTestCase assertThat(voice.match(eng_GBR_scotland), is(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); assertThat(voice.match(eng_GBR_north), is(TextToSpeech.LANG_COUNTRY_AVAILABLE)); } + + public void testGetSampleText() + { + for (VoiceData.Voice data : VoiceData.voices) + { + if (mRemoved.contains(data.name)) + { + Log.i("SpeechSynthesisTest", "Skipping the missing voice '" + data.name + "'"); + continue; + } + + try + { + final Locale ianaLocale = new Locale(data.ianaLanguage, data.ianaCountry, data.variant); + assertThat(SpeechSynthesis.getSampleText(getContext(), ianaLocale), is(data.sampleText)); + } + catch (AssertionError e) + { + throw new VoiceData.Exception(data, e); + } + } + } } diff --git a/android/eSpeakTests/src/com/reecedunn/espeak/test/VoiceData.java b/android/eSpeakTests/src/com/reecedunn/espeak/test/VoiceData.java index a8ecb619..1539711c 100644 --- a/android/eSpeakTests/src/com/reecedunn/espeak/test/VoiceData.java +++ b/android/eSpeakTests/src/com/reecedunn/espeak/test/VoiceData.java @@ -32,6 +32,7 @@ public class VoiceData public final int gender; public final String displayName; public final String locale; + public final String sampleText; public Voice(String name, String identifier, @@ -54,6 +55,7 @@ public class VoiceData this.gender = gender; this.displayName = displayName; this.locale = locale; + this.sampleText = displayName; } public Voice(String name, @@ -76,6 +78,32 @@ public class VoiceData this.gender = gender; this.displayName = displayName; this.locale = ianaLanguage; + this.sampleText = displayName; + } + + public Voice(String name, + String identifier, + String ianaLanguage, + String javaLanguage, + String ianaCountry, + String javaCountry, + String variant, + int gender, + String displayName, + String locale, + String sampleText) + { + this.name = name; + this.identifier = identifier; + this.ianaLanguage = ianaLanguage; + this.javaLanguage = javaLanguage; + this.ianaCountry = ianaCountry; + this.javaCountry = javaCountry; + this.variant = variant; + this.gender = gender; + this.displayName = displayName; + this.locale = locale; + this.sampleText = sampleText; } } @@ -90,88 +118,88 @@ public class VoiceData } public static final Voice[] voices = new Voice[] { - new Voice("af", "af", "af", "afr", "", "", "", SpeechSynthesis.GENDER_MALE, "Afrikaans"), - new Voice("ak", "test/ak", "ak", "aka", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Akan"), - new Voice("am", "test/am", "am", "amh", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Amharic"), - new Voice("az", "test/az", "az", "aze", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Azerbaijani"), - new Voice("bg", "test/bg", "bg", "bul", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Bulgarian"), - new Voice("bs", "bs", "bs", "bos", "", "", "", SpeechSynthesis.GENDER_MALE, "Bosnian"), - new Voice("ca", "ca", "ca", "cat", "", "", "", SpeechSynthesis.GENDER_MALE, "Catalan"), - new Voice("cs", "cs", "cs", "ces", "", "", "", SpeechSynthesis.GENDER_MALE, "Czech"), - new Voice("cy", "cy", "cy", "cym", "", "", "", SpeechSynthesis.GENDER_MALE, "Welsh"), - new Voice("da", "da", "da", "dan", "", "", "", SpeechSynthesis.GENDER_MALE, "Danish"), - new Voice("de", "de", "de", "deu", "", "", "", SpeechSynthesis.GENDER_MALE, "German"), - new Voice("dv", "test/dv", "dv", "div", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Divehi"), - new Voice("el", "el", "el", "ell", "", "", "", SpeechSynthesis.GENDER_MALE, "Greek (Modern)"), - new Voice("en", "default", "en", "eng", "", "", "", SpeechSynthesis.GENDER_MALE, "German"), - new Voice("en-sc", "en/en-sc", "en", "eng", "GB", "GBR", "scotland", SpeechSynthesis.GENDER_MALE, "English (Scotland)", "en-GB-scotland"), - new Voice("en-uk", "en/en", "en", "eng", "GB", "GBR", "", SpeechSynthesis.GENDER_MALE, "English (UK)", "en-GB"), - new Voice("en-uk-north", "en/en-n", "en", "eng", "GB", "GBR", "north", SpeechSynthesis.GENDER_MALE, "English (Lancashire)", "en-GB-north"), - new Voice("en-uk-rp", "en/en-rp", "en", "eng", "GB", "GBR", "rp", SpeechSynthesis.GENDER_MALE, "English (Received Pronunciation)", "en-GB-rp"), - new Voice("en-uk-wmids", "en/en-wm", "en", "eng", "GB", "GBR", "wmids", SpeechSynthesis.GENDER_MALE, "English (West Midlands)", "en-GB-wmids"), - new Voice("en-us", "en/en-us", "en", "eng", "US", "USA", "", SpeechSynthesis.GENDER_MALE, "English (US)", "en-US"), - new Voice("en-wi", "en/en-wi", "en", "eng", "029", "", "", SpeechSynthesis.GENDER_MALE, "English (Caribbean)", "en-029"), - new Voice("eo", "eo", "eo", "epo", "", "", "", SpeechSynthesis.GENDER_MALE, "Esperanto"), - new Voice("es", "es", "es", "spa", "", "", "", SpeechSynthesis.GENDER_MALE, "Spanish"), - new Voice("es-la", "es-la", "es", "spa", "419", "", "", SpeechSynthesis.GENDER_MALE, "Spanish (Latin America)", "es-419"), - new Voice("et", "et", "et", "est", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Estonian"), - new Voice("fi", "fi", "fi", "fin", "", "", "", SpeechSynthesis.GENDER_MALE, "Finnish"), - new Voice("fr-be", "fr-be", "fr", "fra", "BE", "BEL", "", SpeechSynthesis.GENDER_MALE, "French (Belgium)", "fr-BE"), - new Voice("fr-fr", "fr", "fr", "fra", "FR", "FRA", "", SpeechSynthesis.GENDER_MALE, "French (France)", "fr-FR"), - new Voice("ga", "test/ga", "ga", "gle", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Irish"), - new Voice("grc", "test/grc", "grc", "grc", "", "", "", SpeechSynthesis.GENDER_MALE, "Greek (Ancient)"), - new Voice("hi", "hi", "hi", "hin", "", "", "", SpeechSynthesis.GENDER_MALE, "Hindi"), - new Voice("hr", "hr", "hr", "hrv", "", "", "", SpeechSynthesis.GENDER_MALE, "Croatian"), - new Voice("ht", "test/ht", "ht", "hat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Haitian Creole"), - new Voice("hu", "hu", "hu", "hun", "", "", "", SpeechSynthesis.GENDER_MALE, "Hungarian"), - new Voice("hy", "hy", "hy", "hye", "", "", "", SpeechSynthesis.GENDER_MALE, "Armenian"), - new Voice("hy-west", "hy-west", "hy", "hye", "", "", "arevmda", SpeechSynthesis.GENDER_MALE, "Armenian (Western)", "hy--arevmda"), - new Voice("id", "id", "in", "ind", "", "", "", SpeechSynthesis.GENDER_MALE, "Indonesia"), - new Voice("is", "is", "is", "isl", "", "", "", SpeechSynthesis.GENDER_MALE, "Icelandic"), - new Voice("it", "it", "it", "ita", "", "", "", SpeechSynthesis.GENDER_MALE, "Italian"), - new Voice("jbo", "test/jbo", "jbo", "jbo", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Lojban"), - new Voice("ka", "ka", "ka", "kat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Georgian"), - new Voice("kk", "test/kk", "kk", "kaz", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Kazakh"), - new Voice("kl", "test/kl", "kl", "kal", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Greenlandic"), - new Voice("kn", "kn", "kn", "kan", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Kannada"), - new Voice("ko", "test/ko", "ko", "kor", "", "", "", SpeechSynthesis.GENDER_MALE, "Korean"), - new Voice("ku", "ku", "ku", "kur", "", "", "", SpeechSynthesis.GENDER_MALE, "Kurdish"), - new Voice("la", "la", "la", "lat", "", "", "", SpeechSynthesis.GENDER_MALE, "Latin"), - new Voice("lt", "test/lt", "lt", "lit", "", "", "", SpeechSynthesis.GENDER_MALE, "Lithuanian"), - new Voice("lv", "lv", "lv", "lav", "", "", "", SpeechSynthesis.GENDER_MALE, "Latvian"), - new Voice("mk", "mk", "mk", "mkd", "", "", "", SpeechSynthesis.GENDER_MALE, "Macedonian"), - new Voice("ml", "ml", "ml", "mal", "", "", "", SpeechSynthesis.GENDER_MALE, "Malayalam"), - new Voice("mt", "test/mt", "mt", "mlt", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Maltese"), - new Voice("nci", "test/nci", "nci", "", "", "", "", SpeechSynthesis.GENDER_MALE, "Classical Nahuatl"), - new Voice("ne", "test/ne", "ne", "nep", "", "", "", SpeechSynthesis.GENDER_MALE, "Nepali"), - new Voice("nl", "nl", "nl", "nld", "", "", "", SpeechSynthesis.GENDER_MALE, "Dutch"), - new Voice("no", "no", "no", "nor", "", "", "", SpeechSynthesis.GENDER_MALE, "Norwegian"), - new Voice("nso", "test/nso", "nso", "nso", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Sotho (Northern)"), - new Voice("pa", "test/pa", "pa", "pan", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Panjabi"), - new Voice("pap", "test/pap", "pap", "pap", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Papiamento"), - new Voice("pl", "pl", "pl", "pol", "", "", "", SpeechSynthesis.GENDER_MALE, "Polish"), - new Voice("prs", "test/prs", "prs", "", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Dari (Afghan Persian)"), - new Voice("pt-br", "pt", "pt", "por", "BR", "BRA", "", SpeechSynthesis.GENDER_MALE, "Portuguese (Brazil)", "pt-BR"), - new Voice("pt-pt", "pt-pt", "pt", "por", "PT", "PRT", "", SpeechSynthesis.GENDER_MALE, "Portuguese (Portugal)", "pt-PT"), - new Voice("ro", "ro", "ro", "ron", "", "", "", SpeechSynthesis.GENDER_MALE, "Romanian"), - new Voice("ru", "ru", "ru", "rus", "", "", "", SpeechSynthesis.GENDER_MALE, "Russian"), - new Voice("rw", "test/rw", "rw", "kin", "", "", "", SpeechSynthesis.GENDER_MALE, "Kinyarwanda"), - new Voice("si", "test/si", "si", "sin", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Sinhalese"), - new Voice("sk", "sk", "sk", "slk", "", "", "", SpeechSynthesis.GENDER_MALE, "Slovak"), - new Voice("sl", "test/sl", "sl", "slv", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Slovenian"), - new Voice("sq", "sq", "sq", "sqi", "", "", "", SpeechSynthesis.GENDER_MALE, "Albanian"), - new Voice("sr", "sr", "sr", "srp", "", "", "", SpeechSynthesis.GENDER_MALE, "Serbian"), - new Voice("sv", "sv", "sv", "swe", "", "", "", SpeechSynthesis.GENDER_MALE, "Swedish"), - new Voice("sw", "sw", "sw", "swa", "", "", "", SpeechSynthesis.GENDER_MALE, "Swahili"), - new Voice("ta", "ta", "ta", "tam", "", "", "", SpeechSynthesis.GENDER_MALE, "Tamil"), - new Voice("te", "test/te", "te", "tel", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Telugu"), - new Voice("tn", "test/tn", "tn", "tsn", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Setswana"), - new Voice("tr", "tr", "tr", "tur", "", "", "", SpeechSynthesis.GENDER_MALE, "Turkish"), - new Voice("tt", "test/tt", "tt", "tat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Tatar"), - new Voice("ur", "test/ur", "ur", "urd", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Urdu"), - new Voice("vi", "vi", "vi", "vie", "", "", "", SpeechSynthesis.GENDER_MALE, "Vietnamese"), - new Voice("wo", "test/wo", "wo", "wol", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Wolof"), - new Voice("zh", "zh", "zh", "zho", "", "", "", SpeechSynthesis.GENDER_MALE, "Chinese (Mandarin)"), - new Voice("zh-yue", "zh-yue", "yue", "", "", "", "", SpeechSynthesis.GENDER_MALE, "Chinese (Cantonese)"), + new Voice("af", "af", "af", "afr", "", "", "", SpeechSynthesis.GENDER_MALE, "Afrikaans", "af", "Hierdie is 'n voorbeeld van gesproke teks in Afrikaans"), + new Voice("ak", "test/ak", "ak", "aka", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Akan", "ak", "This is a sample of text spoken in Akan"), + new Voice("am", "test/am", "am", "amh", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Amharic", "am", "ይሄ በአማርኛ ላይ የተነገረ ጽሑፍ ናሙና ነው።"), + new Voice("az", "test/az", "az", "aze", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Azerbaijani", "az", "This is a sample of text spoken in Azerbaijani"), + new Voice("bg", "test/bg", "bg", "bul", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Bulgarian", "bg", "Това е откъс от изговорен текст на български"), + new Voice("bs", "bs", "bs", "bos", "", "", "", SpeechSynthesis.GENDER_MALE, "Bosnian", "bs", "This is a sample of text spoken in Bosnian"), + new Voice("ca", "ca", "ca", "cat", "", "", "", SpeechSynthesis.GENDER_MALE, "Catalan", "ca", "Aquesta és una mostra de text dit en veu alta en català"), + new Voice("cs", "cs", "cs", "ces", "", "", "", SpeechSynthesis.GENDER_MALE, "Czech", "cs", "Toto je ukázkový text namluvený v jazyce čeština"), + new Voice("cy", "cy", "cy", "cym", "", "", "", SpeechSynthesis.GENDER_MALE, "Welsh", "cy", "This is a sample of text spoken in Welsh"), + new Voice("da", "da", "da", "dan", "", "", "", SpeechSynthesis.GENDER_MALE, "Danish", "da", "Dette er et eksempel på talt tekst på dansk"), + new Voice("de", "de", "de", "deu", "", "", "", SpeechSynthesis.GENDER_MALE, "German", "de", "Dies ist ein Beispieltext auf Deutsch."), + new Voice("dv", "test/dv", "dv", "div", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Divehi", "dv", "This is a sample of text spoken in Divehi"), + new Voice("el", "el", "el", "ell", "", "", "", SpeechSynthesis.GENDER_MALE, "Greek (Modern)", "el", "Αυτό είναι ένα δείγμα κειμένου που εκφέρεται στα Ελληνικά"), + new Voice("en", "default", "en", "eng", "", "", "", SpeechSynthesis.GENDER_MALE, "English", "en", "This is a sample of text spoken in English"), + new Voice("en-sc", "en/en-sc", "en", "eng", "GB", "GBR", "scotland", SpeechSynthesis.GENDER_MALE, "English (Scotland)", "en-GB-scotland", "This is a sample of text spoken in English (United Kingdom,Scottish Standard English)"), + new Voice("en-uk", "en/en", "en", "eng", "GB", "GBR", "", SpeechSynthesis.GENDER_MALE, "English (UK)", "en-GB", "This is a sample of text spoken in English (United Kingdom)"), + new Voice("en-uk-north", "en/en-n", "en", "eng", "GB", "GBR", "north", SpeechSynthesis.GENDER_MALE, "English (Lancashire)", "en-GB-north", "This is a sample of text spoken in English (United Kingdom,NORTH)"), + new Voice("en-uk-rp", "en/en-rp", "en", "eng", "GB", "GBR", "rp", SpeechSynthesis.GENDER_MALE, "English (Received Pronunciation)", "en-GB-rp", "This is a sample of text spoken in English (United Kingdom,RP)"), + new Voice("en-uk-wmids", "en/en-wm", "en", "eng", "GB", "GBR", "wmids", SpeechSynthesis.GENDER_MALE, "English (West Midlands)", "en-GB-wmids", "This is a sample of text spoken in English (United Kingdom,WMIDS)"), + new Voice("en-us", "en/en-us", "en", "eng", "US", "USA", "", SpeechSynthesis.GENDER_MALE, "English (US)", "en-US", "This is a sample of text spoken in English (United States)"), + new Voice("en-wi", "en/en-wi", "en", "eng", "029", "", "", SpeechSynthesis.GENDER_MALE, "English (Caribbean)", "en-029", "This is a sample of text spoken in English (Caribbean)"), + new Voice("eo", "eo", "eo", "epo", "", "", "", SpeechSynthesis.GENDER_MALE, "Esperanto", "eo", "This is a sample of text spoken in Esperanto"), + new Voice("es", "es", "es", "spa", "", "", "", SpeechSynthesis.GENDER_MALE, "Spanish", "es", "Esto es un ejemplo de texto hablado en español."), + new Voice("es-la", "es-la", "es", "spa", "419", "", "", SpeechSynthesis.GENDER_MALE, "Spanish (Latin America)", "es-419", "Esto es un ejemplo de texto hablado en español (Latinoamérica)."), + new Voice("et", "et", "et", "est", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Estonian", "et", "This is a sample of text spoken in eesti"), + new Voice("fi", "fi", "fi", "fin", "", "", "", SpeechSynthesis.GENDER_MALE, "Finnish", "fi", "Tämä on näyte kielellä suomi puhutusta tekstistä"), + new Voice("fr-be", "fr-be", "fr", "fra", "BE", "BEL", "", SpeechSynthesis.GENDER_MALE, "French (Belgium)", "fr-BE", "Voici un exemple de texte énoncé en français (Belgique)."), + new Voice("fr-fr", "fr", "fr", "fra", "FR", "FRA", "", SpeechSynthesis.GENDER_MALE, "French (France)", "fr-FR", "Voici un exemple de texte énoncé en français (France)."), + new Voice("ga", "test/ga", "ga", "gle", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Irish", "ga", "This is a sample of text spoken in Irish"), + new Voice("grc", "test/grc", "grc", "grc", "", "", "", SpeechSynthesis.GENDER_MALE, "Greek (Ancient)", "grc", "This is a sample of text spoken in Ancient Greek"), + new Voice("hi", "hi", "hi", "hin", "", "", "", SpeechSynthesis.GENDER_MALE, "Hindi", "hi", "यह हिन्दी में बोले गए पाठ का नमूना है"), + new Voice("hr", "hr", "hr", "hrv", "", "", "", SpeechSynthesis.GENDER_MALE, "Croatian", "hr", "Ovo je primjer teksta izgovorenog na hrvatski"), + new Voice("ht", "test/ht", "ht", "hat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Haitian Creole", "ht", "This is a sample of text spoken in Haitian"), + new Voice("hu", "hu", "hu", "hun", "", "", "", SpeechSynthesis.GENDER_MALE, "Hungarian", "hu", "Ez egy magyar nyelven felolvasott szöveg mintája."), + new Voice("hy", "hy", "hy", "hye", "", "", "", SpeechSynthesis.GENDER_MALE, "Armenian", "hy", "This is a sample of text spoken in Armenian"), + new Voice("hy-west", "hy-west", "hy", "hye", "", "", "arevmda", SpeechSynthesis.GENDER_MALE, "Armenian (Western)", "hy--arevmda", "This is a sample of text spoken in Armenian (Western Armenian)"), + new Voice("id", "id", "in", "ind", "", "", "", SpeechSynthesis.GENDER_MALE, "Indonesia", "in", "Ini adalah contoh teks yang diucapkan di Bahasa Indonesia"), // NOTE: 'id' is the correct ISO 639-1 code, but Android/Java uses 'in'. + new Voice("is", "is", "is", "isl", "", "", "", SpeechSynthesis.GENDER_MALE, "Icelandic", "is", "This is a sample of text spoken in Icelandic"), + new Voice("it", "it", "it", "ita", "", "", "", SpeechSynthesis.GENDER_MALE, "Italian", "it", "Questo è un esempio di testo parlato in italiano"), + new Voice("jbo", "test/jbo", "jbo", "jbo", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Lojban", "jbo", "This is a sample of text spoken in Lojban"), + new Voice("ka", "ka", "ka", "kat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Georgian", "ka", "This is a sample of text spoken in Georgian"), + new Voice("kk", "test/kk", "kk", "kaz", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Kazakh", "kk", "This is a sample of text spoken in Kazakh"), + new Voice("kl", "test/kl", "kl", "kal", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Greenlandic", "kl", "This is a sample of text spoken in Kalaallisut"), + new Voice("kn", "kn", "kn", "kan", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Kannada", "kn", "This is a sample of text spoken in Kannada"), + new Voice("ko", "test/ko", "ko", "kor", "", "", "", SpeechSynthesis.GENDER_MALE, "Korean", "ko", "한국어로 읽은 텍스트 샘플입니다."), + new Voice("ku", "ku", "ku", "kur", "", "", "", SpeechSynthesis.GENDER_MALE, "Kurdish", "ku", "This is a sample of text spoken in Kurdish"), + new Voice("la", "la", "la", "lat", "", "", "", SpeechSynthesis.GENDER_MALE, "Latin", "la", "This is a sample of text spoken in Latin"), + new Voice("lt", "test/lt", "lt", "lit", "", "", "", SpeechSynthesis.GENDER_MALE, "Lithuanian", "lt", "Tai teksto, sakomo lietuvių, pavyzdys"), + new Voice("lv", "lv", "lv", "lav", "", "", "", SpeechSynthesis.GENDER_MALE, "Latvian", "lv", "Šis ir izrunāta teksta paraugs šādā valodā: latviešu."), + new Voice("mk", "mk", "mk", "mkd", "", "", "", SpeechSynthesis.GENDER_MALE, "Macedonian", "mk", "This is a sample of text spoken in Macedonian"), + new Voice("ml", "ml", "ml", "mal", "", "", "", SpeechSynthesis.GENDER_MALE, "Malayalam", "ml", "This is a sample of text spoken in Malayalam"), + new Voice("mt", "test/mt", "mt", "mlt", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Maltese", "mt", "This is a sample of text spoken in Maltese"), + new Voice("nci", "test/nci", "nci", "", "", "", "", SpeechSynthesis.GENDER_MALE, "Classical Nahuatl", "nci", "This is a sample of text spoken in nci"), + new Voice("ne", "test/ne", "ne", "nep", "", "", "", SpeechSynthesis.GENDER_MALE, "Nepali", "ne", "This is a sample of text spoken in Nepali"), + new Voice("nl", "nl", "nl", "nld", "", "", "", SpeechSynthesis.GENDER_MALE, "Dutch", "nl", "Dit is een voorbeeld van tekst die is uitgesproken in het Nederlands"), + new Voice("no", "no", "no", "nor", "", "", "", SpeechSynthesis.GENDER_MALE, "Norwegian", "no", "This is a sample of text spoken in Norwegian"), + new Voice("nso", "test/nso", "nso", "nso", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Sotho (Northern)", "nso", "This is a sample of text spoken in Northern Sotho"), + new Voice("pa", "test/pa", "pa", "pan", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Panjabi", "pa", "This is a sample of text spoken in Punjabi"), + new Voice("pap", "test/pap", "pap", "pap", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Papiamento", "pap", "This is a sample of text spoken in Papiamento"), + new Voice("pl", "pl", "pl", "pol", "", "", "", SpeechSynthesis.GENDER_MALE, "Polish", "pl", "To jest przykład tekstu mówionego przy ustawieniu polski"), + new Voice("prs", "test/prs", "prs", "", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Dari (Afghan Persian)", "prs", "This is a sample of text spoken in prs"), + new Voice("pt-br", "pt", "pt", "por", "BR", "BRA", "", SpeechSynthesis.GENDER_MALE, "Portuguese (Brazil)", "pt-BR", "Este é um exemplo de texto falado em português (Brasil)"), + new Voice("pt-pt", "pt-pt", "pt", "por", "PT", "PRT", "", SpeechSynthesis.GENDER_MALE, "Portuguese (Portugal)", "pt-PT", "Este é um exemplo de texto falado em português (Portugal)"), + new Voice("ro", "ro", "ro", "ron", "", "", "", SpeechSynthesis.GENDER_MALE, "Romanian", "ro", "Aceasta este o mostră de text vorbit în română"), + new Voice("ru", "ru", "ru", "rus", "", "", "", SpeechSynthesis.GENDER_MALE, "Russian", "ru", "Так синтезатор речи озвучивает русский текст"), + new Voice("rw", "test/rw", "rw", "kin", "", "", "", SpeechSynthesis.GENDER_MALE, "Kinyarwanda", "rw", "This is a sample of text spoken in Kinyarwanda"), + new Voice("si", "test/si", "si", "sin", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Sinhalese", "si", "This is a sample of text spoken in Sinhala"), + new Voice("sk", "sk", "sk", "slk", "", "", "", SpeechSynthesis.GENDER_MALE, "Slovak", "sk", "Toto je ukážkový text nahovorený v jazyku slovenčina"), + new Voice("sl", "test/sl", "sl", "slv", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Slovenian", "sl", "To je vzorec besedila, izgovorjen v slovenščina"), + new Voice("sq", "sq", "sq", "sqi", "", "", "", SpeechSynthesis.GENDER_MALE, "Albanian", "sq", "This is a sample of text spoken in Albanian"), + new Voice("sr", "sr", "sr", "srp", "", "", "", SpeechSynthesis.GENDER_MALE, "Serbian", "sr", "Ово је пример текста који је изговорен на језику Српски"), + new Voice("sv", "sv", "sv", "swe", "", "", "", SpeechSynthesis.GENDER_MALE, "Swedish", "sv", "Detta är ett textexempel som läses på svenska"), + new Voice("sw", "sw", "sw", "swa", "", "", "", SpeechSynthesis.GENDER_MALE, "Swahili", "sw", "Hii ni sampuli ya maandishi yaliyonenwa katika Kiswahili"), + new Voice("ta", "ta", "ta", "tam", "", "", "", SpeechSynthesis.GENDER_MALE, "Tamil", "ta", "This is a sample of text spoken in Tamil"), + new Voice("te", "test/te", "te", "tel", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Telugu", "te", "This is a sample of text spoken in Telugu"), + new Voice("tn", "test/tn", "tn", "tsn", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Setswana", "tn", "This is a sample of text spoken in Tswana"), + new Voice("tr", "tr", "tr", "tur", "", "", "", SpeechSynthesis.GENDER_MALE, "Turkish", "tr", "Bu, Türkçe dilinde seslendirilen örnek bir metindir"), + new Voice("tt", "test/tt", "tt", "tat", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Tatar", "tt", "This is a sample of text spoken in Tatar"), + new Voice("ur", "test/ur", "ur", "urd", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Urdu", "ur", "This is a sample of text spoken in Urdu"), + new Voice("vi", "vi", "vi", "vie", "", "", "", SpeechSynthesis.GENDER_MALE, "Vietnamese", "vi", "Đây là mẫu văn bản được đọc bằng Tiếng Việt"), + new Voice("wo", "test/wo", "wo", "wol", "", "", "", SpeechSynthesis.GENDER_UNSPECIFIED, "Wolof", "wo", "This is a sample of text spoken in Wolof"), + new Voice("zh", "zh", "zh", "zho", "", "", "", SpeechSynthesis.GENDER_MALE, "Chinese (Mandarin)", "zh", "This is a sample of text spoken in 中文"), + new Voice("zh-yue", "zh-yue", "yue", "", "", "", "", SpeechSynthesis.GENDER_MALE, "Chinese (Cantonese)", "yue", "This is a sample of text spoken in Cantonese"), }; } diff --git a/android/res/values/donottranslate.xml b/android/res/values/donottranslate.xml index 9e420d0d..bf389637 100644 --- a/android/res/values/donottranslate.xml +++ b/android/res/values/donottranslate.xml @@ -21,39 +21,4 @@ 2 - haai - Zdravo - 你好 - bok - ahoj - hallo - hello - saluton - hei - bonjour - hallo - γεια σου - नमस्ते - jo napot - góðan dag - halo - ciao - roj bahsh - salve - Zdravo - hallo - witaj - Olá - salut - привет - здраво - ahoj - hola - Jambo - hej - vanakkam - merhaba - xin chao - shwmae - \ No newline at end of file diff --git a/android/src/com/reecedunn/espeak/GetSampleText.java b/android/src/com/reecedunn/espeak/GetSampleText.java index 48a191c8..92462386 100755 --- a/android/src/com/reecedunn/espeak/GetSampleText.java +++ b/android/src/com/reecedunn/espeak/GetSampleText.java @@ -1,4 +1,5 @@ /* + * Copyright (C) 2012 Reece H. Dunn * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -18,13 +19,8 @@ package com.reecedunn.espeak; import android.app.Activity; import android.content.Intent; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.content.res.Resources.NotFoundException; import android.os.Bundle; import android.speech.tts.TextToSpeech; -import android.util.DisplayMetrics; -import android.util.Log; import java.util.Locale; @@ -32,99 +28,12 @@ import java.util.Locale; * Returns the sample text string for the language requested */ public class GetSampleText extends Activity { - private static final String TAG = GetSampleText.class.getSimpleName(); - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Locale locale = getLocaleFromIntent(getIntent()); - final Resources res = getResourcesForLocale(this, locale); - - String text = null; - - try { - text = res.getString(R.string.sample_text, locale.getDisplayName(locale)); - } catch (NotFoundException e) { - e.printStackTrace(); - } - - final String language = (locale == null) ? "eng" : locale.getISO3Language(); - - if (text != null) { - // Do nothing. - } else if (language.equals("afr")) { - text = getString(R.string.afr); - } else if (language.equals("bos")) { - text = getString(R.string.bos); - } else if (language.equals("zho")) { - text = getString(R.string.zho); - } else if (language.equals("hrv")) { - text = getString(R.string.hrv); - } else if (language.equals("ces")) { - text = getString(R.string.ces); - } else if (language.equals("nld")) { - text = getString(R.string.nld); - } else if (language.equals("eng")) { - text = getString(R.string.eng); - } else if (language.equals("epo")) { - text = getString(R.string.epo); - } else if (language.equals("fin")) { - text = getString(R.string.fin); - } else if (language.equals("fra")) { - text = getString(R.string.fra); - } else if (language.equals("deu")) { - text = getString(R.string.deu); - } else if (language.equals("ell")) { - text = getString(R.string.ell); - } else if (language.equals("hin")) { - text = getString(R.string.hin); - } else if (language.equals("hun")) { - text = getString(R.string.hun); - } else if (language.equals("isl")) { - text = getString(R.string.isl); - } else if (language.equals("ind")) { - text = getString(R.string.ind); - } else if (language.equals("ita")) { - text = getString(R.string.ita); - } else if (language.equals("kur")) { - text = getString(R.string.kur); - } else if (language.equals("lat")) { - text = getString(R.string.lat); - } else if (language.equals("mkd")) { - text = getString(R.string.mkd); - } else if (language.equals("nor")) { - text = getString(R.string.nor); - } else if (language.equals("pol")) { - text = getString(R.string.pol); - } else if (language.equals("por")) { - text = getString(R.string.por); - } else if (language.equals("ron")) { - text = getString(R.string.ron); - } else if (language.equals("rus")) { - text = getString(R.string.rus); - } else if (language.equals("srp")) { - text = getString(R.string.srp); - } else if (language.equals("slk")) { - text = getString(R.string.slk); - } else if (language.equals("spa")) { - text = getString(R.string.spa); - } else if (language.equals("swa")) { - text = getString(R.string.swa); - } else if (language.equals("swe")) { - text = getString(R.string.swe); - } else if (language.equals("tam")) { - text = getString(R.string.tam); - } else if (language.equals("tur")) { - text = getString(R.string.tur); - } else if (language.equals("vie")) { - text = getString(R.string.vie); - } else if (language.equals("cym")) { - text = getString(R.string.cym); - } else { - Log.e(TAG, "Missing sample text for " + language); - text = getString(R.string.eng); - } + final String text = SpeechSynthesis.getSampleText(getBaseContext(), locale); final int result = TextToSpeech.LANG_AVAILABLE; final Intent returnData = new Intent(); @@ -144,14 +53,4 @@ public class GetSampleText extends Activity { return Locale.getDefault(); } - - private static Resources getResourcesForLocale(Activity activity, Locale locale) { - final Configuration config = activity.getResources().getConfiguration(); - config.locale = locale; - - final DisplayMetrics metrics = new DisplayMetrics(); - activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); - - return new Resources(activity.getAssets(), metrics, config); - } } diff --git a/android/src/com/reecedunn/espeak/SpeechSynthesis.java b/android/src/com/reecedunn/espeak/SpeechSynthesis.java index 292104f7..9df98ad4 100644 --- a/android/src/com/reecedunn/espeak/SpeechSynthesis.java +++ b/android/src/com/reecedunn/espeak/SpeechSynthesis.java @@ -1,4 +1,5 @@ /* + * Copyright (C) 2012 Reece H. Dunn * Copyright (C) 2011 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,7 +25,10 @@ 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; import java.io.File; @@ -159,6 +163,15 @@ public class SpeechSynthesis { mInitialized = true; } + public static String getSampleText(Context context, Locale locale) { + final DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + final Configuration config = context.getResources().getConfiguration(); + config.locale = locale; + + Resources res = new Resources(context.getAssets(), metrics, config); + return res.getString(R.string.sample_text, locale.getDisplayName(locale)); + } + private int mNativeData; private static native final boolean nativeClassInit();