X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Ftts.cpp;fp=src%2Ftts.cpp;h=85b714774c4d85319608f6458519a399ccd749ba;hb=a06e24960036bb580752deae5dae330f13b9db99;hp=f55711950a039a006d233ef96fa258285ee0228a;hpb=002d666018388af8bafad92a63ede0e2d3f6e3a1;p=mstardict diff --git a/src/tts.cpp b/src/tts.cpp index f557119..85b7147 100644 --- a/src/tts.cpp +++ b/src/tts.cpp @@ -111,6 +111,7 @@ static TtsVoice voices[] = { {"Mandarin", N_("Chinese (Mandarin)")}, {"cantonese-test", N_("Chinese (Cantonese)")}, {"default", N_("Default")}, + {"WyabdcRealPeopleTTS", N_("WyabdcRealPeopleTTS")}, {NULL, NULL} }; @@ -171,6 +172,11 @@ Tts::IsEnabled() void Tts::SetVoice(const gchar *language, int gender) { + if (g_strcmp0(language, "WyabdcRealPeopleTTS") == 0) + RealPeople = true; + else + RealPeople = false; + espeak_VOICE voice; memset(&voice, 0, sizeof(espeak_VOICE)); @@ -183,7 +189,19 @@ Tts::SetVoice(const gchar *language, int gender) void Tts::SayText(const gchar *sText) { - espeak_Synth(sText, strlen(sText) + 1, 0, POS_CHARACTER, 0, espeakCHARS_UTF8, NULL, NULL); + if (!RealPeople) { + espeak_Synth(sText, strlen(sText) + 1, 0, POS_CHARACTER, 0, espeakCHARS_UTF8, NULL, NULL); + return; + } + + gchar *lower = g_utf8_strdown(sText, -1); + gchar *cmd = g_strdup_printf("paplay /home/user/MyDocs/mstardict/WyabdcRealPeopleTTS/%c/%s.wav", lower[0], lower); + g_free(lower); + + system(cmd); + + g_free(cmd); + } GtkListStore *