Messages : 5
Langue: Esperanto
sergejm (Voir le profil) 15 mars 2016 20:23:32
private void speak(String text)
{
int vowel1 = - 1, vowel2 = - 1;
int len = text.length();
StringBuilder sb = new StringBuilder(len);
boolean inTag = false;
for (int i = 0; i < len; i++) {
char ch = text.charAt(i);
if (inTag) {
if (ch == '>' )
inTag = false;
continue;
}
if (ch == '<' ) {
inTag = true;
continue;
}
boolean esp = true;
if (ch >= 'A' && ch <= 'Z' )
ch += 'a' - 'A';
if (ch >= 'a' && ch <= 'z' )
ch = "абцдэфгхийклмнoпqрстувwxyз".charAt(ch - 'a' );
else if (ch == 'ĉ' || ch == 'Ĉ' )
ch = 'ч';
else if (ch == 'ĝ' || ch == 'Ĝ' ) {
sb.append('д' );
ch = 'ж';
} else if (ch == 'ĥ' || ch == 'Ĥ' )
ch = 'х';
else if (ch == 'ĵ' || ch == 'Ĵ' )
ch = 'ж';
else if (ch == 'ŝ' || ch == 'Ŝ' )
ch = 'ш';
else if (ch == 'ŭ' || ch == 'Ŭ' )
ch = 'w';
else
esp = false;
int length = sb.length();
if (esp) {
int index = "иаэоуo".indexOf(ch);
if (length > 0 && sb.charAt(length - 1) == 'й' ) {
if (index >= 1) {
ch = "ияеёюё".charAt(index);
sb.replace(length - 1, length, "ъ" );
}
}
if (index >= 0) {
vowel2 = vowel1;
vowel1 = length + 1;
}
} else {
if (vowel2 > 0)
sb.insert(vowel2, AKCENTO);
vowel1 = vowel2 = - 1;
}
sb.append(ch);
}
text = sb.toString();
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
Kirilo81 (Voir le profil) 15 mars 2016 20:39:31
-pola
-hispana
-itala
Mi ne vere komprenas, kiel funkcias tiu anstataŭiga tabelo, sed por la pola estus la jenaj korespondoj:
a - a
b - b
c - c
ĉ - cz
d - d
e - e
f - f
g - g
ĝ - dż
h - h*
ĥ - ch*
i - i/y::
j - j
ĵ - ż/rz
k - k
l - l
m - m
n - n
o - o
p - p
r - r
s - s
ŝ - sz
t - t
u - u
ŭ - ł
v - w
z - z
*Jen unu serioza problemo: en la moderna norma pola h kaj ch estas identaj (pli frue kaj ankoraŭ en orientaj dialektoj h esti/as voĉa, ch senvoĉa), ilia elparolo varias depende de la ĉirkaŭaĵo kaj persono inter [h], [x] kaj [χ]. Sed ĉar ĥ estas tiel malofta, eble ne estos tro multe da problemoj.
::Bone, jen alia problemo: Antaŭ i oni palatigas (moligas) konsonanton, por havi malmolan elparolon, oni uzu y, kiu tamen estas pli centra, do oni havas aŭ si [ɕi] aŭ sy [sɨ], sed ne eblas [si].
Eble iu scias la detalojn por la itala aŭ alia lingvo.
sergejm (Voir le profil) 16 mars 2016 05:17:48
Kun rusa voĉo, kiel vi povas vi el mia programo, por pli bona prononco mi anstataŭis ja, je, jo, ju per 'ъя', 'ъе', 'ъё', 'ъю' kaj aldonas akcenton (mi forgesis kazon, kiam oni anstataŭas -o per apostrofo, kaj nombrojn). Estas strange, ke 'ъ' en komenco de vortoj estas ignorata, sed 'й' iafoje estas prononcata laŭ liternomo - 'и краткое'. Rusa voĉo fakte estas ankaŭ angla (se renkontiĝas angla vorto, ĝi estas prononcata angle), tial 'ŭ' mi anstataŭas per 'w'. Sed la ĉefa problemo estas prononco de senakcenta 'o'.
Pli bone estus uzi unu el EFIGS - english-french-italian-german-spanish, ĉar oni povas uzi tiujn lingvojn en tts dekomence.
Kaj plej bone se estus subteno de IPA.
Kirilo81 (Voir le profil) 16 mars 2016 10:50:46
Pri sonkombinoj krom la problemoj menciitaj mi nenion povas diri, ĉar mi ne scias, kiel funkcias la voĉlega programo.
Mi memoras, ke Ilona Koutny en Poznań multe okupiĝis pri parolsintezo, eble ŝi verkis ankaŭ ion pri Esperanto.
Jen E-a teksto per pola ortografio. La lokojn, kie la reguloj de la pola rezultigas ion alian ol la E-aj, mi grasigis:
En la mondon wenis nowa sento
tra la mondo iras forta woko
per flugiloj de facila wento
nun de loko flugu dżi* al loko.
Ne al glawo sangon soifanta
dżi* la homan tiras* familijon
al la mond' eterne militanta
dżi proponas sanktan harmonijon
*Mi ne scias, ĉu tio funkcios, ĉar dż aŭ t regule ne povas aperi antaŭ i.
mond' en la pola elvenus kiel [mɔnt].
sergejm (Voir le profil) 16 mars 2016 16:32:56
kwar prononcatas kfar
Fina -e foje estas glutita
tie rekonatas kiel angla vorto kaj prononcatas taj