BenTalagan / glaemscribe

Glaemscribe, the tolkienian languages/writings transcription engine.
https://glaemscrafu.jrrvf.com/english/glaemscribe.html
Other
43 stars 8 forks source link

Phonetic mode for Vietnamese #7

Closed laicasaane closed 7 years ago

laicasaane commented 7 years ago

I see no problem sharing my mode implementation for Vietnamese, which is my mother tongue, at all. I still haven't made any changes to the rules yet. I think sharing this in its current form might help you a bit figuring out any potential problem. Since Vietnamese has 6 tones and many vowels, could it be complex enough for some problems to emerge out of your prediction?

Phonetic mode for Vietnamese.zip

This is an example text. Note: the parantheses indicate words written in other modes. bregalad-song

laicasaane commented 7 years ago

I've updated my implementation to adapt to the current version of Glaemscribe. [new] Phonetic mode for Vietnamese.zip

There are 2 files inside: compact and redundant, and there is a bug that affects the compact version only. I've followed your suggestion in https://github.com/BenTalagan/glaemscribe/issues/6#issuecomment-304438292 but it seems the new compact rules cannot handle things correctly.

In the table below, the redundant version produces correct texts (blue), while the compact version produces wrong texts. 2017-05-29_18-45-40

These are the snippets that produces the above example.

{TONES}   === ˊ       * ˋ         * ˀ       * ˁ       * ˬ
{_TONES_} === {_SAC_} * {_HUYEN_} * {_HOI_} * {_NGA_} * {_NANG_}

{TONES_FULL}   === {TONES}   * {NULL}
{_TONES_FULL_} === {_TONES_} * {_NGANG_}
\** COMPACT **\
{VOWELS_OPENED}   === a     * ă           * â         * e     * ê         * i     * ơ          * ư          * y     * ō
{_VOWELS_OPENED_} === {_A_} * {_A_BREVE_} * {_A_HAT_} * {_E_} * {_E_HAT_} * {_I_} * {_O_HORN_} * {_U_HORN_} * {_Y_} * {_OO_}

{VOWELS_CLOSED}   === o     * ô         * u
{_VOWELS_CLOSED_} === {_O_} * {_O_HAT_} * {_U_}

[{CONSONANTS}] [{VOWELS_OPENED}] [{TONES_FULL}] [{FINALS}] --> 1, 4, 2, 3 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] [{_VOWELS_OPENED_}] [{_TONES_FULL_}]
[{CONSONANTS}] [{VOWELS_CLOSED}] [{TONES_FULL}] [{FINALS}] --> 1, 4, 2, 3 --> [{_CONSONANTS_}] [{_FINALS_CLOSED_}] [{_VOWELS_CLOSED_}] [{_TONES_FULL_}]

\** REDUNDANT **\
[{CONSONANTS}] a [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_A_}       [{_TONES_FULL_}]
[{CONSONANTS}] ă [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_A_BREVE_} [{_TONES_FULL_}]
[{CONSONANTS}] â [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_A_HAT_}   [{_TONES_FULL_}]
[{CONSONANTS}] e [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_E_}       [{_TONES_FULL_}]
[{CONSONANTS}] ê [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_E_HAT_}   [{_TONES_FULL_}]
[{CONSONANTS}] i [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_I_}       [{_TONES_FULL_}]
[{CONSONANTS}] ơ [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_O_HORN_}  [{_TONES_FULL_}]
[{CONSONANTS}] ư [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_U_HORN_}  [{_TONES_FULL_}]
[{CONSONANTS}] y [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_Y_}       [{_TONES_FULL_}]
[{CONSONANTS}] ō [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] {_OO_}      [{_TONES_FULL_}]

[{CONSONANTS}] o [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_CLOSED_}] {_O_}     [{_TONES_FULL_}]
[{CONSONANTS}] ô [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_CLOSED_}] {_O_HAT_} [{_TONES_FULL_}]
[{CONSONANTS}] u [{TONES_FULL}] [{FINALS}] --> 1, 3, 2 --> [{_CONSONANTS_}] [{_FINALS_CLOSED_}] {_U_}     [{_TONES_FULL_}]
BenTalagan commented 7 years ago

