User:Yzhang4/Final project
Our group's final project is a orthographic conversion tool from IPA to Tibetan Script of Japhug based on lexd and twol of apertium.
Note: in order to display Tibetan glyphs correctly, you should download and install this font.
Contents
Project Description
Currently, compared to IPA, Tibetan Script-based orthography is more accepted among Japhug speakers. Therefore, we developed the orthographic conversion tool to make our transducer/translator more accessible for the Japhug community.
Transcription Scheme
Our orthographic conversion is based on the orthography proposed by Guillaume Jacques, from A Grammar of Japhug(2021) p.105 to p.106.
We try to follow the conventions for spelling Tibetan as much as possible, like keeping the vowel in the first or second consonant of a syllable.
Main differences from Standard Tibetan script
This transcription aims to minimize ambiguity, maximizing one-to-one map from sounds to orthography. Because the phonology of Japhug is richer than Standard Tibetan, in order to reduce ambiguity, this transcription uses some archaic Tibetan letters and some Tibetan letters for Sanskrit. For example, the archaic Tibetan diacritic ྀ represents vowel /ɯ/, and the letter ཊ that used to represent Sanskrit sound /ʈ/ represents /tʂ/ in this transcription.
Since vowel /ɤ/ is more common than /a/ in Japhug, we use /ɤ/ as the base vowel of each syllable (a.k.a akshara) instead of /a/ in Standard Tibetan. On the other hand, we use the long vowel diacritic ཱ to represent /a/.
There are no uvular consonants in Standard Tibetan. In order to represent uvular consonants, we use the symbol "༹" to distinguish uvulars from their velar counterparts. For example, "q" is transcribed as "ཀ༹", corresponding to "k" that transcribes to "ཀ".
When continuant velar and uvular consonants are at the end of a syllable, they become "ག".
Japhug consonants can be prenasalized. In this transcription, we use letter འ to represent prenasalization. For example, "znde" should be transcribed as "འསྡེ".
There is no distinction between palatal and alveo-palatal sounds in standard Tibetan. We emailed Jacques, and he suggested us use velar+j to represent palatals, while keep alveo-palatals the same as standard Tibetan, because velar+i/j is very rare in Japhug. For example, palatal consonant "c" is transcribed as "ཀྱ", and its alveo-palatal counterpart "tɕ" is "ཅ"
Table
The following table tells about the details of the transcription for consonants. Colored entries are consonants not in Standard Tibetan:
| Labial | Dental | Alveolar | Retroflex | Alveopalatal | Palatal | Velar | Uvular | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IPA | Letter | IPA | Letter | IPA | Letter | IPA | Letter | IPA | Letter | IPA | Letter | IPA | Letter | IPA | Letter | ||
| Occlusive | nasal | m | མ | n | ན | ɲ | ཉ | ŋ | ང | ||||||||
| prenasalized | ᵐb | འཔ | ⁿd | འད | ⁿdz | འཛ | ᶯɖʐ | འཌ | ᶮdʑ | འཇ | ᶮɟ | འཇ | ᵑɡ | འག | ᶰɢ | འག༹ | |
| voiced | b | བ | d | ད | dz | ཛ | dʐ | ཌ | dʑ | ཇ | ɟ | གྱ | ɡ | ག | |||
| voiceless | p | པ | t | ཏ | ts | ཙ | tʂ | ཊ | tɕ | ཅ | c | ཀྱ | k | ཀ | q | ཀ༹ | |
| aspirated | pʰ | ཕ | tʰ | ཐ | tsʰ | ཚ | tʂʰ | ཋ | tɕʰ | ཆ | cʰ | ཁྱ | kʰ | ཁ | qʰ | ཁ༹ | |
| Continuant | voiced | w/β/f | བ༹/བ/ཕ༹ | l | ལ | z | ཟ | r | ར | ʑ | ཞ | j | ཡ | ɣ | ཝ | ʁ | ཝ༹/འ/ག |
| voiceless | ɬ | ལ | s | ས | ʂ | ཥ | ɕ | ཤ | x | ཧ/ག | χ | ཧ༹/ག | |||||
The following table is the scheme for vowel transcription. Colored entries are those different or new to Standard Tibetan:
| IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark | IPA | Vowel mark |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ɤ | N/A | a | ཱ | i | ི | u | ུ | y | ུ | ɯ | ྀ | e | ེ | o | ོ |
When a vowel is not preceded by any consonants, use འ with the corresponding vowel mark. For example, "andi" is transcribed as "འཱ༌འདི".
Because y is extremely uncommon in Japhug, we choose to represent it in the same way as u.
Implementation Method
We built a mini-transducer based on apertium to implement IPA to Tibetan Script transcriber. Specifically, we hard coded the rules for transcription in lexd and twol files. Moreover, because there are ambiguation in transcribing consonant clusters, we also used an xfst file to deal with that kind of ambiguation.
Currently, we have about 8 lexicon categories with about 170 lexicon entires in the lexd file, 5 twol rules and 61 disambiguation rules in the xfst file.
Installation
You can install the orthographical convertor from our Japhug language transducer.
After clone the transducer and make it, you can use the following command to do transcription:
apertium -d . jya_Latn-jya_Tibt
For example, to transcribe a full Japhug sentence:
echo "tɤrʑaβ nɯ pjɤrɤɕphɤt" | apertium -d . jya_Latn-jya_Tibt
You'll expect to get
ཏ༌རྮཱབ༌ ནྀ༌ པྱ༌ར༌ཤྥཏ།
Evaluation
Since there are not many existing texts of Japhug in this transcription, we'll just transcribe a sample corpus (jya.corpus.basic.txt) from IPA to Tibetan script. After than, we manually change each transcribed word into the most correct form, to make the target transcription file.
Finally, we directly check the word error rate of the transcriber by comparing the target transcription with the transcription generated by the transcriber. The results are shown below:
Total tokens = 2503 Matched tokens = 2478 Not Matched tokens = 25 Word Error Rate = %0.9988014382740711
Future Improvements
For some Japhug expressions with multiple consonants between vowels, there still exists ambiguity. For example, the word "paχɕi" (apple) can be transcribed as either "པཱ༌ཧ༹ཤི" when treating the consonant χ as the first consonant of the second syllable, or "པཱག༌ཤི" if treating χ as the last consonant of the first syllable. We'll try to figure out some ways to standardize that.