Constructing a Multilingual Phoneme List for Polyglot Speech Synthesiser more

Presented in 2009 in the 4th Language & Technology Conference: Human Language Technologies as a Challenge for Computer Science and Linguistics

Constructing a Multilingual Phoneme List for Polyglot Speech Synthesiser Nur-Hana Samsudin and Mark Lee School of Computer Science University of Birmingham, UK {n.h.samsudin, m.g.lee}@cs.bham.ac.uk Abstract We describe our approach to construct a phoneme set for polyglot speech synthesis. In polyglot speech synthesis, resources are shared across languages. The goal of this research is to develop global phoneme set using existing resources. Therefore, MBROLA has been selected. In MBROLA, there are 72 diphone databases of different languages. For each database, there will is a set of phonemes used. We have selected 31 language databases out of the 72 diphone databases in MBROLA. By reusing existing resources, we would be able to gather global phoneme set in faster and wider language coverage. Therefore it would be able to be used for language that has limited linguistic expertise or limited linguistics resources. Our approach includes the process of extracting the phonemes of these languages, clustering, eliminating and substituting inaccurate phonemes and finally evaluating the list of phonemes obtained. At the end of this study, we are able to come out with one complete list of a global phoneme set. This list can be use as a substitution for unavailable phonemes in future polyglot TTS systems. It is also suitable to be used as a default phoneme set for new languaes if the new languages’ phoneme set is not yet defined. 1. Introduction The International Phonetic Alphabet (IPA) is a standard representation of phonetics for all languages. It provides symbols to represent sounds for phonemes which are already listed in a language or that are possible to be produced by human articulatory system. Therefore, the question needs to be addressed is why there is a need for constructing a multilingual phoneme list for polyglot speech synthesis? IPA provides a generic concept and instances of speech sound. While in speech, not all sounds listed in IPA are used regularly. Based on this account, it is possible to have a speech synthesis system for resource poor languages in which the phonemes set is obtained based on other languages. And since polyglot TTS facilitate sharable data including phonetic resources, the concept of multilingual phonemes set will complement the implementation of the polyglot TTS. In one previous study on multilingual phonemes by Altosaar et al. (1996), an intermediary representation was introduced. The representation able to convert from IPA, SAMPA, X-SAMPA, TIMIT and other notations into their notation, called Wordbet. The Worldbet list not only covers IPA transcription (Hieronymus,1993), but also suggests symbols based upon five years study conducted on a speech database. Therefore, knowledge on the sound of different language needs to be obtained before algorithm for symbol mapping from one notation to another can be constructed. This is different to our approach where the global phoneme set is constructed with limited resources. The aim of constructing a multilingual phoneme list is not to substitute IPA, SAMPA or X-SAMPA. What we propose is a default or initial phoneme set which can be used in polyglot TTS architecture or TTS for resource poor languages. The global phoneme set obtained at the end can be use independently. For the scope of our research, we use SAMPA as a phonetic representation given that is what MBROLA uses (MBROLA, 2005). MBROLA is only used as the resource. SAMPA is one of the complete phonetic representation which follows IPA transcription closely. The reason why we choose MBROLA is that MBROLA already has a rich collection of phonemes sets for 31 languages (MBROLA, 2005) - with a few variations for some languages. Making use of available resources not only makes the work possible without linguistic expertise but also makes the standardising and identifying process faster. Standard phonetic notation distinguishes the different phonemes used in pronunciation. In polyglot speech synthesis, the resources must be put together (Romsdorfer, 2007) and selection done based on phoneme labelling. By using a standard notation, one phoneme will also not be mistaken as another. By having a standard representation, it is also possible to reuse the phonemes of selected languages in other speech applications or phonetics related work. This paper is organised as follows. In Section 2, we will discuss the process of creating a multilingual phoneme list. We will describe the extraction and analysis process. We will also explain some of the issues we encounter during the analysis phase. We will then provide the outcome of our research in the multilingual phoneme list subsection. In Section 3, we will compare the outcome of our research with the phonemes set used by linguists in the following languages: English (RP), Latin, Italian, German and French. This will be followed with discussion and conclusion. 2. Constructing a Multilingual Phoneme List There are three processes in phoneme list construction; Extraction, Analysis and Evaluation. In Extraction process, all phonemes from the MBROLA database are retrieved. For the scope of this research, we collected all phonemes in each language that are available in the MBROLA database. In Analysis, there are two parts: the clustering process and the elimination/substitution process. In Evaluation, the result of this study is compared with validated phoneme set of the stated languages. There are 31 languages listed in MBROLA: Afrikaans, Dutch, English, German, Icelandic, Swedish, French, Italian, Latin, Romanian, Spanish, Croatian, Czech, Lithuanian, Polish, Breton, Farsi, Greek, Hindi, Estonian, Hungarian, Arabic, Hebrew, Japanese, Korean, Turkish, Indonesian, Malay, Maori and Telegu. All the phonemes are using the SAMPA notation. 2.2 Clustering After we obtained the raw phonemes list for the corresponding languages, we clustered the phonemes into groups of phoneme classes. The first level of the clusters is vowels, diphtongs and consonants. For each cluster, there are also derived phonemes. Some variations which occur most frequently are the lengthening of vowels, germination of consonants and aspirated of consonants as well as palatalised phonemes. We also have clusters of similar sounds. For example, [r], [R] and [4] or in IPA are: [r], [ ] and [ ] correspondingly are clustered together. This second level of clustering is based on our own judgement that these phonemes are coming from similar sound group with each other; but not in term of the manner or the place or articulation. By having the second level cluster we can determine the possible substitution phoneme from similar cluster during synthesising process. 2.1 Extraction Based on the phonemes of the 31 languages which have been extracted, initially there are 357 unique SAMPA symbols. In the list, we notice that the phonemes can be classified into two: the basic phonemes, which the phoneme is a direct mapping from consonants and vowel of the IPA; and the derived phonemes, where the phoneme is an entity constructed based on the combination of basic phoneme and diacritics or/and suprasegmentals symbols. Before we go into greater detail, it is necessary to describe the different types of classification in the IPA. Symbols in IPA are classified into consonants, vowels, diacritics, suprasegmental, and tones and word accents. However, in SAMPA, as described by Wells (2003), the tones and word accents need to be labelled in different tier (isolated from phoneme tier). This issue is beyond the scope of this paper. Therefore, according to the IPA chart, the phoneme can either belong to one of the following categories: vowels, consonant pulmonic, consonant non-pulmonic and other symbols. The phoneme could also has diacritics and/or suprasegmentals symbol. In the list, diphtongs are not listed. This is understandable because diphthongs consist of two consecutive vowels that glide or assimilate with one another in the production to become a phoneme. Contrary to the IPA chart, we classify our phonemes quite differently in our analysis. We treat all vowel and consonant (both pulmonic and non-pulmonic) as an entity of our phonemes. However, we also treat diphthongs as an entity. We also have instances of derived phonemes which are a combination of a consonant or a vowel with diacritics or/and suprasegmentals values in which we also treated the combined attributes as a phoneme entity. It is important to retain the derived phonemes because the phone produced has a unique sound as compared to the basic phoneme. During extraction, phonemes are retrieved and organised into a table of languages and phonemes list. We then sorted the phonemes to see if there was a pattern of distribution. From preliminary observation, we find that phonemes are not influenced by their language family. We also found that, for standard German and Bravarian German, the phonemes instances are not mirroring each other. 2.3 Elimination and Substitution From the clustered phonemes, we are capable of determining the SAMPA phonemes which are correspond to the standard IPA notation. At this phase, there could be two reasons a phoneme need to be substituted or eliminated. It could either be the phoneme is not a standard SAMPA symbol or the SAMPA symbol given is not corresponding to the sound produced by the phoneme in MBROLA. When the phoneme is not written in standard SAMPA notation, it could be either one of these two reasons: the symbol was represented to fit in all phonemes of the target language and somehow the created symbol is clashing with another SAMPA symbol or the symbol simply does not exist in SAMPA. When the SAMPA sound does not correspond to the sound played by MBROLA synthesiser, it means that error may occur during the matching process between orthographic and phonetic or the developer is using a different version of SAMPA standard. Based on these criteria, the elimination or substitution process will be carried out. Elimination is the process required when one of the following conditions occurs: • the phoneme is not match to any IPA transcription • the symbol does not exist in SAMPA notation • the sound which is labelled in the MBROLA database is not possible to be match with any other unused symbol for that particular language. Substitution on the other hand is the process of changing the symbol declared in MBROLA into one that matches with IPA and SAMPA. We will provide examples in later section when we discuss specific languages’ issues. It is also important to highlight that we remove semidiphtongs (or also known as mixed-diphtongs) in which vowels /a/, /e/ /i/ and /u/ are followed by /r/, /l/, / / or /m/. We also remove an instance of SAMPA which consist of two consecutive phonemes from the original SAMPA list extracted at the initial stage. Both decisions are made because the sounds do not glide with each other and the sound can be produced by putting the two phonemes in sequence. By having this step by step process, we would be able to standardise the SAMPA notation which will then not only make the process of mapping of IPA to computer readable alphabet easier but will also make the process of grapheme-to-phoneme conversion more accurate. During analysis of the phonemes, none of English phonemes set has been removed. It shows that the phoneme set follows the standard notation of SAMPA. As for lengthening variation, we have to add those unlisted phonemes into our set of multilingual phonemes. 2.4 Issues during Extraction, Elimination and Substitution Clustering, In the process of obtaining the phoneme set, some issues regarding MBROLA phonemes has been encountered. We would like to discuss the issues based on a few individual languages. Each database in MBROLA is required to follow SAMPA notation. However due to the MBROLA synthesiser architecture and the different nature of the languages, some developers may find the need to modify or simplify their phonetic representation. The MBROLA speech engine is based on concatenation of diphones. MBROLA has a prosody modification mechanism that allows pitch varying throughout the time frame of each phoneme. For example in the tested sample for Malay, ;ujian (translated as: test) U 120 0 208 90 192 dZ 120 0 226 I 80 90 218 V 80 0 198 n 120 0 165 90 167 2.4.2 Case Study on Italian There are 40 phonemes listed in the Italian database. Contrary to English, Italian has a lot of lateral releases as derived phonemes. But similar to English, no phoneme has been removed during our analysis. Each phoneme represents the duration value and the varying change of the pitch is shown in percentage for the value afterwards. For example, for the phoneme /U/, the values are 120 0 208 90 192. It means the duration of /U/ sound is 120 ms and throughout that duration, the fundamental frequency will be varied like this: at 0% of the total time (initial state) the pitch value is 208Hz and it is interpolated to 192Hz at 90% of the 120ms time. This example is presented to show the reason behind some of issues raised in the following case studies. We would like to highlight 4 languages for analysis, English, Italian, Lithuanian and Estonian. Each will present different issues in the above mentioned process. 2.4.1 Case Study on English Since MBROLA allows manipulation of duration, English uses a very limited set of phonemes. There are 41 phonemes listed in the English phonemes set in MBROLA. For English vowels, the phonemes selected are phonemes either with or without lengthening. There are no basic and derived phonemes that are put together in the list. The same case goes with diphtongs. In the standard English dictionary, the lengthening is written in the phonetic transcription of each word to clearly distinguish the stress and accent which need to be put in. However in MBROLA, these instances is ignored because the ability of the MBROLA synthesiser to stretch or shorten the duration. 2.4.3 Case Study on Lithuanian Lithuanian originally has 90 phonemes in the list. However Lithuanian phonemes in MBROLA do not follow the standard SAMPA notation. For a vowel which has different stressed level, the Lithuanian database presents their phonemes by using capitalised alphabet for stressed and small alphabet for unstressed phonemes. While in SAMPA standard, different capital letter will refer to different phonemes in IPA. Lithuanian also represents tone contour in phonemes. For instance, for a long vowel /a/, the Lithuanian database has a phoneme of /aA/ for rising tone and /Aa/ for falling tone. In SAMPA however, only lengthening of vowel need to be represented. The changes of tones will need to be labelled at a different tier. For this we change the short and long vowel to the corresponding symbol in SAMPA. However, because we are not sure of which phoneme actually been used in Lithuanian, some phonemes are left as capitalised and small capital. We also need to check for correct phonemes since the labelling of phonemes already inconsistent by SAMPA standard. After analysis, Lithuanian only has 57 phonemes left. 2.4.4 Case Study for Estonian Originally there are 77 phonemes for the Estonian. However, similar to Lithuanian, Estonian database’s developer find it necessary to represent the SAMPA notation independent of standard notation. This is due to the fact that Estonian has three types of long phoneme duration which they call phonological distinctive foot patterns (MBROLA, 2005). Estonian also represents double phonemes for long vowel and germinates consonants which are not a standard SAMPA notation. Additionally for those long vowel and repetitive consonants, there are variations in term of lengthening of the phonemes which make it even harder for us to provide phoneme substitution where applicable. For example, there are /f:f/, /ff/, /h:/, /hh/, /jj/, /kk/ and /k:k/ which all mean germinated consonants. But because of the variation in Estonian speech pattern, they find a need to describe them in the database. However, after standardising the symbols according to SAMPA, we have to replace repetitive phonemes with long symbol /:/ and for other cases, we have to eliminate them without substitution. This is because the phoneme can be constructed by putting two phonemes sequentially. At the end only 31 phonemes are listed in the Estonian database. As we going to describe in Discussion & Conclusion section, we changed this notation by adding colon [:] to individual basic phonemes. Based on the four database analysis description, we have showed that different database require different analysis. Consonants [?] / /, [4] / /, [b] /b/, [B] / /, [b'] /b /, [b:] /b /, [b_h] /b /, [c] /c/, [C] /ç/, [c:] /c /, [c_h] /c /, [d] /d/, [D] /ð/, [d'] /ð /, [d.] //, [d:] /d /, [d_h] /d /, [D_h] /ð /, [Dz] /ðz/, [dZ] / /, [dz'] /dz /, [dZ'] / /, [dz\] /d /, [f] /f/, [F] / /, [f'] /f /, [f:] /f /, 2.5 Multilingual Phoneme List for Polyglot Speech Synthesis This list is written in SAMPA. We also provide the corresponding IPA symbol to each phonemes. However we find that some phonemes cannot be mapped to IPA because they are declared as a phoneme in the particular languages but cannot be removed based on the rules listed in analysis section. The mapping is mainly based on Wells (2003). SAMPA notation is represented in square bracket ([]) and IPA is represented in slash (//). The representation does not differentiate slash (//) as phonemes and square bracket ([]) as phones. Differences are introduced to improve readability. For non available corresponding phonemes, we let the IPA space blanked. [g] /g/, [G] / /, [g'] /g /, [g:] /g /, [h] /h/, [H] / /, [h'] /h /, [h:] /h /, [h\] / /, [j] /j/, [J] / /, [j'] /j /, [J-] / /, [j:] /j /, [J_0] / /, [j_h] /j /, [k] /k/, [k'] /k /, [k:] /k /, [k_}] /k /, [k_>] /k’/, [k_h] /k /, [k_h:] /k /, [l] /l/, [L] / /, [l'] /l /, [L'] / /, [l:] /l /, [l_}] /l /, [l_0] /l/, [m] /m/, [M] / /, [m'] /m /, [M'] / /, [m:] /m /, [M\] / /, [m_}] /m /, [m_0] /m/, [n] /n/, [N] /ŋ/, [n'] /n /, [N'] /ŋ /, [n:] /n /, [n':] /n /, [n_}] /n /, [n_0] /n/, [N_0] /ŋ/, [N_k] /ŋ/, [n~] /ñ/, [N~] /ŋ/, [ny] /ny/, [nY] / /, [p] /p/, [P] / /, [p'] /p /, [p:] /p /, [p_}] /p /, [p_>] /p’/, [p_h] /p /, [p_h:] /p /, [q] /q/, [r] /r/, [R] / /, [r'] /r /, [R'] / /, [r:] /r /, [r_0] /r/, [s] /s/, [S] / /, [s'] /s /, [S'] / /, [s.] //, [s:] /s /, [S:] / /, [s\] / /, [s_>] /s’/, [t] /t/, [T] /θ/, [t'] /t /, [t.] //, [t:] /t /, [t_}] /t/, [t_>] /t’/, [t_h] /t /, [t_h:] /t /, [T_h] /θ /, [ts] /c/, [tS] / /, [Ts] /θs/, [ts'] /ts /, [tS'] /t /, [ts\] /t /, [ts\_>] /ts’/, [ts\_h] /ts’ /, [v] /v/, [v'] /v /, [v:] /v /, [w] /w/, [W] / /, [X] /x/, [X] /χ/, [x'] /x /, [z] /z/, [Z] / /, [z'] /z /, [Z'] / /, [z.] // and [z:] /z /. Vowel [@] / /, [@'] / /, [{] /æ/, [{:] /æ /, [}:] / /, [1] / /, [2] /ø/, [2:] /ø /, [2~] /ø/, [2~:] /ø /, [3:] / /, [6] / /, [6~] / /, [7] / /, [7:] / /, [9] /œ/, [9:] /œ /, [9~] /œ/, [9~:] /œ /, [a] /a/, [A] / /, [a.] //, [a:] /a /, [A:] / [A~] / /, [A~:] / /, [A^] / /, [a_1] /a /, [a~] /ã/, /, [e] /e/, [E] / /, [e:] /e /, [E:] / /, [E:~] / /, [e_1] /e /, [E_1] / /, [e~] /e/, [E~] / /, [e~:] /e /, [i] /i/,[I] / /, [i.] //, [i:] /i /, [I:] / /, [i_1] /i /, [i~] /ĩ/, [i~:] /i /, [o] /o/, [O] / /, [o:] /o /, [O:] / /, [O_1] / /, [o~] /õ/, [o~:] /õ /, [Q] / /, [u] /u/, [U] / /, [u.] //, [u:] /u /, [u_0] /u/, [u_1] /u /, [u~] /ũ/, [V] / /, [y] /y/, [Y] / /, [y:] /y /, [Y:] / /, [y~] /y/and [y~:] /y /. 2.6 Evaluation We obtained five language’s lists of phonemes from a few resources of linguistics on the net which we refer as control list. We then compared the list from control list with our list of global phoneme and looked for phoneme which may not include in the list. The phoneme set obtained as a control set are Latin, German, French, Italian and English (RP). In Received Pronunciation of English, there are 45 phonemes, 49 for German, 33 for French, 30 for Latin and 36 for Italian. The list of IPA of the languages will be given in section are as follows: English RP /p/, /b/, /m/, /f/, /v/, / /, /w/, /θ/, /ð/, /t/, /d/, /n/, /s/, /z/, / /, /r/, /l/, / /, / /, /j/, /k/, /g/, /ŋ/, /h/, /æ/, / / /, / /, /e/, / /, / /, /i /, / /, /u:/, / /, / /, /e/, /a /, / /, / /, /a /, / /, /e / and / / German /a/, / /, /a /, /a e/, /a o/, /b/, /ç/, / /, / /, /d/, /e/, / /, / /, / /, /e /, / /, /e /, / /, /f/, / /, /h/, /i/, / /, /i /, /j/, /k/, /l/, /m/, Diphtongs [@I] / /, [@U] / /, [2~j] /ø /, [2j] /ø /, [6~j~] / /, [9~j] /œ /, [9j] /œ /, [9u] /œu/, [9y] /œy/, [A~w] / w/, [aE] /a /, [ai] /ai/, [aI] /a /, [Ai] / i/, [ai:] /ai /, [Aj] / j/, [au] /au/, [aU] /a /, [Au] / u/, [au:] /au /, [Aw] / w/, [ay] /ay/, [e@] /e /, [e~w] /e w/, [ea] /ea/, [eA] /e /, [Ea] / a/, [ei] /ei/, [eI] /e /, [Ei] / i/, [Ej] / j/, [el] /e /, [ew] /ew/, [Ew] / w/, [ey] /ey/, [I@] / /, [ie] /ie/, [iE] /i /, [Ie] / e/, [iw] /iw/, [o_X] /ŏ/, [OE] / /, [oi] /, /oi/, [Oi] / i/, [OI] / /, [oj] /oj/, [ou] /ou/, [ou:] /ou /, [ow] /ow/, [oy] /oy/, [OY] / /, [U@] / [ui] /ui/, [uo] /uo/, [uO] /u /, [Uo] / o/ and [Uy] / y/. /n/, /ŋ/, /o/, /ø/, /o /, /ø /, /œ/, /p/, /r/, / /, /s/, /t/, /ts/, /u/, / /, /u /, /x/, / /, /y /, /z/ and / / French /i/, /e/, / /, /a/, / /, / /, /o/, /u/, /ø/, /œ/, / /, / /, /õ/, /œ/, /m/, /n/, /j/, /w/, / /, /p/, /t/, /k/, /b/, /d/, /g/, /f/, /s/, / /, /v/, /z/, / /, /l/ and / / Latin /a/, / i/, / u/, /b/, / /, /d/, /d /, / /, / /, / u/, /f/, / /, /i/, /j/, /k/, /l/, /m/, /n/, / /, /ŋ/, /p/, /r/, / /, /s/, /t/, /t /, /ts/, /u/, /w/ and /z/ Italian /a/, /a i/, /a u/, /b/, / /, /d/, /dz/, /d /, /e/, / /, / /, / i/, / u/, /f/, / /, /i/, /j/, /k/, /l/, /m/, /n/, / /, /ŋ/, /o/, /p/, /r/, / /, /s/, /t/, /t /, /ts/, /u/, /v/, /w/, / / and /z/ For each control phoneme, the instance is compared with the whole list of phoneme that we constructed. Therefore we are not comparing the availability of phoneme restricted to the language only. This procedure is conducted to ensure that the multilingual phonemes constructed would be able to represent most frequently use sound in the language sample. If we included the stated justification and adapted the phonemes in the control list with the one that we have already constructed, we find six non-matching phonemes for French, another six for Italian, three for Latin and ten for German. The very high number of non-match phonemes for German is because German uses a lot of palatalised and nasalized sounds with a lot of variation within their diphtongs in which the MBROLA database simply needs to modify the value during synthesis. We find that the consonants and the vowel of German matched well with our list. We have described a method of extracting phoneme sets from existing speech resource. The evaluation shows that we have a reasonable list of multilingual phonemes constructed but it will still require some refinement if the resources are available. This is possible for most IndoEuropean languages where a lot of research has been previously conducted on the corresponding phonetics instances. But for resource poor languages, having more than half of the phonemes available is better than loaning the whole phoneme set from another language. References Altosaar, T., Karjalainen, M. and Vainio, M. (1996). A Multilingual Phonetic Representation and Analysis System For Different Speech Databases. In the Proceedings of the 4th International Conference on Spoken Language Processing (ICSLP1996). Philadelphia, USA. Hieronymus, J. (1993). ASCII Phonetic Symbols for the World's Languages: Worldbet. In Journal of AT&T Bell Laboratories, Technical Memo}, Vol. 23. MBROLA Group (2005). The MBROLA PROJECTS – Towards a Freely Available Multilingual Speech Synthesizer. From the Internet. Théorie des Circuits et Traitement du Signal (TCTS). Mons Belgium. Accessed on 17 August 2009. URL: http://tcts.fpms.ac.be/synthesis/mbrola.html Romsdorfer, H. and Pfister, B. (2007). Text Analysis and Language Identification for Polyglot Text-to-Speech Synthesis. In Speech Communication, Vol. 49, Elsevier. Suverkrop, B. (2009). IPA Source, IPA Transcription and Literal Translation of Songs and Arias. From the Internet. Accessed on 17th of August 2009. URL: http://www.ipasource.com/diction help Tovey, B. (2009). The IPA for RP Accent, English Language and Literature. From the Internet. Accessed on 17th of August 2009. URL: http://www.bethtovey.com/language/ipa.html Wells, J.C. (2003). Computer-coding the IPA: a proposed extension of SAMPA. University College London. Accessed on 17th August 2009. URL:http://www.phon.ucl.ac.uk/home/sampa/ipasamx.pdf 3. Discussion & Conclusion There are five languages which have been compared with our list of multilingual phonemes. There are English (RP), Latin, Italian, German and French which we refer as control phonemes list. The set of phonemes used are obtained from The International Phonetic Alphabet for the RP Accent (Tovey, 2009) and IPA Source (Suverkrop, 2009). During evaluation, we compared each control phonemes for each language with our multilingual phonemes list. However, the result is not a 100% match. For English RP, the phonemes which are not match with our list are only two phonemes: /ɹ / and /ɜ /. For other languages however, there are some phoneme instance which we had decided to class as ‘noise’ phoneme during our phoneme set construction. We justify this as follows: with the MBROLA list, we found that there are phonemes which are a combination of two consonants that is presented as a single phoneme unit. We decided to remove them since it is possible to construct the transcription using two different phonemes which already in the list. Also, in MBROLA, the lengthening of vowel and germination of consonants are represented using the symbol [ ]. For some languages which use repetition to represent germination, we have substituted them back by using colon [:]. Therefore we also applied the same concept during the phoneme set construction. We also ignore the repetitive phonemes which are declared in MBROLA with syllable break between them with same reason like the first justification.
x

Log In

or reset password

Reset Password

Enter the email address you signed up with, and we'll send a reset password email to that address

Academia © 2012