Hi Laicasaane,

A quick reply : this is awesome. For your question, it seems to me that the sequence is wrong : should be 1, 3, 4, 2 instead of 1, 4, 2, 3, right?

[{CONSONANTS}] [{VOWELS_OPENED}] [{TONES_FULL}] [{FINALS}] --> 1, 4, 2, 3 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] [{_VOWELS_OPENED_}] [{_TONES_FULL_}]

Vowels should fall on the 3rd group, tones on the 4th group and finals on the 2nd one.

laicasaane commented 7 years ago

In Vietnamese, the general structure for a syllable is:

SYLLABLE = ONSET + (NUCLEUS + TONE + [CODA])

The ONSET is the initial consonants. The CODA is the final consonant. (Some syllables don't have the coda at all.) For example, in the comparision table above, the codas of those words la, lan, lanh, lang would be (NULL), N, NH, NG.

The first fact: Vietnamese has 11 vowels a, ă, â, e, ê, i, o, ô, ơ, u, ư and 6 tones ngang, sắc, huyền, hỏi, ngã, nặng (each row of the table above demostrates a tone). There is a large number of tehtar to be used.

The second fact: Those tehtar will be placed both above and below of the tengwar. But there are some tengwar that (by their nature) aren't suitable to hold some tehtar below it.

Luckily, the number of codas in Vietnamese is much smaller. We just have t, p, c, ch, th, n, m, nh, ng as the possible final consonants. The best thing is the tengwar that represent these codas are so suitable to hold tehtar both above and below.

So I decided to place tehtar on the final consonants instead of the initials. If the syllable has no coda, The tehtar will be place on a telco.


Note: The word syllable usually means a one-syllable word, even though when that word stands alone, it may have no meaning at all. For example: While the word lạnh lẽo means "(very) cold", the syllable lạnh means "cold", but the syllable lẽo has no meaning.

BenTalagan commented 7 years ago

(I'm not sure if your last reply -though pretty interesting- is concerning my suggesting for a bug fix ? have you tried to correct :

[{CONSONANTS}] [{VOWELS_OPENED}] [{TONES_FULL}] [{FINALS}] --> 1, 4, 2, 3 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] [{_VOWELS_OPENED_}] [{_TONES_FULL_}] 

by

[{CONSONANTS}] [{VOWELS_OPENED}] [{TONES_FULL}] [{FINALS}] --> 1, 3, 4, 2 --> [{_CONSONANTS_}] [{_FINALS_OPENED_}] [{_VOWELS_OPENED_}] [{_TONES_FULL_}]

and does it solve your problem ?)

laicasaane commented 7 years ago

I'm verry sorry for my huge mistake not checking everything before editing the comment (So I deleted it out of my embarrassment)! It works now. Your suggestion is correct from the beginning. Why is it?

I wrote the previous comment to explain why I thought it should be --> 1, 4, 2, 3 -->, because of my intepretation of the sheaves' index.

BenTalagan commented 7 years ago

I think the new documentation is not totally clear :D The sequence of numbers 1, 3, 4, 2 indicates the target position of the sheaves :

Left linkable sheaf 1 is linked with target sheaf 1 Left linkable sheaf 2 is linked with target sheaf 3 Left linkable sheaf 3 is linked with target sheaf 4 Left linkable sheaf 4 is linked with target sheaf 2

(1,2,3,4 =>) 1,3,4,2

That's what the order means.

laicasaane commented 7 years ago

I did think about it as the reordering of the left sheaves! So it totally makes sense now. 😅

BenTalagan commented 7 years ago

No worries !! You're right, your point of view seems also very natural, since it's the inverse permutation :D The documentation is not clear enough, I'll add some clarification later on. Thanks for pinpointing the problem :)

BenTalagan commented 7 years ago

I'm closing this issue, but what you've shown is pretty interesting! I'm fond of your project and would really like to see it come to an achieved version. Thanks for sharing it!