diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c3c5f0f5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# intermediate build output: + +*.o + +# libraries + +src/libespeak.a +src/libespeak.so* + +# programs: + +platforms/*/espeak-phoneme-data +src/espeak +src/espeakedit +src/speak + +# espeak-data + +dictsource/en_extra + +espeak-data/dictsource +espeak-data/phsource +espeak-data/*_dict +espeak-data/intonations +espeak-data/phondata +espeak-data/phondata-manifest +espeak-data/phonindex +espeak-data/phontab + +# other (from espeak development releases) + +espeak-data/config +phsource/compile_prog_log diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..24594818 --- /dev/null +++ b/Makefile @@ -0,0 +1,56 @@ +PREFIX=/usr +BINDIR=$(PREFIX)/bin +DATADIR=$(PREFIX)/share/espeak-data + +PLATFORM=big_endian + +.PHONY: all clean distclean espeak espeakedit espeak-phoneme-data espeak-data + +##### standard build actions: + +all: espeak espeakedit espeak-data + +install: + cd src && make DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install && cd .. + install -m 755 src/espeakedit $(DESTDIR)$(BINDIR) + +clean: + cd src && rm -f *.o *~ && cd .. + +distclean: clean + cd src && rm -f libespeak.a libespeak.so.* speak espeak espeakedit && cd .. + cd platforms/$(PLATFORM) && rm -f espeak-phoneme-data && cd ../.. + rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest + cd espeak-data && rm -f *_dict && cd .. + +##### build targets: + +espeak: + cd src && make PREFIX=$(PREFIX) && cd .. + +espeakedit: + cd src && make -f Makefile.espeakedit PREFIX=$(PREFIX) && cd .. + +espeak-phoneme-data: + cd platforms/$(PLATFORM) && make PREFIX=$(PREFIX) && cd ../.. + +espeak-data-dir: + rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest + cp -a phsource espeak-data/phsource + cp -a dictsource espeak-data/dictsource + +espeak-data: espeakedit espeak-data-dir + rm -rf $(HOME)/espeak-data + ln -sv $(PWD)/espeak-data $(HOME)/espeak-data + src/espeakedit --compile + +##### dictionaries: + +en: dictsource/en_rules dictsource/en_list + rm -f dictsource/en_extra + make all + ../cainteoir-engine/tests/dictionary.py ../cainteoir-english/data/reece --exception-dictionary > dictsource/en_extra + make espeak-data + ../cainteoir-engine/tests/dictionary.py ../cainteoir-english/data/reece | grep -F fail + wc -l dictsource/en_extra + diff --git a/README b/README new file mode 100644 index 00000000..2f644136 --- /dev/null +++ b/README @@ -0,0 +1,17 @@ +Changes to eSpeak to support building on a POSIX system by running make. + +This does the following things: + 1/ compile the libespeak library; + 2/ compile the speak and espeak command-line applications; + 3/ compile the espeakedit application; + 4/ compile the voice data, creating an espeak-data directory. + +This allows you to run: + + make && sudo make install + +and end up with a working espeak application. + + +This branch also contains some bug fixes and improvements that get +sent back upstream. diff --git a/dictsource/af_list b/dictsource/af_list old mode 100755 new mode 100644 diff --git a/dictsource/af_rules b/dictsource/af_rules old mode 100755 new mode 100644 diff --git a/dictsource/ak_rules b/dictsource/ak_rules new file mode 100644 index 00000000..2ee9444b --- /dev/null +++ b/dictsource/ak_rules @@ -0,0 +1,113 @@ +// This file is UTF8 encoded +// Spelling to phoneme rules for Akan (Ghana) + + +.group a + a a + +.group b + b b + +.group c + c k + c (e s + c (i s + +.group d + d d + dw dZ + dw (i dZ; + +.group e + e e + +.group f + f f + +.group g + g g + gy dz; + +.group h + h h + h (i C + hw (i Cw + hy C + +.group i + i i + +.group j + j dZ + +.group k + k k + ky tS; + +.group l + l l + +.group m + m m + +.group n + n n + n (k N + ng N: + ng (i n^ + nj n^ + nw N:w + nw (i n^ + ny (i n^: + nny (i n^: + +.group o + o o + +.group p + p p + +.group ɛ + ɛ E + +.group q + q k + qu kw + +.group r + r R + +.group s + s s + +.group t + t t + t (i tC + +.group u + u u + +.group v + v v + +.group w + w w + +.group ɔ + ɔ O + +.group x + x ks + _) x z + +.group y + y j + K) y (K i + +.group z + z z + +.group + $ dOlaR + + diff --git a/dictsource/az_list b/dictsource/az_list new file mode 100644 index 00000000..f174747c --- /dev/null +++ b/dictsource/az_list @@ -0,0 +1,80 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Azerbaijani + + +// Numbers +_0 s@f'@R +_1 b'iR +_2 ic'i +_3 'ytS +_4 d'WRd +_5 b'eS +_6 alt'@ +_7 jedd'i +_8 s&Cc'iz +_9 dogg'uz +_1X 'on +_2X ijiRm'i +_3X ot'uz +_4X g'@Rx +_5X &ll'i +_6X altm'@S +_7X jetm'iS +_8X s&Cs'&n +_9X doxs'an +_0C j'yz +_0M1 m'in +_0M2 milj'on +_0M3 milj'aRd +_dpt _viRg,yl_| // ?? + + +// Function words + // personal pronouns +mən $u+ +sən $u+ +o $u+ +biz $u+ +siz $u+ +onlar $u+ + + // possessive pronouns +mənim $u+ +sənin $u+ +onun $u+ +bizim $u+ +sizin $u+ +onların $u+ + + + +// Character names +b be +c dZe +ç tSe +d de +f fe +g Je +ğ Qe +h he +x xe +j Ze +k ka +q ge +l el +m em +n en +_o o +p pe +r eR +s se +ş Se +t te +v ve +w dubElv'E +y je +z ze + + + diff --git a/dictsource/az_rules b/dictsource/az_rules new file mode 100644 index 00000000..3d208745 --- /dev/null +++ b/dictsource/az_rules @@ -0,0 +1,111 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Azerbaijani + +// Stress rule: Right-most vowel, but stop before the vowel which is +// marked as unstressed [%]. + + +.group a + a a + +.group b + b b + +.group c + c dZ + +.group ç + ç tS + +.group d + d d + +.group e + e e + +.group ə + ə & + +.group f + f f + +.group g + g J + +.group ğ + ğ Q + +.group h + h h + +.group x + x x + +.group ı + ı @ + +.group i + i i + +.group j + j Z + +.group k + k c + k (K C + +.group q + q g + +.group l + l l + +.group m + m m + +.group n + n n + +.group o + o o + +.group ö + ö W + +.group p + p p + +.group r + r R + A) r (A * + +.group s + s s + +.group ş + ş S + +.group t + t t + +.group u + u u + +.group ü + ü y + +.group v + v v + +.group w + w w + +.group y + y j + +.group z + z z + +.group + ä & diff --git a/dictsource/bg_list b/dictsource/bg_list new file mode 100644 index 00000000..132080a0 --- /dev/null +++ b/dictsource/bg_list @@ -0,0 +1,266 @@ +// translation rules for Bulgarian +// This file is UTF-8 encoded + + +// words of one letter +в $combine +а $u $combine +е $u +й i $u +и $u $pause +у $u $combine +с $combine +г god'ina $hasdot + +// letter names +б b@ +_в v@ +в v@ $atend +_г g@ +д d@ +ж Z@ +з z@ +_й 'ikr,atko +к k@ +л l@ +м m@ +н n@ +п p@ +р r@ +_с s@ +с s@ $atend +т t@ +ф f@ +х x@ +ц ts@ +ч tS@ +ш S@ +щ St@ +ь 'erm,aL@k +ъ 'erg,olam + +_а a +_е e +_и i +_у u + +// latin letter names +v _^_EN // not Roman number +x _^_EN // not Roman number + +// symbols +% prots'ent $max3 ++ plus $max3 += e||r'avno||n,a +# d'i;es; $max3 +/ nakL'onena||tSert,a +\ obr'atna||nakL'onena||tSert,a +* zvezd'itSka $max3 +@ kl'omba // кльомба +& _^_EN +_& ampers'ant + +_, zapet'aja + +_! udiv'itelen +_" kav'itSki +_' apostr'of +_( l;'ava||sk'oba +_) d;,asna||sk'oba +- $pause +_- tir,e +_: dvuet'otSie +_; t,otSka||i||zapet'aja +_< po||m'alko +_> po||gol;'amo +_? v@pros'itelen +_[ l;,ava||kvadr,atna||sk'oba +_] d;,asna||kvadr,atna||sk'oba +^ kol'ibka +__ d,olna||tSert'a +_` graf +_{ l;,ava||v@lno,obrazna||sk'oba +_| vertik,alna||tSert'a +_} d;,asna||v@lno,obrazna||sk'oba +_~ v@ln'itSka +_. t'otSka +_Ў obr,aten||udiv'itelen +_ї obr,aten||v@pros'itelen +_« l;,ava||dv,oina||tri,@galna||sk'oba +… $pause +_… mnogot'otSie +_ѓ florin +_† _^_EN +_‡ _^_EN +_– k,@so||tir'e +_— d,@lgo||tir'e +_¦ prek,@snata||tSert'a +_» d;,asna||dv,oina||tri,@galna||sk'oba + +№ n'omer +// abbreviations +(http ://) ejtSti:ti:'pi:_ + +ап apartam'ent $dot +бл blok $dot +бул bulev,art $dot +вх vhot $dot +гр grat $dot +год god'ina $dot +ет et'aS $dot +лв l,eva $dot +пл ploSt'at $dot +стр str'anitsa $dot +ст stot'inki $dot +ул ulitsa $dot +чл tSlen $dot + +// numbers +_0 n'uLa +_1 edn'o +_2 dv'e +_3 tr'i +_4 tS'etiri +_5 p'et +_6 S'est +_7 s'edem +_8 'osem +_9 d'evet +_10 d'eset +_11 ed,in'adeset +_12 dvan'adeset +_13 trin'adeset +_14 tS,etirin'adeset +_15 petn'adeset +_16 Sestn'adeset +_17 s,edemn'adeset +_18 ,osemn'adeset +_19 d,evetn'adeset +_2X dv'adeset +_3X tr'ideset +_4X tSetir'ideset +_5X petdes'et +_6X Sestdes'et +_7X sedemdes'et +_8X osemdes'et +_9X devetdes'et + +_0C st'otin +_1C st'o +_2C dv'esta +_3C tr'ista + +_0M1 C'iladi +_1M1 Cil'ada + +_0M2 mili'ona +_1M2 ed'in||mili'on +_2M2 dv'a||mili'ona + +_0M3 mili'arda +_1M3 ed'in||mili'ard +_2M3 dv'a||mili'arda + +_0and _%i +_dpt _ts;'aLo_i|| + + +// function words + +//prepositions +без $u $combine +вместо $u $combine +връз $u $combine +всред $u $combine +въз $u $combine +въпреки $u $combine +върху $u $combine +до $u $combine +додето $u $combine +за $u $combine +зад $u $combine +заради $u $combine +из $u $combine +извън $u $combine +измежду $u $combine +изпод $u $combine +като $u $combine +край $u $combine +към $u $combine +между $u $combine +на $u $combine +над $u $combine +накрай $u $combine +наместо $u $combine +насред $u $combine +низ $u $combine +окажа $u $combine +около $u $combine +освен $u $combine +откъм $u $combine +по $u $combine +под $u $combine +покрай $u $combine +помежду $u $combine +поради $u $combine +посред $u $combine +пред $u $combine +преди $u $combine +през $u $combine +при $u $combine +против $u $combine +свръх $u $combine +след $u $combine +според $u $combine +спроти $u $combine +спрямо $u $combine +сред $u $combine +срещу $u $combine + със $u $combine + чрез $u $combine + +//conjunctions +ако $u $combine +ала $u $combine +ама $u $combine +или $u $combine +но $u $combine +пък $u $combine +хем $u $combine +че $u $combine + + +//particles +се $u +ма $u +бре $u +мари $u +май $u +уж $u +дано $2 +ли $u +не $u $strend +да $u $strend +ето $1 +ще $u +най $1 +нека $1 +еди $1 +току $2 +годе $1 + +//short pronoun forms +ми $u +ти $u +му $u +ни $u +ви $u +им $u + +//forms of "to be" for Present tense +съм $u +си $u +сме $u +сте $u +са $u + diff --git a/dictsource/bg_listx b/dictsource/bg_listx new file mode 100644 index 00000000..024a443a --- /dev/null +++ b/dictsource/bg_listx @@ -0,0 +1,2791 @@ +абанос $3 +абат $2 +абдал $2 +абзац $2 +аблаут $1 +абонат $3 +аборт $2 +абсурд $2 +абсцес $2 +авангард $3 +аванс $2 +авантаджия $2 +авиомодел $5 +авиомотор $5 +автобус $3 +автогол $3 +автограф $3 +автозавод $4 +автоклав $3 +автократ $3 +автомат $3 +автомобил $4 +автомонтьор $4 +автопилот $4 +автопортрет $4 +авторитет $4 +автостоп $3 +автотранспорт $4 +ага $2 +агломерат $4 +агнец $2 +агрегат $3 +агреман $3 +агробиолог $5 +агроном $3 +адаш $2 +адвокат $3 +адепт $2 +адет $2 +адмирал $3 +адреналин $4 +адрес $2 +адресант $3 +адресат $3 +адютант $3 +аеродрум $4 +аерозол $4 +аеронавт $4 +аероплан $4 +аеростат $4 +аеротранспорт $5 +ажур $2 +азбучник $1 +азимут $1 +азот $2 +айран $2 +академик $4 +акваланг $3 +аквамарин $4 +акванавт $3 +акварел $3 +аквариум $2 +акведукт $3 +акорд $2 +акордеон $4 +акордьор $3 +акробат $3 +акроним $3 +акростих $3 +актьор $2 +акушер $3 +акциз $2 +акционер $4 +акъл $2 +алабаш $3 +аламинут $4 +алармаджия $2 +албатрос $3 +албинос $3 +албум $2 +албумин $3 +алдехид $3 +алианс $3 +ализарин $4 +алкалоид $4 +алкохол $3 +алкохолик $4 +аллах $2 +алманах $3 +алтън $2 +алхимик $3 +аматьор $3 +амортисьор $4 +амулет $3 +амур $2 +аналог $3 +ананас $3 +анасон $3 +анатоксин $4 +анатом $3 +англофил $3 +англофоб $3 +анекдот $3 +анемограф $4 +анестезиолог $6 +анион $3 +анкетьор $3 +анклав $2 +анод $2 +анонс $2 +антибиотик $5 +антиген $3 +антигерой $4 +антидепресант $5 +антипасат $4 +антипиретик $5 +антипод $3 +антироман $4 +антитоксин $4 +антифриз $3 +антициклон $4 +антоним $3 +антракс $2 +антракт $2 +антрополог $4 +анфас $2 +анюитет $4 +аорист $2 +апарат $3 +апаш $2 +апел $2 +апломб $2 +апогей $3 +апокриф $3 +апологет $4 +апостроф $3 +апотеоз $4 +арабия $2 +аранжор $3 +арбалет $3 +аргон $2 +аргонавт $3 +ареал $3 +арест $2 +арестант $3 +ариергард $4 +аристократ $4 +армаган $3 +аромат $3 +арпаджик $3 +арсен $2 +арсенал $3 +артък $2 +археолог $4 +архиерей $4 +архипелаг $4 +архитект $3 +аршин $2 +асансьор $3 +аскер $2 +аскет $2 +асонанс $3 +аспект $2 +аспирант $3 +аспирин $3 +астероид $4 +астраган $3 +астролог $3 +астронавт $3 +астроном $3 +асфалт $2 +асфалтобетон $5 +атаман $3 +атентат $3 +атестат $3 +атлаз $2 +атлас $2 +атлет $2 +атол $2 +атрибут $3 +аукцион $4 +ауспух $1 +афект $2 +афинитет $4 +афиш $2 +афронт $2 +ахат $2 +ацетилен $4 +ацетон $3 +бабуин $3 +бадем $2 +базалт $2 +баир $2 +байонет $3 +бакенбард $3 +бактериолог $5 +бакшиш $2 +бакър $2 +баланс $2 +баласт $2 +балван $2 +балдахин $3 +балет $2 +балетмайстор $2 +балкан $2 +балкон $2 +балнеолог $4 +балон $2 +балсам $2 +балтон $2 +бамбук $2 +банан $2 +бандерол $3 +банкер $2 +банкет $2 +банкрут $2 +баобаб $3 +барабан $3 +барбун $2 +бардук $2 +барелеф $3 +баритон $3 +баровец $1 +барон $2 +баронет $3 +барут $2 +басейн $2 +баскетбол $1 +бастион $3 +бастун $2 +батальон $3 +батат $2 +бацил $2 +башибозук $4 +баща $2 +бащичко $1 +беглец $2 +беглик $2 +бедуин $3 +бежанец $3 +безброй $2 +безир $2 +безистен $3 +бекас $2 +бекон $2 +беловлас $3 +белокор $3 +белот $2 +белтък $2 +бемол $2 +бенефис $3 +бензин $2 +бензол $2 +бербер $2 +берекет $3 +бетон $2 +бетоновоз $4 +бешамел $3 +биберон $3 +библиограф $4 +библиоман $4 +библиофил $4 +бидон $2 +бизон $2 +бикарбонат $4 +биквадрат $3 +билет $2 +билион $3 +бином $2 +биограф $3 +биолог $3 +биомицин $4 +биплан $2 +бисмут $2 +бисулфат $3 +бифтек $2 +блондин $2 +блъфьор $2 +боаз $2 +богаташ $3 +богомил $3 +богослов $3 +бодеж $2 +бодигард $3 +бодил $2 +боец $2 +божур $2 +боздуган $3 +бойкот $2 +бокал $2 +боклук $2 +боксьор $2 +болид $2 +бонбон $2 +бордей $2 +борец $2 +борсук $2 +бостан $2 +ботаник $3 +ботуш $2 +бохем $2 +бракониер $4 +брамин $2 +братовчед $3 +бригадир $3 +брикет $2 +брилянтин $3 +брокат $2 +броунинг $1 +бръмбар $1 +брътвеж $2 +брюнет $2 +будкаджия $1 +букет $2 +букмейкър $1 +буксир $2 +булгур $2 +булдог $2 +булевард $3 +бульон $2 +бумеранг $3 +бумтеж $2 +буркан $2 +бутан $2 +бутон $2 +бушмен $2 +бушон $2 +бълвоч $2 +българин $1 +българофил $4 +българофоб $4 +бързоног $3 +бързопис $3 +бътерфлай $1 +бюджет $2 +бюджетопроект $5 +бюлетин $3 +бюрек $2 +бюрократ $3 +бюфет $2 +вагон $2 +вазелин $3 +ваксаджия $1 +валеж $2 +валериан $4 +вампир $2 +вандал $2 +ванилин $3 +варварин $1 +варел $2 +вариант $3 +васал $2 +вашенец $1 +вдовец $2 +везир $2 +велзевул $3 +великан $3 +велосипед $4 +велур $2 +венеролог $4 +венец $2 +вентил $2 +верев $2 +вермут $2 +верноподаник $3 +веронал $3 +вертеп $2 +вертолет $3 +вестовой $3 +ветеран $3 +ветрец $2 +ветровал $3 +ветрогон $3 +ветромер $3 +ветроход $3 +вибрафон $3 +вибробетон $4 +вивариум $2 +видеодисплей $5 +видеосигнал $5 +видеотелефон $6 +видеотерминал $6 +видеофилм $4 +византолог $4 +визон $2 +визьор $2 +виконт $2 +вилает $3 +виртуоз $3 +вискозитет $4 +витамин $3 +витриол $3 +вицеадмирал $5 +вицекрал $3 +влагомер $3 +властелин $3 +воайор $3 +воал $2 +водевил $3 +водовъртеж $4 +вододел $3 +водоем $3 +водолаз $3 +водолей $3 +водомер $3 +водоотвод $4 +водопад $3 +водопой $3 +водопровод $4 +водораздел $4 +водород $3 +военноинвалид $6 +войник $2 +войниклък $3 +вокал $2 +волан $2 +волейбол $1 +врабец $2 +вражалец $3 +връстник $2 +вулкан $2 +вундеркинд $1 +въглеводород $5 +въгледобив $3 +въглерод $3 +въглехидрат $4 +възнак $1 +възпитаник $2 +възторг $2 +възход $2 +вълнолом $3 +въпрос $2 +вървеж $2 +вързоп $2 +въртеж $2 +въртоп $2 +габардин $3 +габровец $1 +гавот $2 +газолин $3 +газомер $3 +газообмен $4 +газопровод $4 +гайтан $2 +галант $2 +галваноскоп $4 +галеник $1 +галон $2 +галоп $2 +галош $2 +галфон $2 +гамен $2 +гарант $2 +гардероб $3 +гардеробиер $5 +гарнизон $3 +гастрол $2 +гастроном $3 +гевгир $2 +геврек $2 +генерал $3 +генералисимус $4 +генералитет $5 +генотип $3 +геноцид $3 +географ $3 +геолог $3 +гергеф $2 +гердан $2 +герен $2 +германофил $4 +германофоб $4 +герой $2 +герундиум $2 +гестаповец $2 +гешефт $2 +гигант $2 +гимнастик $3 +гинеколог $4 +главорез $3 +главоч $2 +глагол $2 +гладник $2 +гласпапир $3 +глашатай $3 +глиган $2 +глицерин $3 +глупец $2 +гмурец $2 +гнилоч $2 +гоблен $2 +говедовъд $4 +годеж $2 +годеник $3 +големец $3 +гологан $3 +гондолиер $4 +гороцвет $3 +господин $3 +гостенин $1 +готован $3 +грабеж $2 +гравьор $2 +градеж $2 +градец $2 +гражданин $1 +граматик $3 +грамофон $3 +грандоман $3 +грандхотел $3 +гратисчия $1 +графолог $3 +графоман $3 +гребец $2 +гредоред $3 +гримьор $2 +гроздобер $3 +грозник $2 +гросмайстор $1 +гръмоотвод $4 +гулаш $2 +гурбет $2 +гърлобол $3 +гърмеж $2 +гювеч $2 +гюрук $2 +дактил $2 +далавераджия $3 +далекоглед $4 +далекомер $4 +далекопровод $5 +дамазлък $3 +дамаскин $3 +двойкаджия $1 +дворец $2 +двубой $2 +двучлен $2 +дебелан $3 +дебеломер $4 +дебит $1 +дебитор $1 +дебютант $3 +девиз $2 +дегенерат $4 +деец $2 +дезертьор $3 +дезодорант $4 +декан $2 +деканат $3 +декар $1 +декор $2 +декрет $2 +декстрин $2 +делегат $3 +деликатес $4 +делириум $2 +делител $1 +делфин $2 +делфинариум $3 +демагог $3 +демограф $3 +демократ $3 +демонстрант $3 +дендролог $3 +депозит $2 +депресант $3 +депутат $3 +дервиш $2 +деребей $3 +дериват $3 +дерматолог $4 +десант $2 +десерт $2 +десетобой $4 +деспот $2 +дестилат $3 +детайл $2 +дефект $2 +децибел $3 +децимал $3 +джентълмен $1 +джолан $2 +диабет $3 +диабетик $4 +диагонал $4 +диалект $3 +диалектик $4 +диалектолог $5 +диалог $3 +диамант $3 +диапазон $4 +диаскоп $3 +диафилм $3 +диван $2 +диверсант $3 +диез $2 +дизайн $2 +дизелмотор $4 +диктат $2 +диктофон $3 +дилаф $2 +дилетант $3 +дилижанс $3 +димоотвод $4 +динар $1 +дингил $2 +диод $2 +дипломат $3 +дискант $2 +дисонанс $3 +диспансер $3 +диспут $2 +дитирамб $3 +диференциал $5 +дифтонг $2 +дифузьор $3 +длъжник $2 +доайен $3 +доберман $1 +добив $1 +доведеник $2 +довереник $2 +догматик $3 +договор $1 +доклад $2 +докторат $3 +доктринер $3 +долап $2 +долар $1 +домакин $3 +домат $2 +доминион $4 +домоуправител $4 +домофон $3 +донаборник $2 +донжуан $3 +дописник $1 +драгун $2 +драматург $3 +дребосък $3 +дресьор $2 +дръвник $2 +дублет $2 +дубликат $3 +дубльор $2 +дудук $2 +дуел $2 +дует $2 +дукат $2 +дунапрен $3 +дъждец $2 +дъждобран $3 +дъждомер $3 +дългуч $2 +дърводобив $3 +дърволаз $3 +дърмон $2 +дюшек $2 +евкалипт $3 +евнух $2 +египтолог $4 +египтянин $2 +еделвайс $1 +едночлен $3 +ежемесечник $3 +ежеседмичник $3 +език $2 +езиковед $4 +екзистенц $3 +екип $2 +еклектик $3 +еколог $3 +екран $2 +екскурзиант $4 +екскурзовод $4 +експерт $2 +експонат $3 +експорт $2 +експрес $2 +екстаз $2 +екстериор $4 +екстернант $3 +екстракт $2 +ексцентрик $3 +елек $2 +електрик $3 +електроагрегат $6 +електрограф $4 +електрод $3 +електродобив $4 +електрожен $4 +електроинженер $6 +електромер $4 +електромонтьор $5 +електромотор $5 +електрон $3 +електропровод $5 +електроскоп $4 +елен $2 +елизиум $2 +еликсир $3 +елипсоид $4 +елмаз $2 +емайл $2 +ембриолог $4 +ембрион $3 +емигрант $3 +емир $2 +емпирик $3 +еничар $2 +еничарин $2 +енориаш $4 +ентомолог $4 +ентусиаст $4 +епигон $3 +епиграф $3 +епизод $3 +епилептик $4 +епилог $3 +епитет $3 +епитрахил $4 +ербап $2 +ерген $2 +еретик $3 +ерзац $2 +ерцхерцог $3 +есесовец $2 +ескимос $3 +ескорт $2 +еснаф $2 +естествовед $4 +естет $2 +еталон $3 +етан $2 +етап $2 +етикет $3 +етил $2 +етимолог $4 +етнограф $3 +ефект $2 +ефир $2 +ехолот $3 +ехтеж $2 +ечемик $3 +ешафод $3 +ешелон $3 +жакет $2 +жалон $2 +жамбон $2 +жандарм $2 +жаргон $2 +жартиер $3 +жасмин $2 +желатин $3 +железобетон $5 +жених $2 +жертвеник $1 +жетон $2 +живец $2 +живот $2 +животновъд $4 +жигльор $2 +жираф $2 +жироскоп $3 +жокей $2 +жонгльор $2 +жребец $2 +журнал $2 +жълтък $2 +забавител $2 +забой $2 +забраван $3 +завалия $1 +завареник $2 +завод $2 +завой $2 +заговор $1 +закон $2 +законовед $4 +законопроект $5 +залив $1 +залог $2 +замах $2 +замисъл $1 +зандан $2 +запас $2 +запор $2 +запъртък $1 +зарзават $3 +заслон $2 +застой $2 +затвор $2 +заточеник $2 +захарин $3 +захлас $2 +звеновод $3 +звънец $2 +звънтеж $2 +зевзек $2 +зеленчук $3 +земемер $3 +зефир $2 +зехтин $2 +злодей $2 +зограф $2 +зоолог $3 +зоотехник $4 +зрелостник $1 +зулум $2 +зъбец $2 +зъбобол $3 +зъболекар $3 +зъботехник $4 +ибришим $3 +игленик $3 +идеал $3 +идеолог $4 +идиом $3 +идиот $3 +изговор $1 +изкуствовед $4 +изотоп $3 +изпит $1 +изправител $2 +изпълком $3 +изрив $1 +изток $1 +източник $1 +изумруд $3 +иконом $3 +иконостас $4 +илик $2 +именник $1 +имигрант $3 +имот $2 +импас $2 +импеданс $3 +импорт $2 +импулс $2 +имунитет $4 +инат $2 +инвалид $3 +индивид $3 +индус $2 +инженер $3 +инициал $4 +инсектицид $4 +инспекторат $4 +инстинкт $2 +институт $3 +инструментариум $4 +инсулин $3 +инсулт $2 +интеграл $3 +интелект $3 +интендант $3 +интервал $3 +интерес $3 +интериор $4 +интернат $3 +интернационал $6 +интерфейс $3 +интригант $3 +инфант $2 +инфаркт $2 +инфилтрат $3 +инфразвук $1 +исполин $3 +истерик $3 +историк $3 +историограф $5 +ишиас $3 +ищах $2 +ищец $2 +йерарх $2 +йероглиф $3 +йодоводород $5 +йодоформ $3 +кабинет $3 +кабриолет $4 +кавал $2 +кавалер $3 +кадаиф $3 +каданс $2 +кадастрон $3 +кадем $2 +кадет $2 +кадрил $2 +кадровик $3 +казан $2 +казеин $3 +каиш $2 +калабалък $4 +калай $2 +каламбур $3 +калдъръм $3 +калейдоскоп $4 +калем $2 +калиграф $3 +калкан $2 +калобран $3 +калцун $2 +калъп $2 +калъф $2 +камбуз $2 +камбур $2 +камериер $4 +камертон $3 +камион $3 +камшик $2 +камъш $2 +канал $2 +каналия $2 +канап $2 +кандидат $3 +канибал $3 +канон $2 +кантарион $4 +кантон $2 +кантонер $3 +каньон $2 +каолин $3 +капан $2 +капацитет $4 +капитал $3 +капитан $3 +капитулант $4 +капишон $3 +капкомер $3 +каприз $2 +капчук $2 +карабинер $4 +карагьоз $3 +каракул $3 +карамбол $3 +карамел $3 +карамфил $3 +карат $2 +караул $3 +карбид $2 +карбол $2 +карбонат $3 +карбонил $3 +кардан $2 +кардинал $3 +кардиограф $4 +кардиолог $4 +кариер $3 +кариес $1 +кармин $2 +карнавал $3 +карпуз $2 +картал $2 +картбланш $2 +картел $2 +картеч $2 +картограф $3 +картон $2 +картоф $2 +картофокомбайн $5 +карфиол $3 +касетофон $4 +касиер $3 +каскадьор $3 +каскет $2 +кастор $2 +кастрон $2 +катаджия $1 +каталог $3 +катапулт $3 +катарзис $1 +катет $2 +катион $3 +катод $2 +католик $3 +катун $2 +катър $2 +каубой $3 +каучук $1 +кауш $2 +кафез $2 +кафтан $2 +кахър $2 +кашалот $3 +кашкавал $3 +кашмир $2 +кашон $2 +каяфет $3 +квадрант $2 +квадрат $2 +квадрилион $4 +квантитет $3 +квартал $2 +квартерон $3 +квартет $2 +квартирант $3 +квинтет $2 +кебап $2 +кегелбан $1 +келепир $3 +келеш $2 +кератин $3 +керван $2 +керкенез $3 +керосин $3 +кесар $1 +кефал $2 +кивот $2 +килватер $1 +килер $2 +килим $2 +киловатчас $4 +килограм $3 +кимион $3 +кинематограф $5 +кинескоп $3 +кинжал $2 +киноапарат $5 +киноекран $4 +кинорежисьор $5 +киносалон $4 +кинофестивал $5 +кинофилм $3 +кипарис $3 +кипеж $2 +кипърец $1 +киргиз $2 +киреч $2 +кирпич $2 +киселец $1 +кислород $3 +китеник $1 +кифладжия $1 +клавесин $3 +клавир $2 +клавиш $2 +кладенец $1 +клакьор $2 +кларинет $3 +кларнет $2 +класик $2 +класьор $2 +клептоман $3 +климатик $3 +клисар $1 +клозет $2 +клонинг $2 +книгообмен $4 +книгопис $3 +коафьор $3 +кобалт $2 +кобур $2 +ковчег $2 +ковьор $2 +кодеин $3 +кожодер $3 +кожух $2 +козел $2 +козирог $1 +кокаин $3 +коктейл $2 +колаген $3 +колай $2 +колан $2 +колбас $2 +колеж $2 +колекционер $5 +колесник $3 +колет $2 +коловоз $3 +колодрум $3 +колоид $3 +колоквиум $2 +колониал $4 +колофон $3 +колхоз $2 +колчан $2 +командир $3 +комат $2 +комбайн $2 +комбайнер $3 +комбинат $3 +комбинезон $4 +комедиант $4 +комендант $3 +комик $2 +комин $2 +комисариат $5 +комисионер $5 +комитет $3 +компаньон $3 +компас $2 +компендиум $2 +комплекс $2 +комплект $2 +комплот $2 +компост $2 +компот $2 +компрес $2 +комсомол $3 +комфорт $2 +конвенционал $5 +конвой $2 +конгломерат $4 +конгрес $2 +кондоминиум $3 +кондор $2 +коневъд $3 +конезавод $4 +конец $2 +конкурс $2 +коноп $2 +консорциум $2 +конспект $2 +консулт $2 +консултант $3 +контакт $2 +контекст $2 +контраадмирал $5 +контраалт $3 +контрабас $3 +контракт $2 +контрапреврат $4 +// контрареволюционер $text ко̀нтрареволюционѐр +контраст $2 +контратенор $4 +контраудар $3 +контрафагот $4 +контрафорс $3 +контрол $2 +контрольор $3 +контур $2 +конфликт $2 +конфуз $2 +концентрат $3 +концерн $2 +концерт $2 +концертмайстор $2 +концесионер $5 +концлагер $1 +копнеж $2 +копой $2 +коптор $2 +корал $2 +коран $2 +кордон $2 +корелат $3 +корем $2 +коридор $3 +корифей $3 +корниз $2 +корсет $2 +кортеж $2 +косинус $1 +космонавт $3 +косопад $3 +костур $2 +котел $2 +котлет $2 +котлон $2 +кофеин $3 +коцкар $1 +кочан $2 +кравай $2 +крадец $2 +краснопис $3 +крачол $2 +креват $2 +кредит $1 +креол $2 +крепостник $1 +кретен $2 +кретон $2 +криминолог $4 +кринолин $3 +кристал $2 +критик $2 +кроасан $3 +кроеж $2 +крокет $2 +крокодил $3 +кромид $2 +кръвник $2 +кръвоизлив $3 +кръговрат $3 +кръгозор $3 +кръстец $2 +кръстопът $3 +ксенон $2 +ксенофоб $3 +ксилофон $3 +кубик $2 +куверт $2 +кукловод $3 +кукуруз $3 +кумец $2 +кумир $2 +кундурджия $1 +куплет $2 +купон $2 +курбан $2 +куриер $3 +куриоз $3 +курназ $2 +курорт $2 +курсант $2 +куршум $2 +кускус $2 +кусур $2 +кутсуз $2 +кутсузлук $3 +куфар $1 +кънкьор $2 +кънтеж $2 +кърджалия $1 +кърпеж $2 +кърпикожух $4 +късмет $2 +кьорфишек $1 +кючек $2 +лабиринт $3 +лаборант $3 +лабрадор $3 +лавкаджия $1 +лагерник $1 +лазарет $3 +лазарник $1 +лазур $2 +лаик $2 +лайтмотив $1 +лакей $2 +лакомец $1 +лаладжия $1 +лампион $3 +ламтеж $2 +ландграф $2 +ларинголог $4 +ларингоскоп $4 +ларингофон $4 +латекс $2 +латернаджия $2 +лауреат $4 +лафет $2 +левосектант $4 +леген $2 +легион $3 +легионер $4 +ледоход $3 +лейкопласт $3 +лейтенант $1 +лекар $1 +леководолаз $5 +лексикограф $4 +лексиколог $4 +лексикон $3 +лекторат $3 +лемур $2 +леопард $3 +лесничей $3 +лесовъд $3 +летеж $2 +летец $2 +летопис $3 +лефер $2 +либерал $3 +лигавник $1 +лигнин $2 +ликьор $2 +лилипут $3 +лимон $2 +лимонададжия $3 +линеал $3 +линотип $3 +лирик $2 +листопад $3 +литературовед $6 +литограф $3 +лицей $2 +лицемер $3 +лиценз $2 +лобут $2 +ловец $2 +логик $2 +логопед $3 +локал $2 +локум $2 +лорнет $2 +лосион $3 +луминал $3 +лунапарк $1 +лунатик $3 +луноход $3 +лъжец $2 +людоед $3 +мавзолей $3 +мавруд $2 +магазин $3 +магазинер $4 +маган $2 +магданоз $3 +магистрат $3 +магнат $2 +магнетофон $4 +магнитоскоп $4 +маджун $2 +мажор $2 +мазгал $2 +мазник $2 +мазол $2 +мазут $2 +маймунджилък $4 +майор $2 +майсторлък $3 +майтап $2 +макет $2 +макроезик $4 +максимум $1 +малчуган $3 +мамарец $3 +мамон $2 +мамул $2 +мамут $2 +манастир $3 +манаф $2 +мангал $2 +манган $2 +мандарин $3 +мандат $2 +манеж $2 +манекен $3 +маниер $3 +манифест $3 +манифестант $4 +манталитет $4 +маншет $2 +маншон $2 +маргарин $3 +маргинал $3 +маркетинг $1 +маркиз $2 +маркуч $2 +мармалад $3 +мародер $3 +марокен $3 +маршал $2 +маршрут $2 +маскарад $3 +маскарлък $3 +маслопровод $4 +маслосвет $3 +масон $2 +масраф $2 +мастодонт $3 +масур $2 +матадор $3 +математик $4 +материал $4 +материк $3 +маткап $2 +матриархат $4 +матрос $2 +маузер $1 +мафиот $3 +махагон $3 +махараджа $4 +махмурлук $3 +маховик $3 +машинопис $4 +мащаб $2 +мегават $3 +мегаломан $4 +мегафон $3 +мегахерц $3 +мегдан $2 +медал $2 +медальон $3 +медец $2 +медик $2 +медиум $1 +медодобив $3 +мезозой $3 +мезокарп $3 +мезонет $3 +меланж $2 +меланхолик $4 +менажер $3 +ментол $2 +менует $3 +меншевик $3 +меридиан $4 +месодобив $3 +месокомбинат $5 +метал $2 +металик $3 +металоид $4 +металург $3 +метан $2 +метанол $3 +метафизик $4 +метеж $2 +метеор $3 +метеорограф $5 +метеоролог $5 +метил $2 +метис $2 +методик $3 +метох $2 +метроном $3 +мехлем $2 +мехур $2 +мецанин $3 +меценат $3 +мизансцен $3 +мизантроп $3 +миколог $3 +микроб $2 +микробиолог $5 +микробус $3 +микрограф $3 +микрон $2 +микроскоп $3 +микрофилм $3 +микрофон $3 +микроязовир $5 +милиардер $4 +милионер $4 +миманс $2 +миндер $2 +миндерлък $3 +минерал $3 +минералог $4 +минижуп $3 +минимум $1 +минор $2 +миньор $2 +миокард $3 +мироглед $3 +мисионер $4 +мискет $2 +мискинлък $3 +мистик $2 +митолог $3 +младеж $2 +младенец $3 +млекозавод $4 +млекомер $3 +млеконадой $4 +многобой $3 +многочлен $3 +многоъгълник $3 +множител $1 +мобифон $1 +модел $2 +моделиер $4 +модем $2 +мозайкаджия $2 +мокет $2 +молец $2 +молитвеник $2 +молла $2 +монарх $2 +монах $2 +мониторинг $2 +монограм $3 +монолог $3 +моноплан $3 +монопол $3 +монсеньор $3 +монтьор $2 +морал $2 +мормон $2 +морук $2 +морфин $2 +мотел $2 +мотопед $3 +мотор $2 +мототрион $4 +мотоциклет $4 +мохикан $3 +мразовец $1 +мръсник $2 +музей $2 +музикант $3 +музиковед $4 +мулат $2 +мултимилионер $6 +мундир $2 +мундщук $2 +мурафет $3 +муселин $3 +мускал $2 +мускет $2 +мусон $2 +мустанг $2 +муфлон $2 +муфтаджия $1 +мъдрец $2 +мъртвец $2 +мъченик $3 +набедреник $2 +наган $2 +нагон $2 +надзор $2 +надой $2 +наивитет $4 +накит $1 +наклон $2 +налог $2 +напалм $2 +напев $2 +наполеон $4 +напречник $1 +напръстник $1 +наркоман $3 +наркотик $3 +народ $2 +народопис $4 +натюрел $3 +нафталин $3 +нахут $2 +нашенец $1 +нашественик $2 +небосвод $3 +небосклон $3 +невеж $2 +неврастеник $4 +невролог $3 +неврон $2 +невропатолог $5 +недоволник $4 +недъг $2 +некролог $3 +неметал $3 +неон $2 +неправедник $2 +непрокопсаник $3 +несесер $3 +нескопосник $2 +неурожай $4 +неуспех $3 +неутралитет $5 +неутрон $3 +нивелир $3 +никаквец $1 +никотин $3 +нитрат $2 +нишадър $3 +нишан $2 +новобогаташ $5 +нокаут $1 +нокдаун $1 +номад $2 +носорог $3 +нотариус $2 +нощес $2 +нуклеин $3 +нюанс $2 +нюйоркчанин $2 +обект $2 +обелиск $3 +обем $2 +обертон $1 +обет $2 +обзор $2 +обичай $3 +облак $1 +облог $2 +обмен $2 +обоз $2 +обой $2 +обор $2 +оборот $3 +оборотомер $5 +образец $3 +обрат $2 +обрив $1 +обсег $2 +обстрел $2 +обхват $2 +обход $2 +общественик $2 +овал $2 +овен $2 +овес $2 +овраг $2 +овцевъд $3 +одеколон $4 +озон $2 +оказион $4 +окаяник $2 +океан $3 +окомер $3 +окоп $2 +оксид $2 +октопод $3 +олигофрен $4 +олук $2 +омлет $2 +омнибус $1 +омограф $3 +омоним $3 +онбашия $1 +онколог $3 +опал $2 +опекун $3 +опиат $3 +опит $1 +опиум $1 +опозиционер $6 +оптик $2 +орангутан $2 +орел $2 +ореол $3 +оригинал $4 +ориентир $4 +ориз $2 +оркестрант $3 +орнитолог $4 +ортаклък $3 +орталък $3 +ортопед $3 +осел $2 +осил $2 +осмоъгълник $3 +остен $2 +отбив $1 +отбой $2 +отвес $2 +отвор $2 +отговор $1 +отдел $2 +отец $2 +отечественофронтовец $6 +отзив $1 +откос $2 +отлив $1 +оток $1 +отолог $3 +отпор $2 +отчет $2 +офицер $3 +официоз $4 +офсет $2 +офталмолог $4 +оцет $2 +ошав $2 +павиан $3 +павилион $4 +пагон $2 +падеж $2 +падишах $3 +пазарлък $3 +пакет $2 +пакостник $1 +палавник $1 +паламуд $3 +палеж $2 +палеограф $4 +палеонтолог $5 +палет $2 +палешник $1 +паметник $1 +памук $2 +памфлет $2 +панаир $3 +пандишпан $3 +панел $2 +панер $2 +паникьор $3 +панкреас $3 +паноптикум $2 +пансион $3 +панталон $3 +пантеон $3 +пантограф $3 +папагал $3 +паприкаш $1 +папур $2 +парабел $3 +параван $3 +параграф $3 +парад $2 +парадокс $3 +паралел $3 +паралитик $4 +паралогизъм $1 +парапет $3 +параф $2 +парафин $3 +параход $3 +парашут $3 +паритет $3 +паркет $2 +паркетин $3 +парламентьор $4 +пароним $3 +партньор $2 +парцал $2 +парцел $2 +пасажер $3 +пасианс $3 +пасквил $2 +паспорт $2 +пастел $2 +пастет $2 +пастир $2 +пасторал $3 +патолог $3 +патриарх $3 +патриархат $4 +патриот $3 +патрул $2 +пашалък $3 +пашкул $2 +певец $2 +педагог $3 +педал $2 +педант $2 +пексимет $3 +пектин $2 +пеликан $3 +пелин $2 +пелтек $2 +пеницилин $4 +пенкилер $1 +пенсионер $4 +пентагон $3 +пепелник $3 +пепсин $2 +перваз $2 +пергел $2 +пердах $2 +период $3 +перископ $3 +перон $2 +персонал $3 +перчем $2 +пестик $2 +пестил $2 +пестицид $3 +пестник $2 +петел $2 +петмез $2 +петобой $3 +петоъгълник $3 +петрол $2 +печал $2 +печат $2 +пешкир $2 +пигмей $2 +пиедестал $4 +пиетет $3 +пикет $2 +пилаф $2 +пилигрим $3 +пилон $2 +пилот $2 +пингвин $2 +пинцет $2 +пионер $3 +пипер $2 +пират $2 +пиринч $2 +пирог $2 +пироксилин $4 +пирон $2 +пиротехник $4 +пирует $3 +писар $1 +писец $2 +пискун $2 +пистолет $3 +питагор $3 +питомец $1 +питон $2 +пищов $2 +плагиат $3 +плакат $2 +планктон $2 +плановик $3 +планшет $2 +пластилин $3 +пластрон $2 +пласьор $2 +платан $2 +платеж $2 +платец $2 +платноход $3 +плебей $2 +плексиглас $3 +племенник $1 +площад $2 +плувец $2 +плутократ $3 +побой $2 +повереник $2 +повлекан $3 +поврат $2 +погром $2 +погромаджия $2 +поданик $1 +подбив $1 +подбор $2 +подем $2 +подиум $1 +подлец $2 +подмол $2 +поднос $2 +подписник $1 +подполковник $1 +подпоручик $1 +подпредседател $1 +подсекретар $1 +подслон $2 +подуправител $1 +подучастък $1 +подход $2 +поет $2 +позив $1 +позор $2 +позьор $2 +поклон $2 +покрив $1 +полевъд $3 +полегат $3 +полиглот $3 +полигон $3 +полиграф $3 +полилей $3 +полимер $3 +полином $3 +политемигрант $5 +политик $3 +политикан $4 +политотдел $4 +полицай $3 +половин $3 +полуглас $3 +полуидиот $5 +полукръг $3 +полуоборот $5 +полупансионер $6 +полуразпад $4 +полусън $3 +полутон $3 +полуфабрикат $5 +полуфинал $4 +помазаник $2 +поменик $3 +помпон $2 +понтон $2 +поплин $2 +порив $1 +порнограф $3 +порой $2 +портал $2 +портиер $3 +портокал $3 +портрет $2 +портфейл $2 +порфир $2 +порцелан $3 +порцион $3 +послепис $3 +послеслов $3 +постулат $3 +потенциал $4 +потир $2 +потон $2 +потоп $2 +похват $2 +пощаджия $1 +прабългарин $2 +праведник $1 +правилник $1 +правнук $2 +правопис $3 +правоъгълник $3 +прагматик $3 +праезик $3 +практик $2 +практикант $3 +праотец $3 +праправнук $3 +прасец $2 +пратеник $1 +прашец $2 +превал $2 +превес $2 +преврат $2 +превратаджия $2 +преговор $1 +предговор $1 +предел $2 +предикат $3 +предлог $2 +предмет $2 +предпазител $2 +представител $2 +предшественик $2 +президиум $2 +прелат $2 +прелом $2 +премиер $3 +препарат $3 +пресконференция $4 +престиж $2 +престой $2 +престол $2 +преструван $3 +претекст $2 +префект $2 +преферанс $3 +префикс $2 +прехлас $2 +прибой $2 +привет $2 +привърженик $2 +призив $1 +признак $1 +призрак $1 +прийом $2 +приклад $2 +прилив $1 +приоритет $4 +приток $1 +пришелец $3 +пробив $1 +проблем $2 +пробой $2 +провал $2 +провлак $1 +прогрес $2 +продукт $2 +проект $2 +проектант $3 +проектодоговор $4 +прозаик $3 +производственик $3 +произвол $3 +произход $3 +прокаженик $2 +прокопсаник $2 +прокуденик $2 +прокурор $3 +пролетариат $5 +промишленик $2 +пропан $2 +просеник $3 +проспект $2 +просперитет $4 +простор $2 +протеин $3 +протекторат $4 +протест $2 +протестант $3 +противовес $4 +противогаз $4 +противоудар $4 +протойерей $4 +проток $1 +протокол $3 +протон $2 +прототип $3 +протуберанс $4 +профан $2 +профкомитет $4 +профсъюз $3 +процес $2 +прочит $1 +псевдоним $3 +психоаналитик $6 +психолог $3 +психопат $3 +психопатолог $5 +психофизиолог $6 +птеродактил $4 +птицевъд $3 +пубертет $3 +пунктир $2 +пуритан $3 +пфалцграф $2 +пъдпъдък $3 +пълнеж $2 +първенец $3 +първожрец $3 +първоизточник $3 +първомъченик $5 +пътепис $3 +пътешественик $3 +работохолик $5 +равин $2 +равнец $2 +радар $1 +радетел $3 +радиан $3 +радикал $3 +радиоабонат $6 +радиоапарат $6 +радиограмофон $6 +радиограф $4 +радиоконцерт $5 +радиосигнал $5 +радиотелеграф $6 +радиотелефон $6 +радиотехник $5 +радиохор $4 +радиочас $4 +радиус $1 +разбой $2 +разбор $2 +развейпрах $3 +развод $2 +развой $2 +разврат $2 +разговор $1 +разгром $2 +раздел $2 +раздор $2 +разкаяник $2 +разклон $2 +разкол $2 +разкош $2 +разкрач $1 +разлом $2 +размах $2 +размер $2 +размисъл $1 +разноглед $3 +разнос $2 +разпит $1 +разплод $2 +разрив $1 +разстрел $2 +разтвор $2 +разцвет $2 +район $2 +райсъвет $3 +ракурс $2 +рамазан $3 +рандеман $3 +растеж $2 +растениевъд $5 +ратай $2 +рахат $2 +рахатлък $3 +рачел $2 +реакционер $5 +реванш $2 +ревер $2 +реверанс $3 +ревизор $3 +револвер $3 +революционер $6 +регрес $2 +редингот $1 +редут $2 +режим $2 +режисьор $3 +резерв $2 +резерват $3 +резец $2 +резил $2 +резон $2 +резонанс $3 +резоньор $3 +резултат $3 +реквием $3 +рекламаджия $2 +рекорд $2 +рекордьор $3 +ректорат $3 +релеф $2 +ремонт $2 +ренегат $3 +ренесанс $3 +рентгенолог $4 +рентиер $3 +реостат $3 +реотан $3 +репортер $3 +ресор $2 +респект $2 +ресторант $3 +ретуш $2 +реферат $3 +рефлекс $2 +рецитал $3 +риболов $3 +рикошет $3 +римлянин $1 +ритник $2 +ритуал $3 +рицар $1 +рицин $2 +робот $2 +рододендрон $4 +родственик $1 +розмарин $3 +розобер $3 +розопроизводител $5 +рокендрол $3 +роман $2 +романс $2 +романтик $3 +ромбоид $3 +ротмистър $1 +рубин $2 +рудодобив $3 +русофил $3 +русофоб $3 +рушвет $2 +ръкав $2 +ръкопис $3 +ръмеж $2 +саботьор $3 +саван $2 +сайвант $2 +саксофон $3 +салам $2 +салкъм $2 +салон $2 +салтанат $3 +самец $2 +самоконтрол $4 +самолет $3 +самосвал $3 +самотек $3 +самоук $3 +самун $2 +самур $2 +самурай $3 +сандал $2 +сандък $2 +сапун $2 +сапфир $2 +сапьор $2 +сарай $2 +сараф $2 +саркофаг $3 +сатир $2 +сатирик $3 +сатрап $2 +сатър $2 +сафрид $2 +светец $2 +светломер $3 +световъртеж $4 +светоглед $3 +светодиод $4 +свиневъд $3 +свирец $2 +свръхчовек $3 +сеанс $2 +североизток $4 +седеф $2 +седмичник $1 +седмоъгълник $3 +сезон $2 +сеизмограф $4 +сеизмолог $4 +сеир $2 +секрет $2 +секретариат $5 +сексапил $3 +секстант $2 +сектант $2 +секундант $3 +секундомер $4 +селекционер $5 +селсъвет $3 +селяндур $3 +селянин $1 +семедел $3 +семенник $1 +сенат $2 +сеновал $3 +сенокос $3 +сеньор $2 +сербез $2 +сербезлък $3 +сервиз $2 +сервитут $3 +сервитьор $3 +сержант $2 +сероводород $5 +серовъглерод $5 +сертификат $4 +сестриник $1 +сигнал $2 +силикат $3 +силикон $3 +силомер $3 +силует $3 +симпозиум $2 +симптом $2 +симулант $3 +синап $2 +синджир $2 +синдикат $3 +синдром $2 +синковец $1 +синод $2 +синолог $3 +синоним $3 +синоптик $3 +синтез $2 +синчец $2 +синьор $2 +сиромах $3 +сироп $2 +ситнеж $2 +сифилис $1 +сифилитик $4 +сифон $2 +скакалец $3 +скандал $2 +скептик $2 +скиор $2 +склададжия $1 +скорбут $2 +скорец $2 +скоростник $1 +скоростомер $4 +скорпион $3 +скрипец $2 +славянофил $4 +славянофоб $4 +сладкиш $2 +сладолед $3 +сладур $2 +сламеник $1 +слепец $2 +словоред $3 +слуга $2 +службаш $2 +слънчобран $3 +слънчоглед $3 +смарагд $2 +сметкаджия $1 +смешник $2 +смърдеж $2 +снеговалеж $4 +снегорин $3 +снежец $2 +собственик $1 +совхоз $2 +содаджия $1 +сокол $2 +солариум $2 +солдат $2 +солник $2 +солфеж $2 +сомнамбул $3 +сонант $2 +сонет $2 +сопаджия $1 +сопол $2 +сополан $3 +сопран $2 +софтуер $1 +социалдемократ $6 +социолог $4 +спектрограф $3 +спектроскоп $3 +спекулант $3 +спелеолог $4 +сперматозоид $5 +спермацет $3 +специализант $5 +специалитет $5 +спиртомер $3 +сплетник $2 +спортсмен $2 +спринтьор $2 +сребърник $1 +стабилитет $4 +стадион $3 +стажант $2 +стакан $2 +стандарт $2 +станиол $3 +старик $2 +статистик $3 +статоскоп $3 +статут $2 +стенвестник $1 +стенограф $3 +стенопис $3 +стереоскоп $4 +стереотип $4 +стереофилм $4 +стипендиант $4 +стобор $2 +стоеж $2 +стоик $2 +стоковед $3 +стокообмен $4 +стокооборот $5 +стоманобетон $5 +стоматолог $4 +стоматоскоп $4 +стомах $2 +стопаджия $1 +стопановед $4 +стратег $2 +стрелец $2 +стремеж $2 +стрептомицин $4 +стрихнин $2 +строеж $2 +стръвник $2 +стъклопис $3 +стюард $2 +субект $2 +сублимат $3 +субстрат $2 +субтропик $3 +сувенир $3 +суверенитет $5 +суджук $2 +суинг $2 +сукман $2 +султан $2 +султанат $3 +сулфамид $3 +сулфат $2 +сулфид $2 +сумрак $1 +суперфосфат $4 +сурогат $3 +сутеньор $3 +сутерен $3 +сутиен $3 +суфикс $2 +суфльор $2 +сфероид $3 +схизматик $3 +схоластик $3 +сценограф $3 +събор $2 +събрат $2 +съвет $2 +съвременник $2 +съгледвач $2 +съгражданин $2 +съдоклад $3 +съименник $2 +съквартирант $4 +съклет $2 +съмишленик $2 +съотечественик $3 +съплеменник $2 +съпровод $3 +съпруг $2 +сърбеж $2 +сърцебол $3 +сърцевед $3 +съсед $2 +съселянин $2 +съсобственик $2 +състав $2 +съученик $4 +съчувственик $2 +сюжет $2 +сюрприз $2 +сюртук $2 +табан $2 +табиет $3 +таблоид $3 +таван $2 +тайнопис $3 +тайфун $2 +таксидиот $4 +тактик $2 +такъм $2 +талаз $2 +талант $2 +таласъм $3 +талаш $2 +талисман $3 +талон $2 +тампон $2 +тандем $2 +танцьор $2 +тапет $2 +тапир $2 +тапицер $3 +таралеж $3 +таран $2 +таратор $3 +тарикат $3 +татул $2 +тахан $2 +творец $2 +театрал $3 +театровед $4 +тебешир $3 +тегел $2 +теглич $2 +текнефес $3 +текстил $2 +телеграф $3 +телепат $3 +телескоп $3 +телетип $3 +телефон $3 +телефотоапарат $7 +телец $2 +темел $2 +темерут $3 +тензух $2 +тенор $2 +теолог $3 +теоретик $4 +теософ $3 +тепегьоз $3 +терапевт $3 +терен $2 +териер $3 +терлик $2 +термидор $3 +терминал $3 +термограф $3 +термостат $3 +термофор $3 +терор $2 +терпентин $3 +тертип $2 +терциер $3 +тесногръд $3 +тетанус $1 +тефтер $2 +техник $2 +техникум $1 +технократ $3 +технолог $3 +тиган $2 +тиквеник $1 +тимпан $2 +типограф $3 +тиран $2 +тирбушон $3 +титан $2 +тоалет $3 +тобоган $3 +токсин $2 +толеранс $3 +тонрежисьор $4 +топаз $2 +топломер $3 +топлопровод $4 +топограф $3 +топор $2 +топтан $2 +топуз $2 +тореадор $4 +тормоз $2 +тотем $2 +трагик $2 +трактат $2 +трамвай $2 +трамплин $2 +транспарант $3 +транспорт $2 +транспортир $3 +трансфер $2 +трапезоид $4 +трапец $2 +траулер $1 +трафик $2 +трезвеник $1 +трезор $2 +трейдюнион $4 +тренажор $3 +треньор $2 +трибагреник $2 +трибой $2 +трибун $2 +трибунал $3 +трикольор $3 +трином $2 +триод $2 +трион $2 +триор $2 +триплан $2 +триптих $2 +тритон $2 +триумвират $4 +триумф $2 +трицвет $2 +тричлен $2 +триъгълник $2 +тройкаджия $1 +тролей $2 +тролейбус $3 +тромбон $2 +тромпет $2 +тротил $2 +трофей $2 +трубадур $3 +труженик $1 +тръбопровод $4 +тулум $2 +тунел $2 +туптеж $2 +турнир $2 +туткал $2 +тутманик $1 +тъпоъгълник $3 +търбух $2 +търгаш $2 +търмък $2 +търнокоп $3 +тътнеж $2 +тюрбан $2 +тюркоаз $3 +тюрлюгювеч $4 +тюфлек $2 +удар $1 +ударник $1 +узбек $2 +уличник $1 +ултразвук $3 +ултрамикроскоп $5 +умисъл $1 +умник $2 +универмаг $4 +университет $5 +уникум $1 +унисон $3 +упор $2 +управител $2 +ураган $3 +уран $2 +урожай $3 +уролог $3 +успех $2 +успоредник $1 +устабашия $2 +ухажор $3 +ухобол $3 +ученик $3 +ущърб $2 +фабрикант $3 +фабрикат $3 +фагот $2 +фазан $2 +фазомер $3 +файтон $2 +факир $2 +факултет $3 +фалцет $2 +фалшификат $4 +фанариот $4 +фанатик $3 +фантазьор $3 +фантаст $2 +фантом $2 +фанфарон $3 +фараон $3 +фарисей $3 +фармаколог $4 +фармасон $3 +фармацевт $3 +фасон $2 +фасул $2 +федербал $1 +фейлетон $3 +фелдмаршал $1 +фенер $2 +фенол $2 +феномен $3 +феодал $3 +ферибот $1 +ферман $2 +фестивал $3 +фестон $2 +фетиш $2 +фигурант $3 +физик $2 +физиолог $4 +филантроп $3 +филиал $3 +филиз $2 +филолог $3 +философ $3 +финал $2 +финес $2 +фиорд $2 +фитил $2 +фитопатолог $5 +фишек $2 +флакон $2 +флегматик $3 +флиртаджия $1 +флопидиск $3 +флотиер $3 +флуид $2 +флуор $2 +флуорид $3 +фойерверк $1 +фокстериер $4 +фокусник $1 +фолклор $2 +фонетик $3 +фонограф $3 +фонтан $2 +формалин $3 +формат $2 +форсмажор $3 +фосген $2 +фосфат $2 +фотоапарат $5 +фотограф $3 +фотокартограф $5 +фотоматериал $6 +фотон $2 +фотоплан $3 +фоторепортер $5 +фотостат $3 +фотьойл $2 +фразеолог $4 +фразьор $2 +фракционер $4 +франкмасон $3 +фризьор $2 +фронтон $2 +фугас $2 +функционер $4 +фургон $2 +фуркет $2 +фурнаджия $1 +фурнир $2 +фурор $2 +фъндък $2 +фъстък $2 +хабер $2 +хаван $2 +хаджилък $3 +хазарт $2 +хазър $2 +хайван $2 +хайвер $2 +хайдук $2 +хайлаз $2 +хайлайф $2 +халат $2 +халиф $2 +халифат $3 +хамелеон $4 +хамут $2 +хардал $2 +хардуер $1 +харем $2 +харман $2 +харпун $2 +харчлък $2 +хатър $2 +хашиш $2 +хегемон $3 +хектограф $3 +хелиограф $4 +хелиоскоп $4 +хелиотроп $4 +хемоглобин $4 +хендек $2 +хербицид $3 +хермелин $3 +хероин $3 +херувим $3 +херцог $2 +хеттрик $2 +хибрид $2 +хидрант $2 +хидрат $2 +хидрид $2 +хидрограф $3 +хидролог $3 +хидроплан $3 +хидросулфат $4 +химик $2 +химикал $3 +химкомбинат $4 +хинин $2 +хипопотам $4 +хипохондрик $4 +хиромант $3 +хирург $2 +хистолог $3 +хитрец $2 +хлебозавод $4 +хлорид $2 +хлороводород $5 +хлорофил $3 +хлороформ $3 +хобот $2 +ходатай $3 +холерик $3 +холестерин $4 +хомот $2 +хорал $2 +хореограф $4 +хоризонт $3 +хоризонтал $4 +хормон $2 +хоросан $3 +хороскоп $3 +хотел $2 +хотелиер $4 +хотентот $3 +хофмаршал $1 +храбрец $2 +храненик $1 +хранопровод $4 +хроникьор $3 +хронограф $3 +хронолог $3 +хубавец $3 +хубостник $3 +хулиган $3 +хуманоид $4 +хълбок $1 +царевичник $1 +целофан $3 +целулоид $4 +центурион $4 +цепелин $3 +церемониал $5 +циан $2 +цианид $3 +циановодород $6 +циганин $1 +циганор $3 +циклон $2 +циклоп $2 +циклостил $3 +циник $2 +цинквайс $2 +цинкограф $3 +цинцарин $1 +циркаджия $1 +цитат $2 +циферблат $1 +цървул $2 +цъфтеж $2 +чадър $2 +чакал $2 +чакъл $2 +чалъм $2 +чапраз $2 +чародей $3 +чаршаф $2 +чатал $2 +чауш $2 +чеиз $2 +чекрък $2 +челик $2 +ченгел $2 +чепик $2 +черноборсаджия $3 +черноглед $3 +чернозем $3 +чертеж $2 +четвъртфинал $4 +четец $2 +четириъгълник $4 +чибук $2 +чимшир $2 +чираклък $3 +чистник $2 +чифлик $2 +чичопей $3 +човек $2 +човекочас $4 +чорап $2 +чорбаджилък $4 +чувал $2 +чугун $2 +чужденец $3 +чукундур $3 +щиглец $2 +щурец $2 +ъгълник $1 +язовир $3 +яйцепровод $4 +ямурлук $3 +ярем $2 +ятаган $3 +яхтклуб $2 +яхър $2 diff --git a/dictsource/bg_rules b/dictsource/bg_rules new file mode 100644 index 00000000..11d68a2e --- /dev/null +++ b/dictsource/bg_rules @@ -0,0 +1,208 @@ +// translation rules for Bulgarian +// This file is UTF-8 encoded + +// Letter groups: +// C consonants +// Y iotated vowels and soft sign +.L01 е ѐ и ѝ // 'i' and 'e' vowels +.L02 р л м н //sonorant consonants +.L03 б в г д з дз ж дж //sounded consonants +.L04 п ф к т с ц ш щ ч х //silent consonants + +.group а + а a + @) а (_S1 a + @) ак (_ 'ak + @) ар (_ 'ar + @) ач (_ 'atS + + @) алище (_ 'aliSte + @) ание (_ 'anie + @) авище (_ 'aviSte + @) аж (_ 'aZ + @) алня (_ 'aln;a + @) ария (_ aria + @) ация (_ 'atsia + @) ателство (_ 'atelstvo + @) ален (_ 'alen + @) ански (_ 'anski + @) ателен (_ 'atelen + + +.group б + б b + б (Y b; + +.group в + в v + в (Y v; + +.group г + г g + г (Y g; + +.group д + д d + д (Y d; + дж dZ + дз dz + дз (Y dz|; + + +.group е + е e + @) ение (_ 'enie + @) ент (_ 'ent + + @) евен (_ 'even + @) ебен (_ 'eben + @) ейски (_ 'ejski + @) еен (_ 'een + + +.group ж + ж Z + +.group з + з z + з (Y z; + + +.group и + и i + и (_N i: + @) ител (_ 'itel + @) ист (_ 'ist + + @) илище (_ 'iliSte + @) икав (_ 'ikav + @) ит (_ 'it + @) ив (_ 'iv + @) изъм (_ 'iz@m + от) и (я_ 'i + к) и (ня_ 'i + @) идба (_ 'itba + @) ивен (_ 'iven + @) илен (_ 'ilen + @) ински (_ 'inski + @) ителен (_ 'itelen + @) ически (_ 'itSeski + @) има (_ 'ima + + +.group й + й j + +.group к + к k + к (Y k; + @) ко (_S2 ko + +.group л + л L + л (L01 l // ле ли + л (Y l + л (ьL01 l^ + +.group м + м m + м (Y m; + +.group н + н n + н (Y n^ + нн n: + +.group о + о o + + @) овище (_ 'oviSte + ова (т_ ov'a + ови (т_ ov'i //?? + @) овен (_ 'oven + @) ок (_ 'ok + @) овник (_ 'ovnik + @) ориум (_ 'orium + озен (_ 'ozen + + +.group п + п p + п (Y p; + +.group р + р r + р (Y r; + +.group с + с s + с (Y s; + +.group т + т t + т (Y t; + тт t: + @) та (_S2 ta + @) те (_S2 te + +.group у + у u + +.group ф + ф f + ф (Y f; + +.group х + х x + х (Y C + х (и C + +.group ц + ц ts + ц (Y ts|; + + +.group ч + ч tS + @) чо (_ =tSo + + +.group ш + ш S + + +.group щ + щ St + щ (Y St; + + +.group ъ + ъ @ + @) ът (_S2 @t + + +.group ь + ь j + C) ь + + +.group ю + ю ju + C) ю u + + +.group я + я ja + C) я a + @) я (_S1q ja + @C) я (_S1q a + @) ят (_S2q jat + @C) ят (_S2q at + @) яние (_ 'janie + +.group + ̀ = // combining grave accent + $ d'oLar + ѐ ''e + ѝ ''i + diff --git a/dictsource/bo_rules b/dictsource/bo_rules new file mode 100644 index 00000000..5a0efa1a --- /dev/null +++ b/dictsource/bo_rules @@ -0,0 +1,409 @@ +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Tibetan + +.replace +༠ 0 +༡ 1 +༢ 2 +༣ 3 +༤ 4 +༥ 5 +༦ 6 +༧ 7 +༨ 8 +༩ 9 + + + +.group ཀ + ཀ ka + ཀ (B k + @) ཀ (_ k + +.group ཁ + ཁ kha + ཁ (B kh + @) ཁ (_ kh + +.group ག + ག ga + ག (B g + @) ག (_ g + +.group གྷ + གྷ gha + གྷ (B gh + @) གྷ (_ gh + +.group ང + ང Na + ང (B N + @) ང (_ N + +.group ཅ + ཅ ca + ཅ (B c + @) ཅ (_ c + +.group ཆ + ཆ cha + ཆ (B ch + @) ཆ (_ ch + +.group ཇ + ཇ Ja + ཇ (B J + @) ཇ (_ J + +.group ཉ + ཉ n^a + ཉ (B n^ + @) ཉ (_ n^ + +.group ཊ + ཊ t.a + ཊ (B t. + @) ཊ (_ t. + +.group ཋ + ཋ th.a + ཋ (B th. + @) ཋ (_ th. + +.group ཌ + ཌ d.a + ཌ (B d. + @) ཌ (_ d. + +.group ཌྷ + ཌྷ dh.a + ཌྷ (B dh. + @) ཌྷ (_ dh. + +.group ཎ + ཎ n.a + ཎ (B n. + @) ཎ (_ n. + +.group ཏ + ཏ ta + ཏ (B t + @) ཏ (_ t + +.group ཐ + ཐ tha + ཐ (B th + @) ཐ (_ th + +.group ད + ད da + ད (B d + @) ད (_ d + +.group དྷ + དྷ dha + དྷ (B dh + @) དྷ (_ dh + +.group ན + ན na + ན (B n + @) ན (_ n + +.group པ + པ pa + པ (B p + @) པ (_ p + +.group ཕ + ཕ pha + ཕ (B ph + @) ཕ (_ ph + +.group བ + བ ba + བ (B b + @) བ (_ b + +.group བྷ + བྷ bha + བྷ (B bh + @) བྷ (_ bh + +.group མ + མ ma + མ (B m + @) མ (_ m + +.group ཙ + ཙ tsa + ཙ (B ts + @) ཙ (_ ts + +.group ཚ + ཚ tsha + ཚ (B tsh + @) ཚ (_ tsh + +.group ཛ + ཛ dza + ཛ (B dz + @) ཛ (_ dz + +.group ཛྷ + ཛྷ dzha + ཛྷ (B dzh + @) ཛྷ (_ dzh + +.group ཝ + ཝ wa + ཝ (B w + @) ཝ (_ w + +.group ཞ + ཞ Za + ཞ (B Z + @) ཞ (_ Z + +.group ཟ + ཟ za + ཟ (B z + @) ཟ (_ z + +.group འ + འ ?a + འ (B ? + @) འ (_ ? + +.group ཡ + ཡ ja + ཡ (B j + @) ཡ (_ j + +.group ར + ར ra + ར (B r + @) ར (_ r + +.group ལ + ལ la + ལ (B l + @) ལ (_ l + +.group ཤ + ཤ Sa + ཤ (B S + @) ཤ (_ S + +.group ཥ + ཥ s.a + ཥ (B s. + @) ཥ (_ s. + +.group ས + ས sa + ས (B s + @) ས (_ s + +.group ཧ + ཧ Ha + ཧ (B H + @) ཧ (_ H + +.group ཨ + ཨ ?a + ཨ (B ? + @) ཨ (_ ? + +.group ཀྵ + ཀྵ ks.a + ཀྵ (B ks. + @) ཀྵ (_ ks. + + +// vowel signs +// Give the utf8 codes in octal, because these characters don't +// display correctly without a letter to attach to. +.group 0xe0bd + 0xe0bdb1 a: + 0xe0bdb2 i + 0xe0bdb3 i: + 0xe0bdb4 u + 0xe0bdb5 u: + 0xe0bdb6 r- + 0xe0bdb7 r-: + 0xe0bdb8 l- + 0xe0bdb9 l-: + 0xe0bdba e + 0xe0bdbb e: + 0xe0bdbc o + 0xe0bdbd o: + +// subjoined letters +.group 0xe0be // characters which start with UTF-8 bytes: [e0 be] + ྐ ka + ྐ (B k + @) ྐ (_ k + + ྑ kha + ྑ (B kh + @) ྑ (_ kh + + ྒ ga + ྒ (B g + @) ྒ (_ g + + ྒྷ gha + @) ྒྷ (_ gh + + ྔ Na + ྔ (B N + @) ྔ (_ N + + ྕ ca + ྕ (B c + @) ྕ (_ c + + ྖ cha + ྖ (B ch + @) ྖ (_ ch + + ྗ Ja + ྗ (B J + @) ྗ (_ J + + ྙ n^a + ྙ (B n^ + @) ྙ (_ n^ + + ྚ t.a + ྚ (B t. + @) ྚ (_ t. + + ྛ th.a + ྛ (B th. + @) ྛ (_ th. + + ྜ d.a + ྜ (B d. + @) ྜ (_ d. + + ྜྷ dh.a + ྜྷ (B dh. + @) ྜྷ (_ dh. + + ྞ n.a + ྞ (B n. + @) ྞ (_ n. + + ྟ ta + ྟ (B t + @) ྟ (_ t + + ྠ tha + ྠ (B th + @) ྠ (_ th + + ྡ da + ྡ (B d + @) ྡ (_ d + + ྡྷ dha + ྡྷ (B dh + @) ྡྷ (_ dh + + ྣ na + ྣ (B n + @) ྣ (_ n + + ྤ pa + ྤ (B p + @) ྤ (_ p + + ྥ pha + ྥ (B ph + @) ྥ (_ ph + + ྦ ba + ྦ (B b + @) ྦ (_ b + + ྦྷ bha + ྦྷ (B bh + @) ྦྷ (_ bh + + ྨ ma + ྨ (B m + @) ྨ (_ m + + ྩ tsa + ྩ (B ts + @) ྩ (_ ts + + ྪ tsha + ྪ (B tsh + @) ྪ (_ tsh + + ྫ dza + ྫ (B dz + @) ྫ (_ dz + + ྫྷ dzha + ྫྷ (B dzh + @) ྫྷ (_ dzh + + ྭ wa + ྭ (B w + @) ྭ (_ w + + ྮ Za + ྮ (B Z + @) ྮ (_ Z + + ྯ za + ྯ (B z + @) ྯ (_ z + + ྰ ?a + ྰ (B ? + @) ྰ (_ ? + + ྱ ja + ྱ (B j + @) ྱ (_ j + + ྲ ra + ྲ (B r + @) ྲ (_ r + + ླ la + ླ (B l + @) ླ (_ l + + ྴ Sa + ྴ (B S + @) ྴ (_ S + + ྵ s.a + ྵ (B s. + @) ྵ (_ s. + + ྶ sa + ྶ (B s + @) ྶ (_ s + + ྷ Ha + ྷ (B H + @) ྷ (_ H + + ྸ ?a + ྸ (B ? + @) ྸ (_ ? + + ྐྵ ks.a + ྐྵ (B ks. + @) ྐྵ (_ ks. + + +.group + $ dolar diff --git a/dictsource/ca_list b/dictsource/ca_list old mode 100755 new mode 100644 diff --git a/dictsource/ca_rules b/dictsource/ca_rules old mode 100755 new mode 100644 diff --git a/dictsource/da_list b/dictsource/da_list old mode 100755 new mode 100644 diff --git a/dictsource/da_rules b/dictsource/da_rules old mode 100755 new mode 100644 diff --git a/dictsource/dict_log b/dictsource/dict_log new file mode 100644 index 00000000..fe78c608 --- /dev/null +++ b/dictsource/dict_log @@ -0,0 +1,6 @@ +Using phonemetable: 'hu' +Compiling: '/home/jsd1/speechdata/dictsource/hu_list' + 4869 entries +Compiling: '/home/jsd1/speechdata/dictsource/hu_rules' + 1883 rules, 45 groups (0) + diff --git a/dictsource/dict_phonemes b/dictsource/dict_phonemes index 61dd4552..b0b22e86 100644 --- a/dictsource/dict_phonemes +++ b/dictsource/dict_phonemes @@ -66,7 +66,7 @@ R3 s S t T tS v w x Z -Dictionary hu_dict 2011-11-22 +Dictionary hu_dict 2011-12-07 a A a: e E e: i i: o o: u u: Y y y: Y: @@ -102,7 +102,7 @@ p Q r R s s; t T ts v x z -Dictionary en_dict 2011-11-22 +Dictionary en_dict 2011-12-09 0 3 3: @ @- @2 @5 @L a a# A: A@ aa aI aI3 aI@ @@ -118,7 +118,7 @@ s S t T t2 tS v w x z Z z# -Dictionary eo_dict 2011-04-02 +Dictionary eo_dict 2011-12-05 @- a aI aU e eI eU i o oI u uI @@ -202,7 +202,7 @@ q r r. s S s. t T t. th th. v w x z -Dictionary ta_dict 2011-11-19 +Dictionary ta_dict 2011-12-09 a a: aI aU e E e: i I i: o o: u U u2 u: @@ -535,7 +535,7 @@ n^ p p` r s S t t` tS tS` v w x z Z -Dictionary ml_dict 2011-04-25 +Dictionary ml_dict 2011-12-05 @ a a# a: aI aU e E e: i I i: o o: r- u @@ -598,7 +598,7 @@ N n^ p q R s S S; t tS v w x z -Dictionary ur_dict 2009-12-02 +Dictionary ur_dict 2011-12-05 @ a a: aI aU E e: i I i: O o: U u: @@ -691,7 +691,7 @@ t. th th. tS v w x z Z -Dictionary kn_dict 2011-06-25 +Dictionary kn_dict 2011-12-05 a a: aI aU e E e: i I i: o o: r- u u: @@ -716,7 +716,7 @@ R R3 s S t T tS ts v w x X z -Dictionary te_dict 2011-03-22 +Dictionary te_dict 2011-12-05 a a: aI aU e E e: i i: l- o o: r- u u: V @@ -729,7 +729,7 @@ s s. S; t t. th th. tS v w z -Dictionary ka_dict 2011-04-11 +Dictionary ka_dict 2011-12-05 @ @- a e i o u @@ -740,7 +740,7 @@ t# tS ts ts# v w x z Z -Dictionary si_dict 2011-03-16 +Dictionary si_dict 2011-12-05 & &: @ a a: aI aU e E e: i i: o o: u u: @@ -776,7 +776,7 @@ q r s S t tS v w x z Z -Dictionary bo_dict 2011-11-17 +Dictionary bo_dict 2011-12-05 a a: e e: i i: l- o o: r- u u: @@ -786,3 +786,14 @@ dh dh. dz dzh g gh H j J k kh l m n N n. n^ p ph r s S s. t t. th th. ts tsh w z Z + + +Dictionary kk_dict 2011-12-07 + +& 8 a A e E i I +o u U u# Y + +; b d f g G h j +k l m n N p q r +s S t tS v w X z +Z diff --git a/dictsource/dv_list b/dictsource/dv_list new file mode 100644 index 00000000..d66a7f05 --- /dev/null +++ b/dictsource/dv_list @@ -0,0 +1,174 @@ + +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Divehi (Maldives) + +// Numbers + +_0 s'umeI +_1 e'keI +_2 d'eI +_3 tineI +_4 ha'tha'reI +_5 fa'heI +_6 ha'eI +_7 ha'theI +_8 a'SeI +_9 n'uaeI +_10 d'ihaeI + +_11 e'gj'a:r@1 //egaara +_12 b'ar@2 //baara +_13 t'E:r@2 //theyra +_14 ch'O:d@2 //saada (d like in _2) +_15 p'Vndr@2 //fanara +_16 s'o:l@2 //soalha lh like in ޅ +_17 s'Vt:r@2 //sathaara +_18 Vth.:'a:r@2 //ashaara +_19 Unn'Is //navaara + +_20 b'i:s //vihi (we he) +_21 Ik:'Is //eka wees +_22 b'a:Is //baa wees +_23 t'e:Is //tei wees +_24 c'O:bIs sav wees +_25 p@c:'Is //fansavees +_26 ch@bb'i:rs // sabbees +_27 s@t:'a:Is // sathawees +_28 ath:'a:Is // asha wees +_29 Unt'Is // ona thirees +_30 t'i:s // thirees + +_31 Ik@t:'Is // thirees eke --from hence it starts with the 10th digit and follows with the single digit. +_32 bat:'Is // eg. 32 = thirees (30) eke (1) +_33 tE~t'Is // E~ ? +_34 cO~t'Is +_35 pE~t'Is +_36 chaT'tIs +_37 sE~t'Is +_38 art'Is +_39 Unta:l'Is + +_40 ca:l'Is //saalhees +_41 Ikta:l'Is +_42 baIa:l'Is +_43 tE~ta:l'Is +_44 cO:wa:l'Is +_45 paI'nta:l'Is +_46 chhIja:l'Is +_47 sE~ta:l'Is +_48 arta:l'Is +_49 'Un^ca:s + +_50 p@c'a:s //fansaas +_51 Ikj'a:wVn +_52 b'a:wVn +_53 t'IrpVn +_54 c'Ou:wVn +_55 p'achpVn +_56 chh@p:'Vn +_57 sVt:'a:w@n +_58 ath:'a:w@n +_59 Uns'Vth + +_60 s'a:th. //fas dho (ދ) lhas +_61 'Iks@th. +_62 b'a:s@th. +_63 t'Irs@th. +_64 c'O~s@th. +_65 paIns@th. +_66 ch'Ija:s@th. +_67 s'Vrs@th. +_68 ars@th. +_69 Un@h,at:'Vr: + +_70 sat:'Vr: // hai dhiha +_71 Ikhat:'Vr: +_72 b@hat:'Vr: +_73 tIhat:'Vr: +_74 cO:hat:'Vr: +_75 pach,at:'Vr: +_76 chIhat:'Vr: +_77 s@t@hat:'Vr: +_78 athhat:'Vr: +_79 ,Un^Ia:s'i: + +_80 ,Vss'i: // addiha +_81 Ikja:s'i: +_82 baIa:s'i: +_83 tIra:s'i: +_84 cO:ra:s'i: +_85 pI'ca:s'i: +_86 chIja:s'i: +_87 sVt:a:s'i: +_88 ath:a:s'i: +_89 nVwa:s'i: + +_90 nVb:'e: nuvadhiha +_91 Ikj'a:n@we: +_92 b'a:n@we: +_93 tIr'a:n@we: +_94 cO:r'a:m@we: +_95 p@c'a:n@we: +_96 chIj'a:n@we: +_97 s@t:'a:n@we: +_98 ath:'a:n@we: +_99 nIn^j'a:n@we: + +_0C sa'theIka //satheyka (th like them) +_0M1 h@z'a:r (haas) +_0M2 l'a:kh // lakka +_0M3 cr'ore //curoadu + +// letter names +ހ h'a: +ށ s.'avijani +ނ n'u:nu +ރ R'a: +ބ b'a: +ޅ l.'av,ijani +ކ k'a:fu +އ 'alifu +ވ v'a:vu +މ m'i:mu +ފ f'a:fu +ދ d'a:lu +ތ t'a: +ލ l'a:mu +ގ g'a:fu +ޏ n^'avijani +ސ s'i:nu +ޑ d.'avijani +ޒ z'avijani +ޓ t.'avijani +ޔ j'a: +ޕ p'avijani +ޖ dZ'avijani +ޗ tS'avijani +ޘ T'a: +ޙ hh'a: +ޚ x'a: +ޛ D'a:lu +ޜ z'a: +ޝ S'i:nu +ޞ s'a:du +ޟ d'a:du +ޠ t'o +ޡ z'o +ޢ a'inu +ޣ Qa'inu +ޤ q'a:fu +ޥ w'a:vu +ޱ n'a||vijani + ަ 'aba||f,ili + ާ 'a:ba:||f,ili + ި 'ibi||f,ili + ީ 'i:bi:||f,ili + ު 'ubu||f,ili + ޫ 'u:bu:||f,ili + ެ 'ebe||f,ili + ޭ 'e:be:||f,ili + ޮ 'obo||f,ili + ޯ 'o:bo:||f,ili + ް s'ukun + + diff --git a/dictsource/dv_rules b/dictsource/dv_rules new file mode 100644 index 00000000..a975f20f --- /dev/null +++ b/dictsource/dv_rules @@ -0,0 +1,189 @@ + +// This file is UTF8 encoded +// Spelling-to-phoneme rules for Divehi (Maldives) + +.group ހ + ހ h + +.group ށ + ށ s. + +.group ނ + ނ n + ން (ނ nn + ން (މ mm + ން (ޏ n^n^ + +.group ރ + ރ R + +.group ބ + ބ b + +.group ޅ + ޅ l. + +.group ކ + ކ k + +.group އ + އ // alifu + އް (_ eh + އް (ހ h + އް (ށ h + އް (ހ s. + އް (ނ n + އް (ރ R + އް (ބ b + އް (ޅ l. + އް (ކ k + އް (ކ v + އް (މ m + އް (ދ d + އް (ތ t + އް (ލ l + އް (ގ g + އް (ޏ N + އް (ސ s + އް (ޑ d. + އް (ޒ z + އް (ޓ t. + އް (ޔ j + އް (ޕ p + އް (ޖ dZ + އް (ޗ tS + އް (ޜ Z + +.group ވ + ވ v + +.group މ + މ m + +.group ފ + ފ f + +.group ދ + ދ d + +.group ތ + ތ t + +.group ލ + ލ l + +.group ގ + ގ g + +.group ޏ + ޏ n^ + +.group ސ + ސ s + +.group ޑ + ޑ d. + +.group ޒ + ޒ z + +.group ޓ + ޓ t. + +.group ޔ + ޔ j + +.group ޕ + ޕ p + +.group ޖ + ޖ dZ + +.group ޗ + ޗ tS + +.group ޘ + ޘ T + +.group ޙ + ޙ h + +.group ޚ + ޚ x + +.group ޛ + ޛ D + + + +.group ޜ + ޜ Z + +.group ޝ + ޝ S + +.group ޞ + ޞ s + +.group ޟ + ޟ d + +.group ޠ + ޠ t + +.group ޡ + ޡ z + +.group ޢ + ޢ ? + +.group ޣ + ޣ Q + +.group ޤ + ޤ q + +.group ޥ + ޥ w + + +.group ަ + ަ a + +.group ާ + ާ a: + +.group ި + ި i + +.group ީ + ީ i: + +.group ު + ު u + +.group ޫ + ޫ u: + +.group ެ + ެ e + +.group ޭ + ޭ e: + +.group ޮ + ޮ o + +.group ޯ + ޯ o: + +.group ް + ް // sukun + +.group ޱ + ޱ n. + +.group + $ dolaR + + diff --git a/dictsource/en_list b/dictsource/en_list index 8c4b66db..eb75a138 100644 --- a/dictsource/en_list +++ b/dictsource/en_list @@ -713,6 +713,7 @@ bombard $2 bonbon b0nb0n bonhomie b0n@mi: bonjour bO:nZ'U@ +booger bUg3 boogie b'u:gi bosun boUs@n boutique bu:t'i:k @@ -1618,6 +1619,7 @@ mutate mju:t'eIt myriad mIrIad myrrh m3: ?5 myrrh mVR +myrtle m3:t@L naif naI'i:f naïve naI'i:v @@ -2377,7 +2379,6 @@ vineyard vInj3d vinyl vaInI2l viola vaI'oUl@ violin $2 -virus vaI3r@s viral vaI3r@L visa vi:z@ visit vIzI2t diff --git a/dictsource/en_rules b/dictsource/en_rules index b480c1d6..77bc80b2 100644 --- a/dictsource/en_rules +++ b/dictsource/en_rules @@ -2589,6 +2589,7 @@ _) gnu g@nu: hun) g g g (ear g + %A) g (er g g (et g g (ette_ dZ ve) g (et dZ @@ -3282,6 +3283,7 @@ _) ir (rA I ir (ro I ir (ru I + v) ir (us aIr iry (_ aI3rI @@ -3619,7 +3621,7 @@ &ia) n (_S1 n &ia) ns (_S2 nz - @) name (_S4 neIm + &) name (_S4 neIm _) nano (P4 n,anoU nause nO:sI necessit n@sEsIt @@ -4673,7 +4675,7 @@ &B) red (_ r@d uv) re @ rer (_ r@ - re (_ 3 + &) re (_ 3 A) re (_ r@ r) re (_ r@ _) re (C_ rE @@ -5422,6 +5424,7 @@ with (C w%ID with (A w%ID with (e wID + &) wood (_S4 wUd s) wor (d o@ ss) wor (d w3: ?5 ss) wor (d wVR diff --git a/dictsource/et_list b/dictsource/et_list old mode 100755 new mode 100644 diff --git a/dictsource/et_rules b/dictsource/et_rules old mode 100755 new mode 100644 diff --git a/dictsource/fi_list b/dictsource/fi_list old mode 100755 new mode 100644 diff --git a/dictsource/fi_rules b/dictsource/fi_rules old mode 100755 new mode 100644 diff --git a/dictsource/fr_list b/dictsource/fr_list old mode 100755 new mode 100644 diff --git a/dictsource/fr_rules b/dictsource/fr_rules old mode 100755 new mode 100644 diff --git a/dictsource/hbs_rules b/dictsource/hbs_rules old mode 100755 new mode 100644 diff --git a/dictsource/hi_list b/dictsource/hi_list old mode 100755 new mode 100644 diff --git a/dictsource/hi_rules b/dictsource/hi_rules old mode 100755 new mode 100644 diff --git a/dictsource/ht_list b/dictsource/ht_list new file mode 100644 index 00000000..094b8799 --- /dev/null +++ b/dictsource/ht_list @@ -0,0 +1,167 @@ +// Haitian Creole translation rules +// This file is UTF-8 encoded + + + +// numbers +_0 zewo +_1 E~ +_2 de +_3 twa +_4 kat +_5 sE~k +_6 sis +_7 sEt +_8 yit +_9 nEf +_10 dis +_11 O~z +_12 duz +_13 trEz +_14 katOz +_15 kE~z +_16 sEz +_17 disEt +_18 dizyit +_19 diznEf +_20 vE~ +_21 vE~te;E~ +_2X vE~n +_28 vE~tyit +_29 vE~tnEf +_30 trA~t +_31 trA~te;E~ +_3X trA~n +_38 trA~tyit +_39 trA~tnEf +_40 karA~t +_41 karA~te;E~ +_4X karA~n +_48 karA~tyit +_49 karA~tnEf +_50 sE~kA~t +_51 sE~kA~te;E~ +_5X sE~kA~n +_58 sE~kA~tyit +_59 sE~kA~tnEf + +_60 swasA~t +_61 swasA~te;E~ +_6X swasA~n +_70 swasA~tdis +_71 swasA~te;O~z +_8X katrevE~ +_81 katrevE~tE~ +_91 katrevE~tO~z + +_0C sA~ +_0M1 mil +_1M1 mil +_0M2 miljon +_0M3 milja +_0M4 biljon +_dpt _pwE~ + + +// Common function words +//====================== + +// Articles +on $u +yon $u + +la $u +lan $u +a $u +an $u + +sa $u + + +// Pronouns +mwen $u +ou $u +li $u +nou $u +yo $u + +ki $u + + +// Verbs +se $u // to be +vin $u + +te $u // tense markers +tap $u +(t ap) tap $u +ap $u +a $u +pral $u +ta $u + + +// Prepositions +ak $u $brk +nan $u +pou $u + + +// Conjunctions +epi $u $pause + + +// Adverbs +kèk $u // some + + +// Characters +% pusA~ $max3 +* asteris $max3 ++ plis $max3 += egal $max3 +/ slaS $max3 +\ A~tislaS $max3 +# aSaj $max3 + +_, vigil +_; pwE~vigil +_. pwE~ + + +// Letter names +// (note: some letters must be distinguished from one-letter words) +_a a +a a $atstart $atend +b bi +c si +d di +e e +è egr'av +f Ef +g ge +h aS +i i +j Zi +k ka +_l el +l el $atend +_m em +m em $atend +_n en +n en $atend +o o +ò ogr'av +p pi +q kju +r ara +s Es +_t ta +t ta $atend +u u +v va +_w dubv'a +w dubv'a $atend +_y ipsil'on +y ipsil'on $atend +z zed diff --git a/dictsource/ht_rules b/dictsource/ht_rules new file mode 100644 index 00000000..ef14b21f --- /dev/null +++ b/dictsource/ht_rules @@ -0,0 +1,104 @@ +// Haitian Creole translation rules +// This file is UTF-8 encoded + +.group a + a a + an (K A~ + +.group à + à a + +.group b + b b + +.group c + ch S + c k + c (Y s + +.group d + d d + +.group e + e e + en (K E~ + +.group è + è E + +.group f + f f + +.group g + g g + +.group h + h // silent ? + +.group i + i i + +.group j + j Z + +.group k + k k + +.group l + l l + +.group m + m m + +.group n + n n + ng N + +.group o + o o + on (K O~ + ou u + +.group ò + ò O + +.group p + p p + +.group q + q k + +.group r + r r + +.group s + s s + +.group t + t t + tch tS + +.group u + u u + ui yi + +.group v + v v + +.group w + w w + +.group x + x ks + +.group y + y j + K) y (K i // not next to a vowel + +.group z + z z + +.group + ç s + $ dola + diff --git a/dictsource/hu_list b/dictsource/hu_list old mode 100755 new mode 100644 index 04de6d0b..7f659375 --- a/dictsource/hu_list +++ b/dictsource/hu_list @@ -4720,6 +4720,52 @@ biciklizőknek $unstressend forintért $unstressend (a szintet) A'||sintEt $unstressend (egy próbát) EJ_'||pR2o:ba:t $unstressend +(lehetőség van arra) lEhEtY:Se:g||vAn||AR2R2A $unstressend +szervét $unstressend +parancsnokságát $unstressend +kötelezettséget $unstressend +tarthatnak $unstressend +korhatárt $unstressend +korhatára $unstressend +törvényt $unstressend +gondoskodik $unstressend +(tartja el) tArcA_'||El $unstressend +(alól az) Alo:l_'||Az $unstressend +életévét $unstressend + + +nagykorú $unstressend +szólaljon $unstressend +elmaradt $unstressend +őszintén $unstressend +(éjszaka volt) e:jsAkA_'||volt $unstressend +szabott $unstressend +dolgok $unstressend +kifizetnie $unstressend +különadót $unstressend +ezzel $unstressend +szóba $unstressend +azzal $unstressend +(van itt) vAn_'||it: $unstressend +(tudta volna) tut:A'||volnA $unstressend +maradhatnak $unstressend +címezte $unstressend +hivatkozott $unstressend +felelősségük $unstressend +bíróságot $unstressend +(vezetik el) vEzEtik_'||El $unstressend +firtassuk $unstressend +fogni $unstressend +társadalomban $unstressend +években $unstressend +(számunkra az) sa:munkR2A_'||Az $unstressend +azután $unstressend +vitába $unstressend +múltról $unstressend +munkahely $unstressend +pedig $unstressend +vitában $unstressend +(ki kell mondani) ki_||kEl:_||mondAni $unstressend // word pairs diff --git a/dictsource/hu_rules b/dictsource/hu_rules index 6362b0f2..af852a34 100644 --- a/dictsource/hu_rules +++ b/dictsource/hu_rules @@ -127,10 +127,21 @@ szanité) c (cs ts kilen) c (schill ts _bohó) cs ts|S _ar) c (sérül ts - _har) c (sor ts - _áká) c (söv ts + _har) csor ts|SoR2 _áká) c (söv ts + _aká) c (söv ts _bohó) c (sz ts + _vi) cc (sor ts + tán) cs (ics tS + _ér) c (sisak ts + _in) cz (éd ts +_virgon) c (ság ts +_elmén) c (ség ts +martaló) c (ser ts + _ér) c (sas ts + _újon) c (ság ts + _kuru) c (ság ts + _paló) c (ság ts .group ch anar) ch (i h @@ -161,6 +172,7 @@ oligar) ch h mazo) ch (izm h mazo) ch (is h ar) ch (aikus h + _ar) ch (imé h .group d @@ -184,7 +196,8 @@ oligar) ch h dsz (_S3 ts: beszé) d (szin d beszé) d (sebesség d - cselé) d d + cselé) d (so d + dobermann dob:ER2mAn föl) d (sánc d ha) dd (_S2 d @@ -318,6 +331,28 @@ miliár) d (szor d beszé) d (jel d _biliár) d (szo d rekor) d (sebesség d + beszé) d (stílus d + zöl) d (szín d + ná) d (szőnye d +manzár) d (szob d +paliszá) d (sor d + föl) d (színé d + föl) d (színű d + ren) d (szerető d + kó) d (szó d + fjor) d (szerű d + harma) d (száz d + kar) d (szíj d + negye) d (szél d +smarag) d (szín d + száza) d (szám d + tér) d (szokny d + _va) d (szag d + _va) d (szam d + _va) d (szárny d + árpá) d (zászló d + árpá) d (sáv d + beszé) d (zagy d .group dz fogó) dz (kod ts @@ -593,14 +628,21 @@ huszone) gy (es J: _e) gy (é_ J: _mint-e) gy (é_ J: na) gy (sáp J +_hiszeke) gy (e J: +huszone) gy (ed J: +huszone) gy (ez J: + újrae) gy (esít J: + e) gy (éjszak J: .group h h h hertz hER2ts hh (-L01 h minde) hh (ez h - - + _cse) h (ország //special exception, the h phoneme doesn't need spokening thiws word part + _cse) h (szlovák //special exception, the h phoneme doesn't need spokening thiws word part + _ju) h (kolb + _ju) h (sajt .group i i i @@ -620,6 +662,7 @@ _mint-e) gy (é_ J: v) í (zére i sz) í (ve i t) í (zes i + t) í (zesz i: sz) í (vel i: _t) í (zük i _sz) í (vattak i @@ -627,6 +670,9 @@ _mint-e) gy (é_ J: _sz) í (vató i _v) í (zi i //for example vízipipa, vízimentők beginning words need spokening i, not i: phoneme _v) í (zió i: //But this word an exception for prewious rule +agressz) í (v i: + _sz) í (nész i + _sz) í (néssz i .group j j j @@ -816,6 +862,8 @@ helybe) n (jár n mikrofo) n (nyílás n szí) n (nyom n kormá) ny (javaslat n^ + _me) ny (assz n^ + _me) nny (assz n^ .group o o o @@ -899,7 +947,7 @@ robbaná) s S gyalogo) s (zászló S ki) s (zsidó S szennye) s (zsá S - alvá) s (zavar S + alvá) s (zava S magatartá) s (zavar S erőforrá) s (zabál S működé) s (zava S @@ -913,6 +961,18 @@ identitá) s (zavar S fáklyá) s (zen S _ki) s (zombor S _alvá) ssz (üksé Ss +_barná) ssz (ürke Ss +_kőműve) s (sz S + _lőré) s (sz S +_pörkölé) s (sz S + hadá) s (szag S + _körö) s (szakál S + hú) s (szag S +gránáto) s (zászló S +páncélo) s S +robbaná) s (zaj S + üté) s (záp S + mozgá) s (zava S .group ss ssz ss2 @@ -953,7 +1013,7 @@ zuhaná) ssz (erű Ss karo) ssz (éria Ss bor) ssz (em Ss bor) ssz (ór Ss - kéke) ssz (ürke Ss + kéke) ssz (ürk Ss éde) ssz (áj Ss égé) ssz (abály Ss egyene) ssz Ss @@ -1150,6 +1210,140 @@ _farka) ssz (ig Ss lako) ssz (ám Ss _szencsége) ssz (űz Ss ki) ssz (ekrény Ss +csattaná) ssz (erű Ss + csikó) ssz (ám Ss +_csipké) ssz Ss +csobbaná) ssz (erű Ss +csuklá) ssz (erű Ss +csavará) ssz (erű Ss + ájulá) ssz (erű Ss +aranyo) ssz (őke Ss +_bakfi) ssz Ss + barná) ssz (ők Ss + bélé) ssz (alag Ss +_berendezé) ssz (e Ss + omlá) ssz (ag Ss + rengé) ssz (erű Ss + pergé) ssz (erű Ss + dú) ssz (akáll Ss + _éde) ssz (esztest Ss +egyene) ssz (ál Ss + előőr) ssz (erű S|s + rúgá) ssz (erű Ss + farka) ssz (uk Ss + _fá) ssz (ín Ss +fehére) ssz (őke Ss +feketé) ssz (ürk Ss + pa) ssz (íroz s + ma) ssz (íroz s +szerelé) ssz (ett Ss +fertőzé) ssz (erű Ss + fájá) ssz (er Ss +csuszamlá) ssz (erű Ss + fűté) ssz (ag Ss +habitu) ssz (erű Ss +halotta) ssz (ob Ss + hányá) ssz (ag Ss +világo) ssz (őke Ss + + kéré) ssz (erű Ss +rándulá) ssz (erű Ss + utalá) ssz (erű Ss +villaná) ssz (erű Ss + hárma) ssz (ám Ss + szoro) ssz (erű Ss +_hente) ssz (ak Ss + örgé) ssz (erű Ss + hő) ssz (erep Ss + hú) ssz (állít Ss + járá) ssz (olgálat Ss + járá) ssz (erű Ss + irtá) ssz (él Ss +jelenté) ssz (int Ss + karo) ssz (ériá Ss +katekizmu) ssz (erű Ss +_keríté) ssz (ag Ss + _kevé) ssz (er Ss + látá) ssz (ög Ss +nyilatkoztatá) ssz (erű Ss +szögellé) ssz (erű Ss +_kitünteté) ssz Ss +kommunikáció) ssz (ob Ss + köle) ssz (em Ss + köntö) ssz (erű Ss +könyöklé) ssz (él Ss + _körö) ssz (ig Ss + _kőri) ssz Ss +_küldeté) ssz Ss +labirintu) ssz (er Ss +lázadá) ssz Ss +_lejté) ssz S|s + üté) ssz (ám Ss + málhá) ssz Ss + medre) ssz (ék Ss + _mela) ssz (ín s: + _méne) ssz Ss +_mesze) ssz (ür Ss + _móku) ssz Ss + _napo) ssz (ob Ss + utazá) ssz (erű Ss + nedve) ssz (ürk Ss + neme) ssz (ív Ss + neme) ssz (őrm Ss +nyikkaná) ssz (er Ss + nyomá) ssz (ab Ss + orvo) ssz (áz Ss + orvo) ssz (er Ss + vodá) ssz (int Ss +örvénylé) ssz (erű Ss + párná) ssz (ék Ss + _pené) ssz (ín s: +pedagógu) ssz (ob Ss +pirami) ssz (erű Ss +_pirító) ssz (e Ss +_piszko) ssz Ss +pisztolylövé) ssz (erű Ss + rádió) ssz (erep Ss + rántá) ssz (erű Ss +repülő) ssz (árny Ss + _ré) ssz (erű Ss +_rózsá) ssz (ők Ss + ruhá) ssz (ekere Ss +selyme) ssz (őke Ss + sérté) ssz (ám Ss +borzongá) ssz (erű S|s +sikoltá) ssz (erű Ss + _sor) ssz (eszély Ss +suhogá) ssz (erű Ss + _suva) ssz (a s: + tálto) ssz (árny Ss +szórakozá) ssz (ám Ss + szúró) ssz (em Ss + támlá) ssz (ék Ss +társalgá) ssz (ámba Ss +templomo) ssz (ak Ss +_tigri) ssz Ss + _típu) ssz (ám Ss + _típu) ssz (öveg Ss +tizede) ssz (állás Ss + tölté) ssz (ab Ss + tölté) ssz (erű Ss + ulánu) ssz (ázad Ss +utasítá) ssz (erű Ss + uta) ssz (int Ss + uta) ssz (olg Ss +ügyelete) ssz (ob Ss +_vallomá) ssz Ss + _váro) ssz (él Ss + vére) ssz (áj Ss + vere) ssz (őke Ss + vérte) ssz (ázad Ss +vörhenye) ssz (őke Ss + _vörö) ssz Ss +zavaro) ssz (ür Ss +_nesze) ssz (er s + a) ssz (isztens s + ka) ssz (íroz s .group sz @@ -1162,10 +1356,8 @@ _szencsége) ssz (űz Ss sz (öld Sz va) sz (abl S||z egé) szs (ég S -liszte) szs (ák SZ rend) sz (er s: -krumpli) szs (ák SZ -szerszámo) szs (ák SZ + rend) sz (erető s maro) sz (ug Sz körö) sz (ug Sz fáklyá) sz (ene Sz @@ -1173,23 +1365,16 @@ fáklyá) sz (ene Sz evé) sz (avar Sz vonó) sz (ene Sz va) sz (ár Sz -kenyere) szs (ák SZ sonká) szs (eml SZ vize) szs (em SZ iga) szs (ágos S: li) sztsz (erű st|s tava) sz (ára s -rongyo) szs (ák SZ para) sztsz (ek st|s rava) sz (ár s _ka) sztsze st|sE -szemete) szs (ák SZ dro) sztsze (rző st|sE //drosztszerződés word need spokening st and single sE phoneme - _búzá) szs (ák SZ -_szene) szs (ák SZ -_szalmá) szs (ák SZ va) szs (anér SZ -gaboná) szs (ák SZ va) sz (ápor Sz bati) sztsz (erű st|s para) sztsz (andál st|s @@ -1201,13 +1386,11 @@ gaboná) szs (ák SZ azbe) szt (sisak st nyu) szt (süveg st serté) szs (ír SZ - szere) szs (ák SZ - rizse) szs (ák SZ tá) szs (in SZ - ruhá) szs (ák SZ - ro) szs (ák SZ va) szs (ír SZ - széná) szs (ák SZ + szs (ák SZ //All szsák part containing part need spokening single S and Z phoneme, for example kenyereszsák, pénzeszsák, krumpliszsák, cukroszsák words + sz (acsk Sz //all szacsk containing part block need spokening single S and z phoneme, for example chipseszacskó word + legké) szs (éges S: .group t t t @@ -1308,6 +1491,7 @@ fejeze) t (sor t küldö) tt (gyűl t szé) t (söpör t rokkan) t (segít t +összebéké) ts (e tS: .group tj C) tj c @@ -1376,6 +1560,8 @@ terüle) tj (elöl tj _á) tj (u tj _tábláza) tj (egy tj üzene) tj (el tj + á) tj (össz tj +_keresz) tj (á tj .group ts ts (_S2 tS //general rule with word end of ts letters @@ -1588,6 +1774,7 @@ támogato) ts (ág tS: _á) tsz (olgál t|s felira) ts (áv t|S pö) tsz (en ts: + _á) tsz (orult t|s .group tt tt t: @@ -1604,6 +1791,7 @@ helyeze) tt (ről t: ttyj c: keresz) tt (űz t: me) ttsz (et ts: +bennszülö) tt (jelmez t .group u u u @@ -1614,6 +1802,10 @@ szovjet) u (nió u: h) ú (szan u h) ú (szas u h) ú (szat u + _h) ú (gocs u + h) ú (gom u + _h) ú (gy u + _h) ú (ggy u .group ü @@ -1786,7 +1978,6 @@ magyará) z (kod s ezkö) z (sáv z eszkö) z (sáv z _mé) z (sárg z - tű) z (sáv z _tí) z (sor z _szá) z (sor z ré) z (sisak z @@ -1799,8 +1990,21 @@ magyará) z (kod s ezkö) z (sor z wal) z (er ts tanácskö) z (társaság s - tű) z (sebesség z + tű) z z _tű) z (zsonglőr z + búcsú) z (tat s + bogo) z (ták s + fogó) z (kod ts + szára) z (sült z + precí) z (ség z + _ro) zs (zabál Z + _bor) z (zsír z + oszto) z (kod s +csatlako) z (tok s + _bron) z z + tű) z (zsák z + búcsú) z (kod s + búcsú) z (t s .group $ dolla:R2 diff --git a/dictsource/hy_rules b/dictsource/hy_rules old mode 100755 new mode 100644 diff --git a/dictsource/is_list b/dictsource/is_list old mode 100755 new mode 100644 diff --git a/dictsource/ka_list b/dictsource/ka_list old mode 100755 new mode 100644 diff --git a/dictsource/ka_rules b/dictsource/ka_rules old mode 100755 new mode 100644 index 5dff815c..729321d4 --- a/dictsource/ka_rules +++ b/dictsource/ka_rules @@ -140,13 +140,13 @@ // For cyrillic characters (U+0400 to U+04FF) use Russian voice .group 0xd0 - \320 _^_RU + 0xd0 _^_RU .group 0xd1 - \321 _^_RU + 0xd1 _^_RU .group 0xd2 - \322 _^_RU + 0xd2 _^_RU .group 0xd3 - \323 _^_RU + 0xd3 _^_RU .group $ dolari diff --git a/dictsource/kk_list b/dictsource/kk_list new file mode 100644 index 00000000..36aa86c3 --- /dev/null +++ b/dictsource/kk_list @@ -0,0 +1,68 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Kazakh + +б be +в ve +г ge +ғ Ge +д de +ж Ze +з ze +й q8sqA'i +к kA +қ qA +л El +м Em +н En +ң EN +п pe +р Er +с Es +т te +ф Ef +х XA +һ hA +ц tse +ч tSe +ш Sa +щ StSa +ъ Aj8ru +ь ZINISkelIk + +//numbers +_0 n'Yl +_1 b'Ir +_2 ek'I +_3 u#S +_4 t'Yrt +_5 b'es +_6 Alt'8 +_7 Z'et'I +_8 seg'Iz +_9 toG'8z +_1X 'on +_2X Zi'8rmA +_3X 'ot8z +_4X q'8r8q +_5X 'el;u +_6X 'Alp8s +_7X Z'etpIs +_8X s'eksen +_9X t'oqsAn +_0C Z'u#z +_0M1 m'8N +_0M2 milli'on +_0M3 milli'Ard +_dpt _b,u#tIn + +// used after decimal point +_0Z1 'onnAn // tenths +_0Z2 Z'u#zden // hundredths +_0Z3 m'8NnAn +_0Z4 'on||m,8NnAn +_0Z5 Z'u#z||m,8NnAn +_0Z6 milli'onnAn +_0Z7 'on||milli,onnAn +_0Z8 Z'u#z||milli'onnAn +_0Z9 milli'ArdtAn diff --git a/dictsource/kk_rules b/dictsource/kk_rules new file mode 100644 index 00000000..0b8ef9b8 --- /dev/null +++ b/dictsource/kk_rules @@ -0,0 +1,130 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Kazakh + +.group а + а A + а (й a + +.group ә + ә & + +.group б + б b + +.group в + в v + +.group г + г g + +.group ғ + ғ G + +.group д + д d + +.group е + е e + +.group ё + ё ;o + +.group ж + ж Z + +.group з + з z + +.group и + и i + +.group й + й j + +.group к + к k + +.group қ + қ q + +.group л + л l + +.group м + м m + +.group н + н n + +.group ң + ң N + +.group о + о o + +.group ө + ө Y + +.group п + п p + +.group р + р r + +.group с + с s + +.group т + т t + +.group у + у u + A) у w + у (A w + +.group ұ + ұ U + +.group ү + ү u# + +.group ф + ф f + +.group х + х X + +.group һ + һ h + +.group ц + ц ts + +.group ч + ч tS + +.group ш + ш S + +.group щ + щ StS + +.group ы + ы 8 // oU ?? + +.group і + і I + +.group э + э E + +.group ю + ю ;u + +.group я + я ;a + +.group + ъ + ь diff --git a/dictsource/kn_list b/dictsource/kn_list old mode 100755 new mode 100644 diff --git a/dictsource/kn_rules b/dictsource/kn_rules index 7b3370dd..f8cd483f 100644 --- a/dictsource/kn_rules +++ b/dictsource/kn_rules @@ -258,9 +258,9 @@ .group 0xe0a4 // devanagari - \340\244 _^_HI // switch to hindi voice for devanagari characters + 0xe0a4 _^_HI // switch to hindi voice for devanagari characters .group 0xe0a5 // devanagari - \340\245 _^_HI + 0xe0a5 _^_HI .group diff --git a/dictsource/lv_list b/dictsource/lv_list old mode 100755 new mode 100644 diff --git a/dictsource/lv_rules b/dictsource/lv_rules old mode 100755 new mode 100644 diff --git a/dictsource/mk_list b/dictsource/mk_list old mode 100755 new mode 100644 diff --git a/dictsource/mk_rules b/dictsource/mk_rules old mode 100755 new mode 100644 diff --git a/dictsource/ml_rules b/dictsource/ml_rules index 6191e601..c07810dd 100644 --- a/dictsource/ml_rules +++ b/dictsource/ml_rules @@ -273,9 +273,9 @@ _പ്രൊ) ഫ (സര് fa .group 0xe0a4 // devanagari - \340\244 _^_HI // switch to hindi voice + 0xe0a4 _^_HI // switch to hindi voice .group 0xe0a5 // devanagari - \340\245 _^_HI + 0xe0a5 _^_HI .group diff --git a/dictsource/mt_list b/dictsource/mt_list old mode 100755 new mode 100644 diff --git a/dictsource/mt_rules b/dictsource/mt_rules old mode 100755 new mode 100644 diff --git a/dictsource/nci_list b/dictsource/nci_list old mode 100755 new mode 100644 diff --git a/dictsource/nci_rules b/dictsource/nci_rules old mode 100755 new mode 100644 diff --git a/dictsource/ne_list b/dictsource/ne_list new file mode 100644 index 00000000..98cc59cc --- /dev/null +++ b/dictsource/ne_list @@ -0,0 +1,174 @@ +// Nepali +// This file is UTF8 encoded + +// Numbers +// devanagari numbers are changed to latin characters before translation + +_0 S'un.j@3 +_1 'ek +_2 d'uI +_3 t'in +_4 c'ar: +_5 p'anc +_6 ch'@2 +_7 s'at +_8 'at.h +_9 n'VU + +_10 dVs +_11 egh'ar@ +_12 b'ar@ +_13 t'er@ +_14 ch'od@ +_15 p'Vndr@ +_16 s'or@ +_17 s'Vt:r@2 +_18 Vt.h:'ar@2 +_19 unn'aIs + +_20 b'is +_21 ek:'aIs +_22 b'aIs +_23 t'eIs +_24 c'obis +_25 p@c:'is +_26 ch@bb'irs +_27 s@t:'aIs +_28 ath:'aIs +_29 unt'is +_30 t'is + +_31 ekt:'is +_32 bat:'is +_33 tet:'is +_34 co~t'is +_35 p@Int:'is +_36 chaT:'tis +_37 s@Int'is +_38 art'is +_39 untal'is + +_40 cal'is +_41 ikcal'is +_42 baIal'is +_43 tE~tal'is +_44 cowal'is +_45 paI'ntalis +_46 chhijal'is +_47 sE~tal'is +_48 artal'is +_49 'un^cas + +_50 p@c'as +_51 ek'aUnn@ +_52 baH'unn@ +_53 tr'ipnn@ +_54 c'Ouw@nn@ +_55 p'achp@nn@ +_56 chh@p:'p@nn@ +_57 s@nt'aUnn@ +_58 @nth:'aUnn@ +_59 un@n'sat:hi + +_60 s'at.hi +_61 'iks@t.hi +_62 b'@is@t.hi +_63 t'irs@t.hi +_64 c'O~s@t.hi +_65 p@Ins@t.hi +_66 ch'ijas@t.hi +_67 s'Vrs@t.hi +_68 ars@t.hi +_69 un@ans@tt@ri + +_70 sat:'Vr: +_71 ikhat:'Vr: +_72 b@hat:'Vr: +_73 tihat:'Vr: +_74 cohat:'Vr: +_75 pach,at:'Vr: +_76 ch@3j@3t:'Vr: +_77 s@t@hat:'Vr: +_78 athhat:'Vr: +_79 ,un^ias'i + +_80 ,Vss'i +_81 ikjas'i +_82 baIas'i +_83 tiras'i +_84 coras'i +_85 p@'casi +_86 chijas'i +_87 sVt:as'i +_88 ath:as'i +_89 'unan:'n@b:e + +_90 nVb:'e +_91 ikj'an@we +_92 b'an@we +_93 tir'an@we +_94 cor'am@we +_95 p@c'an@we +_96 chij'an@we +_97 s@t:'an@we +_98 ath:'an@we +_99 nin^j'an@we + +_0C s'Ve +_0M1 h@z'ar +_0M2 l'akh +_0M3 cr'ore +_0M4 b'ilion // ?? English +_dpt _d@s@ml'o:_ // ?? what is Hi for "." ? + +// Single consonants +क k@ +क़ q@ +ख kh@ +ख़ x@ +ग g@ +ग़ Q@ +घ gh@ +ङ N@ +च c@ +छ ch@ +ज J@ +ज़ z@ +झ Jh@ +ञ n^@ +ट t.@ +ठ t.h@ +ड d.@ +ड़ r.@ +ढ d.h@ +ण n.@ // retroflex n.@ +त t@ +थ th@ +द d@ +ध dh@ +न n@ +प p@ +फ ph@ +फ़ f@ +ब b@ +भ bh@ +म m@ +य j@ +र r@ +ऱ r@ +ल l@ +ळ l.@ +व v@ +श S@ +ष s.@ // retroflex [S] +स s@ +ह H@ +क़ q@ +ख़ x@ +ग़ Q@ +ज़ z@ +ड़ r-@ +ढ़ hr@ +फ़ f@ +य़ j@ + diff --git a/dictsource/ne_rules b/dictsource/ne_rules new file mode 100644 index 00000000..6e7618d9 --- /dev/null +++ b/dictsource/ne_rules @@ -0,0 +1,596 @@ + +// Rules for Nepali +// This file is UTF8 encoded + +// letter groups: +// A vowel letters +// B vowel signs and virama ् +// C consonants +// Y vowel letters and vowel signs + + +// conditional rules +// ?1 drop schwa at end of word + + +.replace + ० 0 + १ 1 + २ 2 + ३ 3 + ४ 4 + ५ 5 + ६ 6 + ७ 7 + ८ 8 + ९ 9 + + +// Vowels + +.group अ + अ V + अँ V~ // + candrabinbu + + +.group आ + आ a + आँ a~ // + candrabinbu + आइ aI + आउ aU + आऊ aU + + +.group इ + इ i + इँ i~ + + +.group ई + ई i + ईँ i~ + + +.group उ + उ u + उँ u~ + उई uI + + +.group ऊ + ऊ u + ऊँ u~ + + +.group ऋ + ऋ rI + + +.group ऌ + ऌ l- // vocalic l + + +.group ऍ + ऍ E // candra e + + +.group ऎ + ऎ e + ऎँ e~ + + +.group ए + ए e + एँ e~ + एउ eU + + +.group ऐ + ऐ VI + + +.group ऑ + ऑ O // candra O + + +.group ऒ + ऒ o + + +.group ओ + ओ o + ओउ oU + ओऊ oU + ओइ oI + + +.group औ + औ VU + + +// Vowel Signs + +.group ा + ा a + ाँ a~ + ाइ aI + ाऊ aU + ाउ aU + +.group ि + ि i + िँ i~ + +.group ी + ी i + ीँ i~ + +.group ु + ु u + ुँ u~ + ुई uI + +.group ू + ू u + ूँ u~ + +.group ृ + ृ rI + +.group ॄ + ॄ rI + +.group ॅ + ॅ E + +.group ॆ + ॆ e + ॆँ e~ + +.group े + े e + ेँ e~ + ेउ eU + +.group ै + ै VI + +.group ॉ + ॉ O + +.group ॊ + ॊ o + +.group ो + ो o + ोउ oU + ोऊ oU + ोइ oI + +.group ौ + ौ VU + + +.group ॢ // vowel sign l + ॢ l- + + +.group ॣ // vowel sign ll + ॣ l-: + + +.group ॐ + ॐ o~m + +// Consonants + +.group क + क kV + कँ kV~ + क (B k + क (्य k: +?1 क (_ k + ्) क (_ k@/ + क़ qV + क़ँ qV~ + क़ (B q +?1 क़ (_ q + ्) क़ (_ q@/ + +.group ख + ख khV + खँ khV~ + ख (B kh +?1 ख (_ kh + ्) ख (_ kh@/ + ख़ xV + ख़ँ xV~ + ख़ (B x +?1 ख़ (_ x + ्) ख़ (_ x@/ + +.group ग + ग gV + गँ gV~ + ग (B g +?1 ग (_ g + ्) ग (_ g@/ + ग़ QV + ग़ँ QV~ + ग़ (B Q +?1 ग़ (_ Q + ्) ग़ (_ Q@/ + +.group घ + घ ghV + घँ ghV~ + घ (B gh +?1 घ (_ gh + ्) घ (_ gh@/ + +.group ङ + ङ NV + ङँ NV~ + ङ (B N +?1 ङ (_ N + ्) ङ (_ N@/ + +.group च + च c@3 + चँ cV~ + च (B c + च (्य c: +?1 च (_ c + ्) च (_ c@/ + +.group छ + छ ch@3 + छँ chV~ + छ (B ch +//?1 छ (_ ch + ्) छ (_ ch@/ + +.group ज + ज J@3 + जँ JV~ + ज (B J +?1 ज (_ J + ्) ज (_ J@/ + ज़ zV + ज़ँ zV~ + ज़ (B z +?1 ज़ (_ z + ्) ज़ (_ z@/ + +.group झ + झ Jh@3 + झँ JhV~ + झ (B Jh +?1 झ (_ Jh + ्) झ (_ Jh@/ + +.group ञ + ञ n^@3 + ञ n^V~ + ञ (B n^ +?1 ञ (_ n^ + ्) ञ (_ n^ + +.group ट + ट t.V + टँ t.V~ + ट (B t. + ट (्य t.: +?1 ट (_ t. + ्) ट (_ t.@/ + +.group ठ + ठ t.hV + ठँ t.hV~ + ठ (B t.h +?1 ठ (_ t.h + ्) ठ (_ t.h@/ + +.group ड + ड d.V + डँ d.V~ + ड (B d. +?1 ड (_ d. + ्) ड (_ d.@/ + + ड़ r.V + ड़ँ r.V~ + ड़ (B r. +?1 ड़ (_ r. + ्) ड़ (_ r.@/ + +.group ढ + ढ d.hV + ढँ d.hV~ + ढ (B d.h +?1 ढ (_ d.h + ्) ढ (_ d.h@/ + ढ़ r.hV // nukta (should be retroflex flap) + ढ़ँ r.hV~ + ढ़ (B r.h +?1 ढ़ (_ r.h + ्) ढ़ (_ r.h@/ + +.group ण + ण n.V + णँ n.V~ + ण (B n. +?1 ण (_ n. + ्) ण (_ n.@/ + +.group त + त tV + तँ tV~ + त (B t + त (्य t: +?1 त (_ t + ्) त (_ t@/ + +.group थ + थ thV + थँ thV~ + थ (B th +?1 थ (_ th + ्) थ (_ th@/ + +.group द + द dV + दँ dV~ + द (B d +?1 द (_ d + ्) द (_ d@/ + +.group ध + ध dhV + धँ dhV~ + ध (B dh +?1 ध (_ dh + ्) ध (_ dh@/ + +.group न + न nV + नँ nV~ + न (B n +?1 न (_ n + ्) न (_ n@/ + र्) न (_ n // r +virama + + +.group ऩ + ऩ n: // should this be a long [n] ? + +.group प + प pV + पँ pV~ + प (B p + प (्य p: +?1 प (_ p + ्) प (_ p@/ + +.group फ + फ phV + फँ phV~ + फ (B ph +?1 फ (_ ph + ्) फ (_ ph + फ़ fV + फ़ँ fV~ + फ़ (B f +?1 फ़ (_ f + ्) फ़ (_ f@/ + +.group ब + ब bV + बँ bV~ + ब (B b +?1 ब (_ b + ्) ब (_ b@/ + +.group भ + भ bhV + भँ bhV~ + भ (B bh +?1 भ (_ bh + ्) भ (_ bh@/ + +.group म + म mV + मँ mV~ + म (B m +?1 म (_ m + ्) म (_ m@/ + र्) म (_ m // r +virama + न्) म (_ m // n +virama + +.group य + य j@3 + यँ jV~ + य (B j +?1 य (_ j + ्) य (_ j@/ + +.group र + र r@2 + रँ r@2 + र (B r +?1 र (_ r + ्) र (_ r@/ + +.group ऱ // rra + ऱ rV // (temporary) same as [r] + ऱ (B r +?1 ऱ (_ r + ्) ऱ (_ r@/ + +.group ल + ल lV + लँ lV~ + ल (B l +?1 ल (_ l + ्) ल (_ l@/ + +.group ळ + ळ l.V + ळँ l.V~ + ळ (B l. +?1 ळ (_ l. + ्) ळ (_ l.@/ + +.group ऴ + ऴ l.V // (temporary) same as [l.] + ऴँ l.V~ + ऴ (B l. +?1 ऴ (_ l. + ्) ऴ (_ l.@/ + +.group व + व vV + वँ vV~ + व (B v + _) व wV + _) वँ wV~ + _) व (B w + _) व (् v // +virma +?1 व (_ v + ्) व (_ v@/ + +.group श + श SV + शँ SV~ + श (B S +?1 श (_ S + ्) श (_ S@/ + +.group ष + ष s.V + षँ s.V~ + ष (B s. +?1 ष (_ s. + ्) ष (_ s.@/ + +.group स + स sV + सँ sV~ + स (B s +?1 स (_ s + ्) स (_ s@/ + +.group ह + ह HV + हँ HV~ + ह (B H +?1 ह (_ H + ्) ह (_ H@/ + + + // nukta, modifies a consonant + +.group ऽ // avagraha, lengthens a vowel ?? + ऽ : + +.group ँ + ँ n // candrabindu + +.group ं + ं m // anusvara + ं (प m + ं (फ m + ं (ब m + ं (भ m + ं (म m + + ं (ट n. + ं (ठ n. + ं (ड n. + ं (ढ n. + ं (ण n. + + ं (च n^ + ं (छ n^ + ं (ज n^ + ं (झ n^ + ं (ञ n^ + ं (य n^ + + ं (क N + ं (ख N + ं (ग N + ं (घ N + ं (ङ N + ं (ह N + +.group ः + ः H // visarga + +.group ् // virama + ् + +// Extra consonants + +.group क़ // qa + क़ qV + क़ (B q +?1 क़ (_ q + ्) क़ (_ q@/ + +.group ख़ // khha + ख़ xV + ख़ (B x +?1 ख़ (_ x + ्) ख़ (_ x@/ + +.group ग़ // ghha + ग़ QV + ग़ (B Q +?1 ग़ (_ Q + ्) ग़ (_ Q@/ + +.group ज़ // za + ज़ zV + ज़ (B z +?1 ज़ (_ z + ्) ज़ (_ z@/ + +.group ड़ // dddha + ड़ z.V // ??? + ड़ (B z. +?1 ड़ (_ z. + ्) ड़ (_ z.@/ + +.group ढ़ // rha (aspirated version of dddha) + ढ़ r.hV + ढ़ (B r.h +?1 ढ़ (_ r.h + ्) ढ़ (_ r.h@/ + +.group फ़ // fa + फ़ fV + फ़ (B f +?1 फ़ (_ f + ्) फ़ (_ f@/ + +.group य़ // yya + य़ jV + य़ (B j +?1 य़ (_ j + ्) य़ (_ j@/ + +.group ॠ // rr + ॠ V-rr + +.group ॡ // ll + ॡ l-: // long syllabic l + + + + +.group + $ dOlV + % pVsEnt + + diff --git a/dictsource/no_list b/dictsource/no_list old mode 100755 new mode 100644 diff --git a/dictsource/nso_list b/dictsource/nso_list new file mode 100644 index 00000000..e3d28f79 --- /dev/null +++ b/dictsource/nso_list @@ -0,0 +1,206 @@ +// Northern Sotho translation list +// This file is UTF-8 encoded. + +// letters (just guesses) +a a +b bi:i: +c si:i: +d di:i: +e i:i: +f e:fu +g x2@ +h eitSi +j dZ'ei +k kei +l e:li +m 'emu +n 'eni +o o:o: +p p'i:i: +q kju +r aR3e +s 'e:si +t t'i:i: +u u:u: + +v v'i:i: +w dabalju +x ek'ese +y w'ai +z z'e:ti + + + + +// numbers +_0 lef'e:la +_1 tee +_2 p'edi +_3 t'a:R3o +_4 'n-ne +_5 l#'a:no +_6 ts'e:la +_7 S'u:pa +_8 sisw'a:i +_9 sen^'ane +_1X les'o:me +_2X mas'o:mepedi +_3X mas'o:met'a:R3o +_4X mas'o:me'n-ne +_5X mas'o:mel#'a:no +_6X mas'o:mets'e:la +_7X mas'o:meS'u:pa +_8X mas'o:mesisw'a:i +_9X mas'o:mesen^'ane +_0C lekX'olo +//_1C m,iam'oJa +_2C _|makX'olopedi +_3C _|makX'olot'a:R3o +_4C _|makX'olo'n-ne +_5C _|makX'olol#'a:no +_6C _|makX'olots'e:la +_7C makX'oloS'u:pa +_8C makX'olosisw'a:i +_9C makX'olosen^'ane +_0M1 's-'ikete +_1M1 _|'s-'ikete +_2M1 dik'etep'edi +_3M1 dik'etet'a:R3o +_4M1 dik'eten-ne +_5M1 dik'etel#'a:no +_6M1 dik'etets'e:la +_7M1 dik'eteSu:pa +_8M1 dik'etesisw'a:i +_9M1 dik'etesen^'ane +_1M2 dik'etetSelekX'o:lo +_2M2 dik'etetSemakX'o:lop'edi +_3M2 dik'etetSemakX'o:lot'a:R3o +_4M2 dik'etetSemakX'o:lon-ne +_5M2 dik'etetSemakX'o:lol#'ano +_6M2 dik'etetSemakX'o:lots'e:la +_7M2 dik'etetSemakX'o:loSu:pa +_8M2 dik'etetSemakX'o:losisw'a:i +_9M2 dik'etetSemakX'o:losen^'ane +_0M3 _|mili'oni // 1,000,000 +_0M4 _|bili'oni +_dpt fe:Xelu'a:na + + +bona $u // they,them +yona $u+ // it +wena $u+ //you + +nna $u+ // i +yena $u+ // him, her, it + +lena $u+ //ploral to wena +rena $u+ // we,us + + +//accents +_cir k'efa + +// pronouns +mimi $u+ +sisi $u+ +wewe $u+ +nyinyi $u+ +yeye $u+ +wao $u+ + +hii $u // this, these +hilo $u+ // this,that (previously menioned) + +wake $u+ // his,her,its +yake $u+ +zake $u+ + + +// prepositions +wa $u $brk // of +ya $u $brk // of,by they,them +la $u $brk // of +cha $u $brk // of +vya $u $brk // of +za $u $brk // of +pa $u $brk // of +kwa $u $brk // of +mwa $u $brk // of + +bi $u $brk // in +fi $u $brk // in,on +pa $u $brk // at + +min $u $brk // from +toka $u $brk // from +katika $u $brk // from, out of +kuanzia $brk // from,since +tangu Su $brk // from,between +hata $u $pause // until +baada $u $brk // after +bila $u $pause // without +hadi $u $pause // up to +huko $u $brk // there, as when + +kwacho $pause // by means of which +kwalo $pause // by means of which +kwao $pause // by means of which +kwavyo $pause // by means of which +kwaye $pause // by means of which + +kwa $u $brk // with +mwenye $u $brk // with +wenye $u $brk // with +yenye $u $brk // with +1enye $u $brk // with +chenye $u $brk // with +vyenye $u $brk // with +zenye $u $brk // with + + +// conjunctions +na $u $pause // and +ama $u $pause // or +ao $u $pause // or +au $u $pause // or +aidha $pause // and +bali $u $pause // but +ila $pause // but,except +angao $pause // although +badalaya $pause // instead +basi $u+ $pause // so,then +ili $u+ $pause // so that +ilikwamba $pause // so that +ijapo $pause // although, even if +ijapokuwa $pause // although +ingawa $pause // although +iwapo $pause // when +japo $pause +(juu ya) J,u:ja $pause // as for +kama $u+ $pause // if,like +kisha $pause // moreover +kusudi $pause // in order to +kuwa $u $pause // that +(kwa kuwa) kwa||k,uwa $pause // becuse +kwamba $u $pause // that +lakini $pause // however +walakini $pause // however +pamoja $pause // together with +panapo $pause // when it is +pindi $u+ $pause // if,when +taraa $u+ $pause // if +wala $pause // either,neither +yaani $pause // i.e. +//Northern Sotho words +bja vvJ'a + +raloka R3%al'U:ka +sekolo sek'U:lU +taba t_'a:ba +thaba t'a:ba + + + + + + diff --git a/dictsource/nso_rules b/dictsource/nso_rules new file mode 100644 index 00000000..52c9a44a --- /dev/null +++ b/dictsource/nso_rules @@ -0,0 +1,150 @@ + +// Northern Sotho translation rules +// This file is UTF-8 encoded + + +.group a + a a + _C) a a + _) a (C a + a (_ a + a (s a: + +.group b + b B + + +.group c + c k + ch tS + +.group d + d d + dh D + +.group e + e e + ee i;e: + s) e i + + +.group f + f f + +.group g + g X + _k) g x2 + + gh Q + + +.group h + h h + hl l# + + +.group i + i i + ii i: + +.group j + j J + +.group k + k k + kh x + +.group l + l l + +.group m + m m + _) m m- + m (A m + K) m (@@ _|m + K) m (C m- + K) m (b@@ _|m + K) m (v@@ _|m + K) m (w@@ _|m + +.group n + n n + _) n n- + n (A n + n (@@ n + ny n^ + n (ch n^ + n (j n^ + ng' N + n (k N + _) n (k N- + _) n (k@@ N- + n (g N + _) n (g N- + _) n (g@@ N- + ng N + +.group o + o U + oo o: + +.group p + p p + +.group q + q k + +.group r + r R3 + +.group s + s s + s (e s- + _t) se si: +// sh S + +.group t + t t + th th + tsen ts'e:n + tlh K + tl l# + + +.group u + u u + uu u: + _d) u u: + +.group v + v v + +.group w + w w + +.group x + x ks + +.group y + y j + +.group z + z z + + +.group + $ dola + % asilimia + + * n^ota + *) * (* + ** + **) * (_ _:: + + š S + +_t) š tS + _p) š (h S + + ê E + ô o diff --git a/dictsource/pa_list b/dictsource/pa_list new file mode 100644 index 00000000..77fa72d9 --- /dev/null +++ b/dictsource/pa_list @@ -0,0 +1,158 @@ + +// This file is UTF8 encoded +// Punjabi/Gurmukhi + + +// Numbers +_0 z'iRo +_1 'Ik: +_2 d'o +_3 t'I~n +_4 c'aR +_5 p'VnJ +_6 ch'e +_7 s'Vt: +_8 'Vth.: +_9 n'O~ + +_10 d'Vs +_11 gI'aRa~ +_12 b'aRa~ +_13 t'eRa~ +_14 c'Oda~ +_15 p'Vnd@Ra~ +_16 s'ol.a~ +_17 s@t'aRa~ +_18 Vth.'aRa~ +_19 'Uni + +_20 v'iH +_21 Ik:i +_22 b'ai +_23 t'ei +_24 c'Ovi +_25 p'VnJhi +_26 ch'Vb:i +_27 s@t'ai +_28 Vth.'ai +_29 Un'Vt:i + +_30 t'iH +_31 Ik'Vt:i +_32 b'Vt:i +_33 t'eti +_34 c'O~ti +_35 p'E~ti +_36 ch'Vt:i +_37 s'E~ti +_38 Vth.'Vt:i +_39 Un@t'ali + +_40 c'ali +_41 Ik@t'ali +_42 b@t'ali +_43 t@R@t'ali +_44 cOt'ali +_45 p@nJ@t'ali +_46 chI'ali +_47 s@nt'ali +_48 Vth.:@t'ali +_49 'Un.I~Ja + +_50 p@nJ'aH +_51 'Ik@vI~Ja +_52 b'VvI~Ja +_53 t'VR@vI~Ja +_54 c'VRI~Ja +_55 p'Vc@vI~Ja +_56 ch'VpI~Ja +_57 s'Vt@vI~Ja +_58 'Vth.:@vI~Ja +_59 Un.'ath. + +_60 s'Vth.: +_61 Ik'ath. +_62 b'ath.H +_63 t@R'eth.H +_64 c'Oth.H +_65 p'E~th. +_66 chI'ath. +_67 s@t'aH@th. +_68 Vth.:'ath. +_69 Un.'Vt:@R + +_70 s'Vt:@R +_71 IkH'Vt:@R +_72 b@H'Vt:@R +_73 t@H'Vt:@R +_74 cOH'Vt:@R +_75 p@nJ'Vt:@R +_76 chIH'Vt:@R +_77 s@t'Vt:@R +_78 Vth.'Vt:@R +_79 Un.'asi + +_80 'Vssi +_81 Ik'asi +_82 bI'asi +_83 t@R@'asi +_84 c@R'asi +_85 p@nJ'asi +_86 chI'asi +_87 s@t'asi +_88 Vth.'asi +_89 Un.a~n@v'eN + +_90 n'Vb:e +_91 Ik@'an@v,e~ +_92 bI;'an@v,e~ +_93 t@R@'an@ve~ +_94 c@R'an@ve~ +_95 p@c'an@ve~ +_96 chI'an@ve~ +_97 s@t'an@ve~ +_98 Vth.'an@ve~ +_99 nIR'Vnn@ve~ + +_0C s'O +_0M1 H@J'aR +_0M2 l'Vkh: // 100,000 +_0M3 k'VRoR // 10,000,000 +_0M4 'VR@b // 1,000,000,000 +_0M5 kh'VR@b // 100,000,000,000 + +_dpt _dOth // ?? + + +// character names +ਂ bInd'i +ੰ tIpp'i +ੱ VddVk +ਃ visaRg +੍ hVlVnt + +ਅ 'ERV +ੲ 'IRI +ੳ 'URV +_ਆ 'ERV||kVnn'a +_ਇ 'IRI||sIh'aRi +_ਈ 'IRI||bIh'aRi +_ਉ 'URV||'OnkaR +_ਊ 'URV||dUl'EnkaR +_ਏ 'IRI||l'avam +_ਐ 'ERV||dUl'avam +_ਓ 'URV||hoR'a +_ਔ 'ERV||kVnOR'a + +ਾ kVnn'a +ਿ sIh'aRi +ੀ bIh'aRi +ੁ OnkaR +ੂ dUl'EnkaR +ੇ lavam +ੈ dUlavam +ੋ hoR'a +ੌ kVn'ORa + +। dVnd'i + diff --git a/dictsource/pa_rules b/dictsource/pa_rules new file mode 100644 index 00000000..8d4aacb3 --- /dev/null +++ b/dictsource/pa_rules @@ -0,0 +1,457 @@ + +// Punjabi Gurmukhi script +// This file is UTF8 encoded + +// letter groups: +// A vowel letters +// B vowel signs and virama ् +// C consonants +// Y vowel letters and vowel signs + + + +.replace + ૦ 0 + ૧ 1 + ૨ 2 + ૩ 3 + ૪ 4 + ૫ 5 + ૬ 6 + ૭ 7 + ૮ 8 + ૯ 9 + +// combine dot consonants into a single character +ਸ਼ ਸ਼ +ਲ਼ ਲ਼ // l. +ਖ਼ ਖ਼ // x +ਗ਼ ਗ਼ // Q +ਜ਼ ਜ਼ // z +ਫ਼ ਫ਼ // f + +// combine base vowel+vowel sign into single vowel characters +ਅੈ ਐ // aI +ਅਾ ਆ // aa +ਅੌ ਔ // aU +ੲੀ ਈ // ii +ੲਿ ਇ // i +ੲੇ ਏ // e +ੳੁ ਉ // u +ੳੂ ਊ // uu + + + +// Vowels + +.group ੳ + ੳ u + +.group ੲ + ੲ i + + +.group ਅ + ਅ ,V + ਅਂ V~ + ਅੰ V~ + +.group ਆ + ਆ a + ਆਂ a~ + ਆੰ a~ + +.group ਇ + ਇ I + ਇਂ I~ + ਇੰ I~ + +.group ਈ + ਈ i + ਈਂ i~ + ਈੰ i~ + +.group ਉ + ਉ U + ਉਂ U~ + ਉੰ U~ + +.group ਊ + ਊ u + ਊਂ u~ + ਊੰ u~ + +.group ਏ + ਏ e + ਏਂ e~ + ਏੰ e~ + +.group ਐ + ਐ E + ਐਂ E~ + ਐੰ E~ + +.group ਓ + ਓ o + ਓਂ o~ + ਓੰ o~ + +.group ਔ + ਔ O + ਔਂ O~ + ਔੰ O~ + +.group ૠ + ૠ r- + + +// Vowel Signs + +.group ਾ + ਾ a + ਾਂ a~ + ਾੰ a~ + +.group ਿ + ਿ I + ਿਂ I~ + ਿੰ I~ + +.group ੀ + ੀ i + ੀਂ i~ + ੀੰ i~ + +.group ੁ + ੁ U + ੁਂ U~ + ੁੰ U~ + +.group ੂ + ੂ u + ੂਂ u~ + ੂੰ u~ + +.group ੇ + ੇ e + ੇਂ e~ + ੇੰ e~ + +.group ੈ + ੈ E // aI + ੈਂ E~ + ੈੰ E~ + +.group ੋ + ੋ o + ੋਂ o~ + ੋੰ o~ + +.group ੌ + ੌ O // aU + ੌਂ O~ + ੌੰ O~ + + +// Consonants ਕે + +.group ਕ + ਕ kV // inherent vowel + ਕ (B k // no inherent vowel if vowel or virama follows + @) ਕ (_ k // omit inherent vowel at end of word + ੱ) ਕ k:V + ੱ) ਕ (B k: + ੱ) ਕ (_ k: + +.group ਖ + ਖ khV + ਖ (B kh + @) ਖ (_ kh + ੱ) ਖ kh:V + ੱ) ਖ (B kh: + ੱ) ਖ (_ kh: + +.group ਗ + ਗ gV + ਗ (B g + @) ਗ (_ g + ੱ) ਗ g:V + ੱ) ਗ (B g: + ੱ) ਗ (_ g: + +.group ਘ + ਘ ghV + ਘ (B gh + @) ਘ (_ gh + _) ਘ k+V // high tone + _) ਘ (B k+ + +.group ਙ + ਙ NV + ਙ (B N + @) ਙ (_ N + ੱ) ਙ N:V + ੱ) ਙ (B N: + ੱ) ਙ (_ N: + +.group ਚ + ਚ cV + ਚ (B c + @) ਚ (_ c + ੱ) ਚ c:V + ੱ) ਚ (B c: + ੱ) ਚ (_ c: + +.group ਛ + ਛ chV + ਛ (B ch + @) ਛ (_ ch + ੱ) ਛ ch:V + ੱ) ਛ (B ch: + ੱ) ਛ (_ ch: + +.group ਜ + ਜ JV + ਜ (B J + @) ਜ (_ J + ੱ) ਜ J:V + ੱ) ਜ (B J: + ੱ) ਜ (_ J: + +.group ਝ + ਝ JhV + ਝ (B Jh + @) ਝ (_ Jh + _) ਝ c+V + _) ਝ (B c+ + +.group ਞ + ਞ n^V + ਞ (B n^ + @) ਞ (_ n^ + ੱ) ਞ n^:V + ੱ) ਞ (B n^: + ੱ) ਞ (_ n^: + +.group ਟ + ਟ t.V + ਟ (B t. + @) ਟ (_ t. + ੱ) ਟ t.:V + ੱ) ਟ (B t.: + ੱ) ਟ (_ t.: + +.group ਠ + ਠ th.V + ਠ (B th. + @) ਠ (_ th. + ੱ) ਠ th.:V + ੱ) ਠ (B th.: + ੱ) ਠ (_ th.: + +.group ਡ + ਡ d.V + ਡ (B d. + @) ਡ (_ d. + ੱ) ਡ d.:V + ੱ) ਡ (B d.: + ੱ) ਡ (_ d.: + +.group ਢ + ਢ dh.V + ਢ (B dh. + @) ਢ (_ dh. + _) ਢ t.+V + _) ਢ (B t. + +.group ਣ + ਣ n.V + ਣ (B n. + @) ਣ (_ n. + ੱ) ਣ n.:V + ੱ) ਣ (B n.: + ੱ) ਣ (_ n.: + +.group ਤ + ਤ tV + ਤ (B t + @) ਤ (_ t + ੱ) ਤ t:V + ੱ) ਤ (B t: + ੱ) ਤ (_ t: + +.group ਥ + ਥ thV + ਥ (B th + @) ਥ (_ th + ੱ) ਥ th:V + ੱ) ਥ (B th: + ੱ) ਥ (_ th: + +.group ਦ + ਦ dV + ਦ (B d + @) ਦ (_ d + ੱ) ਦ d:V + ੱ) ਦ (B d: + ੱ) ਦ (_ d: + +.group ਧ + ਧ dhV + ਧ (B dh + @) ਧ (_ dh + _) ਧ t+V + _) ਧ (B t+ + +.group ਨ + ਨ nV + ਨ (B n + @) ਨ (_ n + ੱ) ਨ n:V + ੱ) ਨ (B n: + ੱ) ਨ (_ n: + +.group ਪ + ਪ pV + ਪ (B p + @) ਪ (_ p + ੱ) ਪ p:V + ੱ) ਪ (B p: + ੱ) ਪ (_ p: + +.group ਫ + ਫ phV + ਫ (B ph + @) ਫ (_ ph + ੱ) ਫ ph:V + ੱ) ਫ (B ph: + ੱ) ਫ (_ ph: + +.group ਬ + ਬ bV + ਬ (B b + @) ਬ (_ b + ੱ) ਬ b:V + ੱ) ਬ (B b: + ੱ) ਬ (_ b: + +.group ਭ + ਭ bhV + ਭ (B bh + @) ਭ (_ bh + _) ਭ p+V + _) ਭ (B p+ + +.group ਮ + ਮ mV + ਮ (B m + @) ਮ (_ m + ੱ) ਮ m:V + ੱ) ਮ (B m: + ੱ) ਮ (_ m: + +.group ਯ + ਯ jV + ਯ (B j + @) ਯ (_ j + ੱ) ਯ j:V + ੱ) ਯ (B j: + ੱ) ਯ (_ j: + +.group ਰ + ਰ RV + ਰ (B R + @) ਰ (_ R + ੱ) ਰ R:V + ੱ) ਰ (B R: + ੱ) ਰ (_ R: + +.group ਲ + ਲ lV + ਲ (B l + @) ਲ (_ l + ੱ) ਲ l:V + ੱ) ਲ (B l: + ੱ) ਲ (_ l: + +.group ਲ਼ + ਲ਼ l.V + ਲ਼ (B l. + @) ਲ਼ (_ l. + +.group ਵ + ਵ vV + ਵ (B v + @) ਵ (_ v + ੱ) ਵ v:V + ੱ) ਵ (B v: + ੱ) ਵ (_ v: + +.group ਸ਼ + ਸ਼ SV + ਸ਼ (B S + @) ਸ਼ (_ S + ੱ) ਸ਼ S:V + ੱ) ਸ਼ (B S: + ੱ) ਸ਼ (_ S: + +.group ਸ + ਸ sV + ਸ (B s + @) ਸ (_ s + ੱ) ਸ s:V + ੱ) ਸ (B s: + ੱ) ਸ (_ s: + +.group ਹ + ਹ HV + ਹ (B H + @) ਹ (_ H + +.group ਖ਼ + ਖ਼ xV + ਖ਼ (B x + @) ਖ਼ (_ x + +.group ਗ਼ + ਗ਼ QV + ਗ਼ (B Q + @) ਗ਼ (_ Q + +.group ਜ਼ + ਜ਼ zV + ਜ਼ (B z + @) ਜ਼ (_ z + +.group ੜ + ੜ R2V + ੜ (B R2 + @) ੜ (_ R2 + +.group ਫ਼ + ਫ਼ fV + ਫ਼ (B f + @) ਫ਼ (_ f + + +.group ੍ + ੍ // virama + +.group ਼ + ਼ // nukta + +.group ੱ + ੱ // addak + +.group ਂ + ਂ N // bindi + +.group ੰ + ੰ n // tippi + +.group ਃ + ਃ h + +.group + $ dOlVR // TEST + % pVsEnt // TEST diff --git a/dictsource/prs_list b/dictsource/prs_list new file mode 100644 index 00000000..37b1fefa --- /dev/null +++ b/dictsource/prs_list @@ -0,0 +1,69 @@ + +// This file in UTF8 encoded +// For persian (Dari) language + + +//numeric +_0 sE'fEr +_1 j'Ak +_2 d'u: +_3 s'E:h +_4 tS'Ahr +_5 pA'ndZ +_6 SE'S +_7 h'Aft +_8 h'ASt +_9 n'o +// _۱۱ j'AzdAh // what's this ? + +_1X d'Ah +_2X b'ist +_3X s'i +_4X tS'Ehl +_5X p'indZAh +_6X S'Ast +_7X h'AftAd +_8X h'AStAd +_9X nAv'Ad + + +_0C s'Ad + +_0and o + +//alphabets +ا Al'Ef +ب b'E: +پ p'E: +ت t'E: +ث s'E: +ج dZ'im +چ tS'E: +ح h'E: +خ X'E: +د d'Al +ذ z'Al +ر r'E: +ز z'E: +س s'in +ش S'in +ص s'Ad +ض z'Ad +ط t'A: +ظ z'A: +ع 'eIn +غ R'eIn +ف f'E: +ق R'Af +ک k'Af +گ g'Af +ل l'Am +م m'im +ن n'un +و w'o:w +ه h'E:dotSASm +ء hAmz'E: +ی j'A: + + + diff --git a/dictsource/prs_rules b/dictsource/prs_rules new file mode 100644 index 00000000..e267a17b --- /dev/null +++ b/dictsource/prs_rules @@ -0,0 +1,235 @@ +// This file is UTF-8 encoded +// Text to phoneme rules for Dari + +// replace Arabic character numbers with Latin character numbers +.replace +٠ 0 +١ 1 +٢ 2 +٣ 3 +٤ 4 +٥ 5 +٦ 6 +٧ 7 +٨ 8 +٩ 9 + + +//all vowels +.L01 َ ِ ُ ً ٍ و ا ه ی ة ي + +//commonly unwritten vowels +.L02 َ ِ ُ + +//list of consonants +.L03 ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی + +.group ا + _) ا (L01 + ا A + ا (_ A + اً An + اٍ En + +.group ب + ب (L01 b + ب bA + ب (_ b + L03) ب (L03 b + +.group پ + پ (L01 p + پ pA + پ (_ p + L03) پ (L03 p + +.group ة + ة (L01 h + ة hA + ة (_ @ + +.group ت + ت (L01 t + ت tA + ت (_ t + +.group ث + ث (L01 s + ث sA + ث (_ s + +.group ج + ج (L01 dZ + ج dZA + ج (_ dZ + + +.group چ + چ (L01 tS + چ tSA + چ (_ tS + +.group ح + ح (L01 h + ح hA + ح (_ h + +.group خ + خ (L01 X + خ XA + خ (_ X + +.group د + د (L01 d + د dA + د (_ d + +.group ذ + ذ (L01 z + ذ zA + ذ (_ z + +.group ر + ر (L01 R + ر RA + ر (_ R + +.group ز + ز (L01 z + ز zA + ز (_ z + +.group ژ + ژ (L01 Z + ژ ZA + ژ (_ Z + +.group س + س (L01 s + س sA + س (_ s + L03) س (L03 s + L02) س (L03 s + +.group ش + ش (L01 S + ش SA + ش (_ S + +.group ص + ص (L01 s + ص sA + ص (_ s + +.group ض + ض (L01 z + ض zA + ض (_ z + +.group ط + ط (L01 t + ط tA + ط (_ t + +.group ظ + ظ (L01 z + ظ zA + ظ (_ z + +.group ع + ع (L01 + ع A + ع (_ @_: + +.group غ + غ (L01 R + غ RA + غ (_ R + +.group ـ + ـ + +.group ف + ف (L01 f + ف fA + ف (_ f + +.group ق + ق (L01 R + ق RA + ق (_ R + +.group ک + ک (L01 k + ک kA + L02) ک (L03 k + L03) ک (L03 k + ک (_ k + +.group گ + گ (L01 g + گ gA + گ (_ g + +.group ل + ل (L01 l + ل lA + ل (_ l + +.group م + م (L01 m + م mA + م (_ m + +.group ن + ن (L01 n + ن (_ n + L02) ن (L03 n + L03) ن (L03 n + ن nA + +.group ه + ه (L01 h + ه hA + ه (_ @ + +.group و + و (L01 v + و (_ u + L03) و (L03 u + و vA + +.group ی + ی i + _) ی jA + +.group ي + ي i + _) ي jA + +.group + $ dol@ + +.group ء + ء @ + ء (L01 + +.group ّ + ّ : + +.group آ + آ A + +//vowels that are not usually written: + +.group َ + َ A + +.group ِ + ِ E + +.group ُ + ُ o + + + diff --git a/dictsource/pt_list b/dictsource/pt_list old mode 100755 new mode 100644 diff --git a/dictsource/pt_rules b/dictsource/pt_rules old mode 100755 new mode 100644 diff --git a/dictsource/ru_rules b/dictsource/ru_rules old mode 100755 new mode 100644 diff --git a/dictsource/rw_list b/dictsource/rw_list new file mode 100644 index 00000000..3c9f0b04 --- /dev/null +++ b/dictsource/rw_list @@ -0,0 +1,83 @@ + +// This file is UTF8 encoded +// Spelling-to-phoneme words for Kinyarwanda + +a a: +b ba: +c ca: +d da: +e e: +f fa: +g ga: +h ha: +i i: +j dZa: +k ka: +l la: +m ma: +n na: +o o: +p pa: +q kwa: +r *a: +s sa: +t ta: +u u: +v va: +w wa: +x eks +y ja: +z za: + + +// numbers +_0 z'e*u +_1 R'imwe +_2 kaB'i*i +_3 gat'atu +_4 k'ane +_5 gat'anu +_6 gatand'atu +_7 ka*'indwi +_8 umun'ani +_9 ikj'enda + +_1X itS'umi +_2X makumjaB'i*i +_3X mi*,oNgwit'atu +_4X mi*,oNgw'ine +_5X mi*,oNgwit'anu +_6X mi*,oNgitand'atu +_7X mi*,oNgwi*'indwi +_8X mi*,oNgwin'ani +_9X mi*,oNgwej'enda + +_1C idZ'ana +_2C mag,anaB'i*i +_3C mag,anat'atu +_4C mag,an'ane +_5C mag,anat'anu +_6C mag,anatand'atu +_7C mag,ana*'indwi +_8C mag,anin'ani +_9C mag,anakj'enda + +_0M1 iBih'umbi +_1M1 iJih'umbi +_2M1 iBih'umbibiB'i*i +_3M1 iBih'umbibit'atu +_4M1 iBih'umbib'ine +_5M1 iBih'umbibit'anu +_6M1 iBih'umbibitand'atu +_7M1 iBih'umbibi*'indwi + +_0M2 milij'oni +_1M2 milij'on'imwe +_2M2 milij'oneBj'i*i +_3M2 milij'oneS'atu +_4M2 m,ilij'on'en^e + +_0and na +_dpt _niB'itSe + + diff --git a/dictsource/rw_rules b/dictsource/rw_rules new file mode 100644 index 00000000..b9e787ea --- /dev/null +++ b/dictsource/rw_rules @@ -0,0 +1,105 @@ + +// Kinyarwanda translation rules +// This file is UTF-8 encoded + +.group a + a a + +.group b + b B + _) b b + m) b b + +.group c + c tS + cy kj + +.group d + d d + +.group e + e e + +.group f + f f + +.group g + g g + g (e J + g (i J + +.group h + h h + +.group i + i i + +.group j + j dZ + jy Jj + +.group k + k k + k (e c + k (i c + +.group l + l l + +.group m + m m + mp mh + +.group n + n n + n (g N + n (ge n^ + n (gi n^ + nk Nx + nt nh + ny n^ + +.group o + o o + +.group p + p p + +.group q + q q + +.group r + r * // try ** + _) r R + +.group s + s s + sh S + shy S; + +.group t + t t + +.group u + u u + +.group v + v c + +.group w + w w + b) w g + +.group x + x ks + _) x z + +.group y + y j + +.group z + z z + +.group + $ dola*a // just a guess + diff --git a/dictsource/si_list b/dictsource/si_list new file mode 100644 index 00000000..0ed0b11b --- /dev/null +++ b/dictsource/si_list @@ -0,0 +1,65 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Sinhala + + +// speak Latin letters as English +a e:j +b bi: +c si: +d di: +e i: +f Ef +g dZi: +h e:tS +i a:j +j dZe:j +k ke:j +l El +m Em +n En +o o: +p pi: +q kju: +r a:r +s Es +t thi: +u ju: +v vi: +w dabalju: +x Eks +y wa:j +z zEd + + +// symbols +% sij@j@t.@ $max3 +* &st.@risk@j@ $max3 + +_; t'itk,oma:v@ + +// numbers +_1 ek@ +_2 dek@ +_3 tu:n@ +_4 hat@r@ +_5 pah@ +_6 haj@ +_7 hat@ +_8 at.@ +_9 nav@j@ +_10 dah@j@ +_11 ekol.@h@ +_12 dol.@h@ +_13 dah@tun@ +_14 dah@hat@r@ +_15 pah@l.ov@ +_16 dah@saj@ +_17 dah@hat@ +_18 dah@at.@ +_19 dah@nav@j@ +_2X viss@ +_0C sij@j@ +_0M1 dah@s@ +_0M2 milij@n@j@ +_0M3 bilij@n@j@ diff --git a/dictsource/si_rules b/dictsource/si_rules new file mode 100644 index 00000000..56e98d76 --- /dev/null +++ b/dictsource/si_rules @@ -0,0 +1,270 @@ + +// This file is UTF8 encoded +// Spelling to phoneme rules for Sinhala + +// A means vowel letters (not vowel signs) +// B means a combining vowel sign or a virama + + +.group ක + ක ka + ක (B k + +.group ඛ + ඛ ka + ඛ (B k + +.group ග + ග ga + ග (B g + +.group ඝ + ඝ ga + ඝ (B g + +.group ඞ + ඞ Na + ඞ (B N + +.group ඟ + ඟ N#ga + ඟ (B N#g + +.group ච + ච tSa + ච (B tS + +.group ඡ + ඡ tSa + ඡ (B tS + +.group ජ + ජ dZa + ජ (B dZ + +.group ඣ + ඣ dZa + ඣ (B dZh + +.group ඤ + ඤ n^a + ඤ (B n^ + +.group ඥ + ඥ gna + ඥ (B gn + +.group ඦ + ඦ n^#dZa + ඦ (B n^#dZ + +.group ට + ට t.a + ට (B t. + +.group ඨ + ඨ t.a + ඨ (B t. + +.group ඩ + ඩ d.a + ඩ (B d. + +.group ඪ + ඪ d.a + ඪ (B d. + +.group ණ + ණ n.a + ණ (B n. + +.group ඬ + ඬ n.#d.a + ඬ (B n.#d. + + +.group ත + ත ta + ත (B t + +.group ථ + ථ ta + ථ (B t + +.group ද + ද da + ද (B d + +.group ධ + ධ da + ධ (B d + +.group න + න na + න (B n + +.group ඳ + ඳ n#da + ඳ (B n#d + +.group ප + ප pa + ප (B p + +.group ඵ + ඵ pa + ඵ (B p + +.group බ + බ ba + බ (B b + +.group භ + භ ba + භ (B b + +.group ම + ම ma + ම (B m + +.group ඹ + ඹ m#ba + ඹ (B m#b + +.group ය + ය ja + ය (B j + +.group ර + ර ra + ර (B r + +.group ල + ල la + ල (B l + +.group ව + ව va + ව (B v + +.group ශ + ශ Sa + ශ (B S + +.group ෂ + ෂ Sa + ෂ (B S + +.group ස + ස sa + ස (B s + +.group හ + හ ha + හ (B h + +.group ළ + ළ l.a + ළ (B l. + +.group ෆ + ෆ fa + ෆ (B f + + +.group අ + අ a + +.group ආ + ආ a: + +.group ඇ + ඇ & + +.group ඈ + ඈ &: + +.group ඉ + ඉ i + +.group ඊ + ඊ i: + +.group උ + උ u + +.group ඌ + ඌ u: + +.group ඍ + ඍ ru + +.group ඎ + ඎ ru: + +.group ඏ + ඏ li + +.group ඐ + ඐ li: + +.group එ + එ e + +.group ඒ + ඒ e: + +.group ඓ + ඓ aI + +.group ඔ + ඔ o + +.group ඕ + ඕ o: + +.group ඖ + ඖ aU + +.group 0xe0b6 // characters which start with UTF-8 bytes: [e0 b6] + ං m // anusvaraya + ඃ n // visargaya + + +.group 0xe0b7 // characters which start with UTF-8 bytes: [e0 b7] + ා a: + ැ & + ෑ &: + ි i + ී i: + ු u + ූ u: + ෘ ru + ෙ e + ේ e: + ෛ aI + ො o + ෝ o: + ෞ aU + ෟ li + ෲ ru: + ෳ li: + + ් // hal kirima (virima) + + +.group 0xe0a4 // devanagari + 0xe0a4 _^_HI // switch to hindi voice for devanagari characters +.group 0xe0a5 // devanagari + 0xe0a5 _^_HI + +.group 0xe0ae // Tamil + 0xe0ae _^_TA // switch to Tamil voice for Tamil characters +.group 0xe0af // Tamil + 0xe0af _^_TA + + +.group + $ do:l.ar + + diff --git a/dictsource/sl_list b/dictsource/sl_list new file mode 100644 index 00000000..0f5001fd --- /dev/null +++ b/dictsource/sl_list @@ -0,0 +1,132 @@ + +// translation rules for Slovenian +// This file is UTF-8 encoded + + +// letter names +b b@ +c ts@ +č tS@ +d d@ +e e +f f@ +g g@ +h h@ +j j@ +_k k@ +l l@ +m m@ +n n@ +_o o +p p@ +r R@ +_s s@ +š S@ +t t@ +_v v@ +_z z@ +ž Z@ + +q ku +w dv'ojniv,@ +x iks +y 'ipsilon +ć m'ehkitS,@ +đ m'ehkidZ,@ + +ä $accent +ë $accent +ö $accent +ü $accent + +// accent names (please fix) +_dia 'umlawt + + +// numbers +_0 n'itS +_1 'ena +_2 dv'a +_3 tR'i +_4 St'iRi +_5 p'et +_6 S'est +_7 s'edem +_8 'osem +_9 d'evet +_10 d'eset +_11 'e'najst +_12 dv'anajst +_13 tR'inajst +_14 St'iRinajst +_15 p'etnajst +_16 S'estnajst +_17 s'edemnajst +_18 'osemnajst +_19 d'evetnajst +_2X dv'ajset +_3X tR'ideset +_4X St'iRideset +_5X p'etdeset +_6X S'estdeset +_7X s'edemdeset +_8X 'osemdeset +_9X d'evetdeset +_2C dv'esto +_0C sto +_0M1 t'isotS +_1M1 t'isotS + +_1M2 'enmilij'on +_2M2 dv'amilij'ona +_3M2 tR'ijemilij'oni +_4M2 St'iRijemilij'oni +_0M2 milij'onow + +_1M3 'enamilij'aRda +_2M3 dv'emilij'aRdi +_3M3 tR'imilij'aRde +_4M3 St'iRimilij'aRde +_0M3 milij'aRd + +_1M4 'enbilij'on +_2M4 dv'abilij'ona +_3M4 tR'ijebilij'oni +_4M4 St'iRijebilij'oni +_0M4 bilij'onow + +_0and in +_dpt _tselih + +// Single letter words (speak as letter name if at end-of-clause) + +a $u +o $u +k k +s s +v w $combine +z z $combine + +a a $atend +k k@ $atend // letter-k +o o $atend // letter-o +s s@ $atend +v v@ $atend +z z@ $atend + +// Function words (unstressed) + + // verb: to be +sem $u +si $u +je $u +sva $u +sta $u +smo $u +ste $u +so $u + +bil $u +bila $u +bili $u + diff --git a/dictsource/sl_rules b/dictsource/sl_rules new file mode 100644 index 00000000..d714f6b5 --- /dev/null +++ b/dictsource/sl_rules @@ -0,0 +1,174 @@ + +// Spelling-to-phoneme rules for Slovenian +// This file is UTF-8 encoded + +.L01 b d g j l m n v z ž // voiced consonants + + +.group a + a a + +.group b + b b + +.group c + c ts + +.group č + č tS + +.group d + d d + dz dz + dž dZ + + +.group e + e e + e (_ E // ?? + + +.group f + f f + + +.group g + g g + + +.group h + h x + i) h h + h (F h // before voiceless consonant + + +.group i + i i + i (A j + i (r j + + +.group j + j j + + +.group k + k k + + +.group l + l l + l (K w + K) l (K @l + lj l^ + lj (A lj + lj (i l^ + + +.group m + m m + m (g N + m (k N + K) m (K %@m // unstressed + + +.group n + n n + n (g N + n (k N + + K) n (K %@n // unstressed + nj n^ + nj (A nj + nj (i n^ + + +.group o + o o + + +.group p + p p + + +.group q + q k + qu kv + + +.group r + r R + rr R + + K) r (K @R + + +.group s + s s + + +.group š + š S + + +.group t + t t + + +.group u + u u + u (A w + u (r u + A) u (K w + + +.group v + v v + v (-A+ v // preposition 'v' before a vowel + A) v (K w + K) v (K %u + L01) v (A w + + +.group w + w v + A) w (K w + + +.group x + x ks + + +.group y + y j + K) y (K i + + +.group z + z z + + +.group ž + ž Z + + +.group + á 'a: + é 'e: + ê 'E: + è E + í 'i: + ó 'o: + ô 'O: + ò O + ú 'u: + ć tS + đ dZ + ř R^ + ä E + ö @: + ü y + ß _^_DE + + $ d'olaR + diff --git a/dictsource/sv_list b/dictsource/sv_list old mode 100755 new mode 100644 diff --git a/dictsource/sv_rules b/dictsource/sv_rules old mode 100755 new mode 100644 diff --git a/dictsource/ta_list b/dictsource/ta_list index 43e6938b..d55001cb 100644 --- a/dictsource/ta_list +++ b/dictsource/ta_list @@ -361,6 +361,8 @@ tamil தமிழ் $text பாதிக்கும் $alt பாதிக்குமா $alt பத்திரப் bVttirVp +பாய்ஸ் $alt +புக்கர் $alt @@ -427,6 +429,9 @@ tamil தமிழ் $text தட $alt தடியாய் $alt தொள $alt +தான $alt +தம்மம் $alt +தம்ம $alt // initial ட @@ -510,6 +515,7 @@ tamil தமிழ் $text கௌன் $alt கிண் $alt கிர் $alt +கங்க $alt @@ -541,3 +547,5 @@ tamil தமிழ் $text செட் set. திக் dik பிட் bit. +புட் fud. +உப்ப ubbV diff --git a/dictsource/ta_rules b/dictsource/ta_rules index 4939b6ef..93fe8801 100644 --- a/dictsource/ta_rules +++ b/dictsource/ta_rules @@ -115,6 +115,8 @@ //sort + _) க (ங்கபாடி gV + _) க (ங்கர gV _) க (ங்கா gV _) க (ங்காரு kV _) க (ங்கை gV @@ -161,6 +163,7 @@ _) க (ர்வ gV _) க (லாட்டா gV _) க (லிலL08யோ gV + _) க (லீசிய gV _) க (லீர gV _) க (லீல gV _) க (ளுக் gV @@ -173,6 +176,7 @@ _) க (வுனை gV _) க (வுன்கள gV _) க (வுர gV + _) க (ாசியாபாத் g _) க (ாண்டாமிருக g _) க (ாண்டீப g _) காண்டேக (ர ga:n.d.e:kV @@ -187,6 +191,7 @@ _) க (ாயத்திரி g க (ாரன k _) க (ார்டன g + _) க (ார்டியன g _) க (ிஃப்ட g _) க (ிடுகிடு g _) க (ிண்ணென்ற g @@ -211,6 +216,7 @@ _) க (ிரிக்கா g _) க (ிரிஜா g _) க (ிரிதர g + _) க (ிரிதார g _) கி (ரித்த k _) கி (ரிமினல k _) கி (ரியா_ k @@ -219,6 +225,7 @@ _) க (ிரியி g _) க (ிரியு g _) கி (ரில் g + _) க (ிரிவல g _) கி (ரிஸ்ட k _) கிரிஸ்டோப (ர krist.o:fV _) கி (ரிஸ்த k @@ -237,8 +244,10 @@ _) கி (ரைண்டர g _) கி (ரௌண்ட g _) க (ிர்ரெ g + _) கி (றிஸ்டல k _) கி (ளப்_ k _) கிளப்ப (ில kl.Vbb + _) கிளப்ப (ுகள klVbb _) கிளப்ப (ுக் kl.Vbb _) கிளப்ப (ை kl.Vbb _) கிளர்க் klVrk @@ -300,6 +309,7 @@ _மன்மதக்) க (ுகை g _) க (ுதிச் g _) க (ுதித் g _) க (ுதிப் g + _) க (ுதிப்பகுதி k _) க (ுபீர g _) க (ுபுகுபு g _) க (ுபுக் g @@ -448,6 +458,8 @@ _வெங்) கட kVt.V# ஒரு) க (ட்ட kV மறு) க (ட்ட kV _கால) க (ட்ட kV + _பின்) க (ட்ட kV + _முன்) க (ட்ட kV ஆரம்ப) க (ட்ட kV _கல்) க (ண்ட kV _நற்) க (தி gV @@ -515,6 +527,7 @@ _மௌனி) க (ா k _ஸ்ரீலங்) க (ா k _ஹன்L04ி) க (ா k அனாமி) க (ா k +சித்திரலே) க (ா k _ஹாங்) க (ாங் k _தென்) க (ாசி k _நேர்) க (ாணல k @@ -532,6 +545,7 @@ _ஹன்L04ி) க (ா k _பால்) க (ாரர k _தையல்) க (ாரர k _வண்டி) க (ாரர k + அங்) க (ாரா k _பூ) க (ாரி k _பால்) க (ாரி k _கடை) க (ாரி k @@ -571,7 +585,10 @@ _தொன்ம) க (ால k ஆதி) க (ுடி k _பூர்வ) க (ுடி k _மூத்த) க (ுடி k + அமண்) கு (டி ku2 அரிய) கு (டி ku2 // Don't change to [U] +அம்மன்) கு (டி ku2 +உடையார்) கு (டி ku2 மன்னார்) கு (டி ku2 நற்) க (ுண g _சற்) க (ுண g @@ -590,6 +607,7 @@ _டா) குமெண்ட kUmen.tV# _) குல்க (ந்த gulkV _மெரு) க (ூட்ட g அறை) க (ூவ k + _மார்) கெட் ket. _ஓ) க (ே k நீல) க (ேசி k புலி) க (ேசி k @@ -665,6 +683,7 @@ _போர்) க்க (ுண gg _வெடி) க்க (ுண்ட gg _துப்பாக்கி) க்க (ுண்ட gg ஜன) க்க (ும்பல gg + _மார்) க்கெட் kket. _ல) க்க (ேஜ gg L03) க்க (ோபுர gg _வி) க்ச (னரி ks.V @@ -685,7 +704,9 @@ _துப்பாக்கி) க்க (ுண்ட gg _சௌ) க் (ய k அசௌ) க் (ய k _செ) க்யூரிட (ி kjU:rit. + _சா) க் (ரடீஸ k _ச) க்ரப (ாணி krVp + _சீ) க் (ரம k வி) க (்ரம k _ரெ) க்ரூட் krU:t. ஆ) க (்ரோஷ k @@ -749,6 +770,7 @@ _விமோ) ச (ன tSV _) ச (ப்பா tSV _) ச (ப்பி tSV _) ச (ப்பு tSV + _) ச (ப்பெ tSV _டின்) ச (ர tSV _பங்) ச (ர tSV _) சரசு (வதி sVrVs @@ -937,7 +959,7 @@ _தணிகா) ச (ல tSV ஞ n^V ஞ (B n^ - _கா) ஞ்ச (னா ntSV + _கா) ஞ்ச (ன ntSV இ) ஞ்ச் ntS _வி) ஞ்ச் ntS @@ -956,6 +978,7 @@ _தணிகா) ச (ல tSV //sort + _பேண்) ட t.V# _வால்) ட t.V# _கமெண்) ட t.V# _க்ளையண்) ட t.V# @@ -1010,6 +1033,7 @@ _ஷிஃப்) ட t.V# _மால்) ட (ா t. _) டாக் (_ t.a:k _) ட (ாக்க t. // talkies + _) டாக்குமெண்ட d.a:kkUmen.t.V# _) டாக்ட (ர d.a:kt.V _) டாக (்ஸி t.a:k _) டாங்க (ர t.a:NkV @@ -1125,7 +1149,7 @@ _செண்) டிமெண்ட t.imen.t.V# _) ட (ூர t. இண்) ட (ெ t. _) டெக் (னாலஜி t.ek - _) டெக்னிக (ல t.eknikV + _) டெக்னிக t.eknikV# _) ட (ெக்ஸாஸ t. _) ட (ெக்ஸ் t. _) ட (ெண்டர t. @@ -1164,6 +1188,7 @@ _லான்_) ட (ென்னிஸ t. ளு) ட (ோனிய t. _) டோரண்ட (ோ t.o:rVn.t. _ப்ரி) ட (ோரிய t. + _லே) ட் t. @மெண்) ட் t. // -ment _பேண்) ட் t. இண்டர்நெ) ட் t. @@ -1195,6 +1220,7 @@ _லான்_) ட (ென்னிஸ t. _) ட் (ரான்ஸ்ஃபர t. _) ட் (ரான்ஸ்ப t. _) ட்ரான்ஸ்ப (ர t.ra:nsfV + _) ட்ரான்ஸ்ப (ரண்ட t.ra:nspV _) ட் (ரான்ஸ்பாண்டர t. _) ட்ரான்ஸ்பிரண்ட t.ra:nspirVn.t.V# _) ட் (ரான்ஸ்மீட்டர t. @@ -1338,8 +1364,10 @@ _நடுரோ) ட் (ல t. _) த (ன்வந்தரி dV _) தபதப dVbVdVbV# _) த (மயந்தி dV + _) த (ம்படி dV _) த (ம்பதி dV _) த (ம்பிடி dV + _) த (ம்மடிL11் dV _) த (யவ dV _) த (யாணந்த dV _) த (யால dV @@ -1411,6 +1439,7 @@ _நடுரோ) ட் (ல t. _) த (ிகம்பர d _) த (ிகில d _) த (ிகுதிகு d + _) த (ிக்கித்த d _) த (ிக்கில d _) த (ிக்கு d _) த (ிக்கு_முக்க t @@ -1560,10 +1589,12 @@ _நடுரோ) ட் (ல t. _) த (ேவகுல d _) த (ேவக் d _) த (ேவசேன d + _) த (ேவதாஸ d _) த (ேவதூத d _) த (ேவதை d _) த (ேவநேய d _) த (ேவன d + _) த (ேவரடி d _) த (ேவராஜ d _) த (ேவராட்டி d _) த (ேவராணி d @@ -1601,13 +1632,18 @@ _நடுரோ) ட் (ல t. //sort _வசந்) த tV# _க) த (L08ஜா t + _சாந்) த (_ tV _ப) த (ஞ்சலி tV _கீழ்) த (ட்ட tV _மேல்) த (ட்ட tV + _சாந்) த (த்த tV# பிள்ளை) த (ன tV முட்டாள்) த (ன tV _கௌ) த (ம tV + _சாந்) த (ம tV# _கௌ) த (மி tV + _புல்) த (ரை tV + _சாந்) த (லிங்க tV# _கீ) த (ா t _சீ) த (ா t _ல) த (ா t @@ -1629,6 +1665,7 @@ _புஷ்பல) த (ா t _நே) த (ாஜி t _சுல்) த (ான t _முல்) த (ான t + _சாந்) த (ானு tV# _சும) த (ி t _சாந்) த (ி t _சுகந்) த (ி t @@ -1647,10 +1684,12 @@ _பிரசார்_பார) த (ி t எ) தியோப (ிய tijo:p _பிர) த (ீ t த (ுறை t + த (ூக்க t // in word வீண்) த (ேவை t _நிவேதி) த (ை t வீண்) த (ொல்லை t அம்பே) த்க tkV# + _வா) த் (சல்ய t யு) த்த ddV# _சிரார்) த்த ddV# _ஸ்ரார்) த்த ddV# @@ -1678,6 +1717,7 @@ _சிறை) த்த (ண்டனை ddV ம) த்த (ிய dd வா) த்த (ிய dd வை) த்த (ிய dd + உபா) த்த (ிய dd _சா) த்த (ிய_ tt பு) த்த (ியி dd _சா) த்த (ியிரு tt @@ -1688,6 +1728,7 @@ _சிறை) த்த (ண்டனை ddV _சுப) த்த (ிர dd _ரு) த்த (ிர dd _ரௌ) த்த (ிர dd + _சூ) த்த (ிரச்சி dd _சூ) த்த (ிரன dd _சூ) த்த (ிரரி dd _சூ) த்த (ிரர் dd @@ -1721,10 +1762,12 @@ _வில்வி) த்த (ை dd _ஜெ) த் (மலானி t ச) த (்ய t நி) த (்ய t + ஆதி) த் (ய t இ) த் (யாதி t _மி) த் (ர t _காமசூ) த் (ர t ச) த்ரபதி trVpVti +_சி) த்ரலேக (ா trVle:k சி) த (்ரா t _சி) த் (ரா tti பவி) த (்ரா t @@ -1890,6 +1933,7 @@ _டீயும்_) ப (ன்னும்_ bV _) ப (லத்தினுட bV _) ப (லத்துட bV _) ப (லத்தை bV + _) ப (லத்தோடு bV _) ப (லப்பட bV _) ப (லப்படு bV _) ப (லப்பரீட்சை bV @@ -1971,7 +2015,10 @@ _டெட்_) ப (ாடி b _) ப (ாட்டில்கள b _) ப (ாணங் b _) ப (ாணமு b + _) ப (ாணர b + _) ப (ாணாசுர b _) ப (ாணி b + _) ப (ாண்டேஜ b _) ப (ாதிக்கக்கூட b _) ப (ாதிக்கண் p _) ப (ாதிக்கப்பட b @@ -1990,10 +2037,12 @@ _டெட்_) ப (ாடி b _) ப (ாதிக்கும்_மேல p _) ப (ாதித்த b _) ப (ாதிப்படைகி b + _) ப (ாதிப்படைய b _) ப (ாதிப்படையுமெ b _) ப (ாதிப்படைவ b _) ப (ாதிப்பதா b _) ப (ாதிப்பதை b + _) ப (ாதிப்பால b _) ப (ாதிப்பினால b _) ப (ாதிப்பிற்க b _) ப (ாதிப்பில b @@ -2011,6 +2060,7 @@ _டெட்_) ப (ாடி b _) ப (ானங்கள b _) ப (ானத்த b _) ப (ானமு b + _) ப (ானர்ஜி b _) ப (ானு b _) ப (ானெட் b _) பாப (ர ba:bV @@ -2025,6 +2075,7 @@ _டெட்_) ப (ாடி b _ஆடு_) ப (ாம்பே p _விளையாடு_) ப (ாம்பே p _ரூம்_) ப (ாய b + _) ப (ாய்லர b _) ப (ாரத b _) ப (ாரதி b _) ப (ாரத்த b @@ -2063,6 +2114,7 @@ _விளையாடு_) ப (ாம்பே p _) ப (ால் p _) ப (ால்_தாக்கரே b _) பால்க (னி ba:lkV + _) பால்ட (ிமோர ba:lt. _) ப (ால்ய b _நேய_) ப (ாவ b _ராக_) ப (ாவ b @@ -2095,6 +2147,7 @@ _ராகத்தின்_) ப (ாவ b _) ப (ாவேய b _) ப (ாஷாக்கள b _) ப (ாஷாவ b + _) ப (ாஷிய b _) ப (ாஷை b _) ப (ாஷ்ய b _) ப (ாஸ்கர b @@ -2223,6 +2276,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ராமிக் b _) பி (ராமின்_ b _) பி (ராமிஸ p + _) பி (ராய்லர b _) பி (ரார்தன p _) பி (ரார்தி p _) பி (ரார்த்த p @@ -2236,6 +2290,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரிட b _) பிரிட (ோரிய prit. _) பி (ரிட்டோரிய p + _) பிரிண்ட prin.t.V# _) பிரிண்ட (ர prin.t.V _) ப (ிரித்தானி b _) பி (ரித்தானி b @@ -2276,6 +2331,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ரௌச b _) பி (ரௌன b _) ப (ிலாஸ்பூர b + _) ப (ில்கள b _) ப (ில்டப் b _) ப (ில்டிங் b _) ப (ில்லியன b @@ -2283,6 +2339,7 @@ _ராகத்தின்_) ப (ாவ b _) பி (ளஸ p _) பி (ளஸ்_ p _) பி (ளா p + _) பிளாக் bla:k _) பி (ளாட்பார p _) பி (ளாஸ்க் f // flask _) பி (ளீஸ p @@ -2336,6 +2393,7 @@ _ராகத்தின்_) ப (ாவ b _) ப (ுஜ b _) ப (ுட்டி b _பெனசீர்_) ப (ுட்டோ b + _) புட்ப (ால fut.b _) ப (ுதன b _) புத்த(K buddV _) புத் (தJ_புத+ put @@ -2391,6 +2449,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ூத்துக்குப் b _) ப (ூத்தை b _) பூப (தி bu:pV + _) ப (ூபனே b _) ப (ூபாள b _) ப (ூமத்திய b _) ப (ூமாதா b @@ -2452,6 +2511,7 @@ _பெனசீர்_) ப (ுட்டோ b _) ப (ைனாமி b _) ப (ைபிள b _) ப (ைரவ b + _) ப (ைராகி b _) ப (ொம்மன b _) ப (ொம்மனாட்டி p _) ப (ொம்மல b @@ -2644,6 +2704,7 @@ _சொந்த) ப (ந்த bV ஆ) ப (ரேஷன pV _கார்) ப (ரேஷன pV _பம்) ப (ர்_ pV + _கன்) ப (ர்ம fV கரம்) ப (ற் pV ப (ற்றி_ pV _தேக) ப (ல bV @@ -2660,6 +2721,7 @@ _முனிசி) ப (ல pV வேலைப்) ப (ளு bV வட) ப (ழ pV வீண்) ப (ழி pV + _முத்து) ப (வள pV _வா) ப (ஸ pV _தீ) ப (ா p _கலி) ப (ா f @@ -2684,6 +2746,8 @@ _வெளிப்) ப (ாக b உ) ப (ாசனை p ஈடு) ப (ாட p _வழி) ப (ாட p + _குறை) ப (ாட p + _பட்ட) ப (ாட p _வேறு) ப (ாட p சமன்) ப (ாட p முரன்) ப (ாட p @@ -2702,6 +2766,8 @@ _வெளிப்) ப (ாக b அL06மதா) ப (ாத b ஒளரங்கா) ப (ாத b ஔரங்கா) ப (ாத b + _சிறு) ப (ாதை p + _நடை) ப (ாதை p ஜிந்தா) ப (ாத் b _பஞ்ச) ப (ாத்திர p ச) பாபதி ba:pVti @@ -2713,6 +2779,7 @@ _வெளிப்) ப (ாக b _சரி) ப (ார p எதிர்) ப (ார p _பிளாட்) ப (ார f + இன்) ப (ார்ம f அ) பார்மெண்ட pa:rment.V# கண்) ப (ார்வை p இம்) ப (ால f @@ -2739,6 +2806,7 @@ _ப்ரின்சி) ப (ால p _தமிழ்ப்) ப (ாஷ _b வாதா) ப (ி p _கடா) ப (ி f + _யுஎஸ்) ப (ி b சித்தப்) பி(ரமை b _கன்) ப (ிகர f வாலி) பிக (ேஷன fik @@ -2746,6 +2814,7 @@ _தமிழ்ப்) ப (ாஷ _b _கா) பிட(ல pit.V கண்டு) ப (ிடி p திமிர்) ப (ிடி p + _கடை) ப (ிடி p ராவல்) ப (ிண்டி p _டால்) ப (ின f ஒ) ப (ினியன p @@ -2770,7 +2839,7 @@ _ஞானப்) பிரக (ா prVk ஆ) பி (ரகாம b பிரக (ாஷ prVk மதப்) பிரச (ார prVtS - பி (ரத p + பி (ரத b ராஜப்) பி (ரதிநிதி p அரசுப்) பி (ரதிநிதி p _தர்மப்) பி (ரப p @@ -2802,10 +2871,12 @@ L03ந்தப்) பி (ராய p ஆண்) ப (ிள்ளை p பெண்) ப (ிள்ளை p விக்கி) ப (ீடியா p + இம்) ப (ீரியல p _திம்) ப (ு p _அன்) ப (ுட b _மார்) ப (ுட b _) புத்தம்ப (ுத puttVmp + ராஜ) ப (ுத்திர p வாயு) ப (ுத்திர p அக்னி) ப (ுத்திர p பாடலி) ப (ுத்திர p @@ -2817,6 +2888,7 @@ L03ந்தப்) பி (ராய p இன்) ப (ுற b _துன்) ப (ுற b ப (ுறK p + _பா) ப (ுலர p _) பு (ளோரன்ஸ f மண்) ப (ுழு p ப (ூச்சி p @@ -2894,6 +2966,7 @@ _கோலாலம்) ப (ூர p ப (ோன்ற+ p // ?? end-of-word + suffix ?? ப (ோயிரு p ப (ோய் p + எம்) ப (ோரியல p ஏர்) போர்ட po:rt.V# கலி) ப (ோர்னிய f ப (ோல_ p @@ -2929,6 +3002,7 @@ _மைக்ரோசா) ப் (ட f ஆ) ப்ப (ரிக்க fV தென்னா) ப்ப (ரிக்க fV உயிர்) ப்ப (லி bbV + L03) ப்ப (ஸ bbV அடி) ப்ப (ாக bb இறுதி) ப்ப (ாக bb துர்) ப்ப (ாக்கிய bb @@ -2959,12 +3033,14 @@ _ஒL10ி) ப்பி (ரவாக pp ஆ) ப்பி (ரிக்க f தென்னா) ப்பி (ரிக்க fV _ஹ) ப்ப (ிள bb + _க்ள) ப்ப (ுகள bb உ) ப்ப (ுசத்த bb உ) ப்ப (ுசம bb _சந்தேக) ப்ப (ுத்தி bb இ) ப்ப (ூமி bb _ல) ப்ப (ை bb துர்) ப்ப (ோதனை bb + _கே) ப் (மாரி p கம்) ப்யூட (ர pjU:t.V _சு) ப் (ரீம p _) ப் (ரீயா f @@ -3131,7 +3207,7 @@ _சந்தேக) ப்ப (ுத்தி bb இ i இ (யேச இ (ரகசிய // silent - இ (ரகுமான + இ (ரகு இ (ரகுராம இ (ரசனை இ (ரசாயன @@ -3147,6 +3223,8 @@ _சந்தேக) ப்ப (ுத்தி bb இ (ரம்மிய இ (ரயில இ (ரவீந்திர + இ (ரவைகள + இ (ரவையை இ (ராக இ (ராச இ (ராஜ @@ -3261,9 +3339,9 @@ _சந்தேக) ப்ப (ுத்தி bb ௗ : // aU length mark .group 0xe0a4 // devanagari - \340\244 _^_HI // switch to hindi voice + 0xe0a4 _^_HI // switch to hindi voice .group 0xe0a5 // devanagari - \340\245 _^_HI + 0xe0a5 _^_HI .group ் // virama diff --git a/dictsource/te_rules b/dictsource/te_rules index e0c5c825..4b18cdb5 100644 --- a/dictsource/te_rules +++ b/dictsource/te_rules @@ -266,9 +266,9 @@ .group 0xe0a4 // devanagari - \340\244 _^_HI // switch to hindi voice for devanagari characters + 0xe0a4 _^_HI // switch to hindi voice for devanagari characters .group 0xe0a5 // devanagari - \340\245 _^_HI + 0xe0a5 _^_HI .group diff --git a/dictsource/tn_list b/dictsource/tn_list new file mode 100644 index 00000000..4cdf9b72 --- /dev/null +++ b/dictsource/tn_list @@ -0,0 +1,149 @@ +// maintainer: Sternly K Simon +// email:sternly_simon@yahoo.com +// setswana translation list +// This file is UTF-8 encoded. + +// letters (just guesses) +a a +b bi:i: +c si:i: +d di:i: +e i:i: +f e:fo +g gi:i +h eitSi +j dZ'ei +k kei +l e:li +m 'emu +n 'eni +o o:o: +p p'i:i: +q kju +r aR3e +s 'e:si +t t'i:i: +u u:u: +v v'i:i: +x ek'ese +w dabolju +y w'ai +z z'e:ti + + +// numbers +_0 lef'e:la +_1 n'ngwe: +_2 p'edi +_3 t'a:R3o +_4 'n-ne +_5 l#'a:no +_6 th'ataro +_7 s'u:pa +_8 roba'bobedi +_9 roba'n'ngwe +_1X les'o:me +_2X mas'o:mepedi +_3X mas'o:me'ama:R3o +_4X mas'o:me'ama:ne +_5X mas'o:me'amal#'a:no +_6X mas'o:me'ath'ataro +_7X mas'o:me'a'S'u:pa +_8X mas'o:me'abo'roba'bedi: +_9X mas'o:me'a'roba'bo'ngwe + +//number plurals + +//numbers money wise +_0C lekX'olo +_1C0 lekX'olo +_2C _|makX'olopedi +_3C _|makX'olot'a:R3o +_4C _|makX'olo'n-ne +_5C _|makX'olol#'a:no +_6C _|makX'olo'th'ataro +_7C makX'oloS'u:pa +_8C makX'olo'a'ma'roba'bobedi: +_9C makX'olo'a'ma'roba'bo'n'ngwe +_0M1 's-'ikete +_1M1 _|'s-'ikete +_2M1 dik'etep'edi +_3M1 dik'etet'a:R3o +_4M1 dik'eten-ne +_5M1 dik'etel#'a:no +_6M1 dik'etets'e'th'ataro +_7M1 dik'eteSu:pa +_8M1 dik'ete'tse'bo'roba'bobedi +_9M1 dik'ete'tse'bo'roba'bo'ngwe +_1M2 dik'etetSelekX'o:lo +_2M2 dik'etetSemakX'o:lop'edi +_3M2 dik'etetSemakX'o:lot'a:R3o +_4M2 dik'etetSemakX'o:lon-ne +_5M2 dik'etetSemakX'o:lol#'ano +_6M2 dik'etetSemakX'o:lo'th'a'taro +_7M2 dik'etetSemakX'o:loSu:pa +_8M2 dik'etetSemakX'o:lo'bo'roba'bobedi: +_9M2 dik'etetSemakX'o:lo'bo'roba'bo'ngwe +_0M3 _|mili'oni // 1,000,000 +_0M4 _|bili'oni +_dpt fe:Xelu'a:na +_0and _|na + +bona $u $brk // they,them +yona $u+ $brk // it +wena $u+ $brk //you + +nna $u+ $brk // i +yona $u+ $brk // him, her, it +ene $u+ $brk // him, her +lona $u+ //ploral to wena +rona $u+ // we,us + +//number of chances/probabilities + + +//Days + + +//accents + +_cir k'efa + +lenna $u+ // and me +waka $u+ // mine or lying +gaka $u+ // mine +tshaka $u+ // plural of mine +dilo $u+ // things +mole $u+ // that +naya $u+ // give + +//nouns + +// prepositions +wa $u $brk // of +ya $u $brk // of,by they,them +la $u $brk // of +fa $u $brk // of +kwa $u $brk // at + +mo $u $brk // in +fa $u $brk // in,on + +kgolo $u $pause // dig +konte $u $pause // without + +kwala $pause // by means of which +kwa $u $brk // with + + +// conjunctions +le $u $pause // and +kana $u $pause // or +ao $u $pause // or +mme $u $pause // but +ntswa $u $pause // although +kuwa $u $pause // shout + + + + diff --git a/dictsource/tn_rules b/dictsource/tn_rules new file mode 100644 index 00000000..4525f234 --- /dev/null +++ b/dictsource/tn_rules @@ -0,0 +1,147 @@ +// maintainer: Sternly K Simon +// email:sternly_simon@yahoo.com +// setswana translation rules +// with support from Jonathan Duddington + +//2-letter groupds that represent classes of setswana nouns +// mo, ba, mo, me, le, ma, se, di, lo, bo, go, fa, ko, mo + +.group a + a a + _C) a a + _) a (C a + a (_ a + a (s a: + aa a: + +.group b + b b + b B + +.group c + c k + ch tS + +.group d + d d + dh D + +.group e + e e + ee e: + s) e i + +.group f + f f + +.group g + g g + _k) g g x2 + gh Q + + +.group h + h h + hl l# + +.group i + i i + ii i: + +.group j + j J + +.group k + k k + kh x + +.group l + l l + +.group m + m m + _) m m- + m (A m + K) m (@@ _|m + K) m (C m- + K) m (b@@ _|m + K) m (v@@ _|m + K) m (w@@ _|m + +.group n + n n + _) n n- + n (A n + n (@@ n + ny n^ + n (ch n^ + n (j n^ + ng' N + n (k N + _) n (k N- + _) n (k@@ N- + n (g N + _) n (g N- + _) n (g@@ N- + +.group o + o o + oo o: + +.group p + p p + +.group q + q k + +.group r + r r + r R + r R3 + A) r (A R + C) r (A @-* + rr RR + +.group s + s s + sh S + s (e s- + _t) se si: + +.group t + t t + th T + tsen ts'e:n + tlh K + tl l# + +.group u + u u + uu u: + _d) u u: + +.group v + v v + +.group w + w w + +.group x + x ks + +.group y + y j + +.group z + z z + +.group + $ dola + % asilimia + + * n^ota + *) * (* + ** + **) * (_ _:: + + diff --git a/dictsource/ur_list b/dictsource/ur_list new file mode 100644 index 00000000..d2bec7b3 --- /dev/null +++ b/dictsource/ur_list @@ -0,0 +1,160 @@ + +// This file is UTF8 encoded +// Spelling to phoneme exceptions for Urdu + + +// Letter names +ا alIf +ب be: +پ pe: +ت te: +ٹ t.e: +ث se: +ج Ji:m +ج ce: +ح bar.i:||He: +خ xe: +د da:l +د d.a:l +ذ za:l +ر Re: +ڑ r.e: +ز ze: +ژ Ze: +س si:n +ش Si:n +ص sUa:d +ض zUa:d +ط tOe: +ظ zOe: +ع aIn +غ QaIn +ف fe: +ق qa:f +ک ka:f +گ ga:f +ل la:m +م mi:m + ن nu:n +و va:O +ﮨ cho:ti:||He: +ھ dO||caSmi:||He: +ء HamzaH +ی cho:t.i:||je: +ے bar.i:||je: + +َ z@b@R +ِ ze:R +ُ pe:S + + +// numbers +_0 s'IfaR +_1 'e:k +_2 'do: +_3 t'i:n +_4 c'a:R +_5 p'a:Nc +_6 ch'aI +_7 s'a:t +_8 'a:th +_9 n'aU +_10 d'as +_11 gj'a:RaH +_12 b'a:RaH +_13 t'e:RaH +_14 c'aUdaH +_15 p'andRaH +_16 s'o:laH +_17 s'atRaH +_18 ath'a:RaH +_19 'Unni:s +_20 b'i:s +_21 Ikk'i:s +_22 ba:'i:s +_23 te:'i:s +_24 caUb'i:s +_25 pacc'i:s +_26 chabb'i:s +_27 sat:a:'i:s +_28 stha:'i:s +_29 Unt'i:s +_30 t'i:s +_31 ikt'i:s +_32 bat:'i:s +_33 taINt'i:s +_34 caUNt'i:s +_35 paINt'i:s +_36 chat:'i:s +_37 saINt'i:s +_38 aRt'i:s +_39 Unta:l'i:s +_40 ca:l'i:s +_41 Ikta:l'i:s +_42 baja:l'i:s +_43 te:Nta:l'i:s +_44 cava:l'i:s +_45 paINta:l'i:s +_46 chIja:l'i:s +_47 saINta:l'i:s +_48 aRta:l'i:s +_49 Unc'a:s +_50 pac'a:s +_51 Ik'a:van +_52 b'a:van +_53 t'IRpan +_54 c'aUvan +_55 p'acpan +_56 ch'appan +_57 sat:'a:van +_58 ath'a:van +_59 Uns'ath +_60 s'a:th +_61 'Iksath +_62 b'a:sath +_63 t'IRsath +_64 c'aUsath +_65 p'aINsath +_66 chIj'a:sath +_67 s'aRsath +_68 'aRsath +_69 UnH,at:'aR +_70 sat:'aR +_71 IkHat:'aR +_72 baHat:'aR +_73 tIHat:'aR +_74 caUHat:'aR +_75 pachat:'aR +_76 chIHat:'aR +_77 sathat:'aR +_78 athHat:'aR +_79 Unna:s'i: +_80 ass'i: +_81 Ika:s'i: +_82 baja:s'i: +_83 tIRa:s'i: +_84 caURa:s'i: +_85 paca:s'i: +_86 chIja:s'i: +_87 sat:a:s'i: +_88 atha:s'i: +_89 nava:s'i: +_90 navv'e: +_91 Ikj'a:nve: +_92 b'a:nve: +_93 tIT'a:nve: +_94 caUR'a:nve: +_95 pac'a:nve: +_96 chIj'a:nve: +_97 sat:'a:nve: +_98 ath:'a:nve: +_99 nInj'a:nve: + +_0C s'aU +_0M1 Haz'a:R +_0M2 l'a:kh +_0M3 kaR'o:R +_0M4 'aRab +_dpt _ISaRI'Ia_ + +jonathan dZ'Onathan diff --git a/dictsource/ur_rules b/dictsource/ur_rules new file mode 100644 index 00000000..7de25ee0 --- /dev/null +++ b/dictsource/ur_rules @@ -0,0 +1,215 @@ + + +// This file is UTF8 encoded +// Spelling to phoneme rules for Urdu + +.replace +٠ 0 +١ 1 +٢ 2 +٣ 3 +٤ 4 +٥ 5 +٦ 6 +٧ 7 +٨ 8 +٩ 9 + + + +// vowel signs, alif is silent at start of word if these follow +.L01 َ ِ ُ و ی ع ا + +// VOWELS + +.group َ + َ a + َی E + َے E + َو O + َع a: + +.group ِ + ِ I + ِی i: + ِع i: + +.group ُ + ُ U + ُو u: + ُع O + +.group ھ + ھ H + +.group ا + ا a: + _) ا (L01 // silent before a vowel + _) ا a + _) او u: + _) ای i: + +.group آ + آ a: + +.group ع + ع a: + عا a: + _) ع a + + +.group و + و o: + وُ u: + وٗ u: + و (L01 v + _) و v + +.group ی + ی e: + ی (L01 j + ی (_ i: + _) ی j + + +.group ے // yeh barree + ے e: + +// with hamza +.group ئ + ئ + +.group ؤ + ؤ aU // ?? + +.group أ + أ // ?? + + +// CONSONANTS + +.group ب + ب b + بھ bh + + +.group پ + پ p + پھ ph + + +.group ت + ت t + تھ th + + +.group ٹ + ٹ t. + ٹھ th. + + +.group ث + ث s + + +.group ج + ج J + جھ Jh + + +.group چ + چ c + چھ ch + +.group ح + ح H + +.group خ + خ x + +.group د + د d + دھ dh + +.group ڈ + ڈ d. + ڈھ dh. + +.group ذ + ذ D + +.group ر + ر R + +.group ڑ + ڑ r. + +.group ز + ز z + +.group ژ + ژ Z + +.group س + س s + +.group ش + ش S + +.group ص + ص s. + +.group ض + ض z + +.group ط + ط t + طھ th + +.group ظ + ظ z. + +.group غ + غ Q + +.group ف + ف f + +.group ق + ق q + +.group ک + ک k + کھ kh + +.group گ + گ g + گھ gh + +.group ل + ل l + +.group م + م m + +.group ن + ن n + +.group ں + ں n // this should nasalize the vowel + +.group ء + ء + +.group ہ + ہ H + ہ (_ a + + +.group 0xe0a4 // devanagari + 0xe0a4 _^_HI // switch to hindi voice +.group 0xe0a5 // devanagari + 0xe0a5 _^_HI + +.group + $ do:l@R \ No newline at end of file diff --git a/dictsource/wo_list b/dictsource/wo_list new file mode 100644 index 00000000..c8b3a8ea --- /dev/null +++ b/dictsource/wo_list @@ -0,0 +1,43 @@ + +// Spelling-to-phoneme rules for Wolof (Senegal, Gambia) +// This file is UTF-8 encoded + +// Numbers +_0 t'us +_1 b'En: +_2 n^'a:R2 +_3 n^'Et: +_4 n^'E:nt +_5 J'uR2o:m +_6 J'uR2o:mbEn: +_7 J'uR2o:mn^a:R2 +_8 J'uR2o:mn^Et: +_9 J'uR2o:mn^E:nt +_1X f'uk: +_2X n^'a:R2fuk: +_3X n^'Et:fuk: +_4X n^'E:ntfuk: +_5X J'uR2o:mfuk: +_6X J'uR2o:mbEn:fuk: +_7X J'uR2o:mn^a:R2fuk: +_8X J'uR2o:mn^Et:fuk: +_9X J'uR2o:mn^E:ntfuk: +_0C t'e:me:R2 +_1C t'e:me:R2 +_0M1 J'un:i +_0M2 t'amndaR2E:t +_0and %ak + +// Letter names + + +// Symbols + + +// Unstressed words + + +// Exceptions + + + diff --git a/dictsource/wo_rules b/dictsource/wo_rules new file mode 100644 index 00000000..9db5b03e --- /dev/null +++ b/dictsource/wo_rules @@ -0,0 +1,128 @@ + +// Spelling-to-phoneme rules for Wolof (Senegal, Gambia) +// This file is UTF-8 encoded + +.group a + a a + aa a: + +.group b + b b + bb b: + +.group c + c c + cc c: + +.group d + d d + dd d: + +.group e + e E + ee E: + +.group é + é e + ée e: + éé e: + +.group ë + ë @ + ëe @: + ëë @: + +.group f + f f + +.group g + g g + gg g: + +.group h + h h + +.group i + i i + ii i: + +.group j + j J + j J: + +.group k + k k + kk k: + +.group l + l l + +.group m + m m + mm m: + K) m (K m- + +.group n + n n + nn n: + K) n (K n- + +.group ŋ + ŋ N + ŋŋ N: + K) ŋ (K N- + +.group ñ + ñ n^ + +.group o + o O + oo O: + +.group ó + ó o + óo o: + óó o: + +.group p + p p + pp p: + +.group q + q q + qq q: + +.group r + r R2 + r (r R + +.group s + s s + ss ss2 + +.group t + t t + tt t: + +.group u + u u + uu u: + +.group v + v v + +.group w + w w + +.group x + x x + +.group y + y j + +.group z + z z + + +.group + $ dOlaR2 diff --git a/docs/speak_lib.h b/docs/speak_lib.h index 79aad7c0..9ca01f59 100644 --- a/docs/speak_lib.h +++ b/docs/speak_lib.h @@ -28,7 +28,7 @@ #include #include -#define ESPEAK_API_REVISION 5 +#define ESPEAK_API_REVISION 6 /* Revision 2 Added parameter "options" to eSpeakInitialize() @@ -41,11 +41,19 @@ Revision 4 Revision 5 Added espeakCHARS_16BIT + +Revision 6 + Added macros: espeakRATE_MINIMUM, espeakRATE_MAXIMUM, espeakRATE_NORMAL */ /********************/ /* Initialization */ /********************/ +// values for 'value' in espeak_SetParameter(espeakRATE, value, 0), nominally in words-per-minute +#define espeakRATE_MINIMUM 80 +#define espeakRATE_MAXIMUM 450 +#define espeakRATE_NORMAL 175 + typedef enum { espeakEVENT_LIST_TERMINATED = 0, // Retrieval mode: terminates the event list. diff --git a/espeak-data/mbrola_ph/af1_phtrans b/espeak-data/mbrola_ph/af1_phtrans new file mode 100644 index 00000000..a87ec4cc Binary files /dev/null and b/espeak-data/mbrola_ph/af1_phtrans differ diff --git a/espeak-data/mbrola_ph/ca1_phtrans b/espeak-data/mbrola_ph/ca1_phtrans new file mode 100644 index 00000000..4fe4188e Binary files /dev/null and b/espeak-data/mbrola_ph/ca1_phtrans differ diff --git a/espeak-data/mbrola_ph/cr1_phtrans b/espeak-data/mbrola_ph/cr1_phtrans new file mode 100644 index 00000000..064669ea Binary files /dev/null and b/espeak-data/mbrola_ph/cr1_phtrans differ diff --git a/espeak-data/mbrola_ph/cs_phtrans b/espeak-data/mbrola_ph/cs_phtrans new file mode 100644 index 00000000..85ebb03e Binary files /dev/null and b/espeak-data/mbrola_ph/cs_phtrans differ diff --git a/espeak-data/mbrola_ph/de2_phtrans b/espeak-data/mbrola_ph/de2_phtrans new file mode 100644 index 00000000..ae9247d4 Binary files /dev/null and b/espeak-data/mbrola_ph/de2_phtrans differ diff --git a/espeak-data/mbrola_ph/de4_phtrans b/espeak-data/mbrola_ph/de4_phtrans new file mode 100644 index 00000000..20eb7237 Binary files /dev/null and b/espeak-data/mbrola_ph/de4_phtrans differ diff --git a/espeak-data/mbrola_ph/de6_phtrans b/espeak-data/mbrola_ph/de6_phtrans new file mode 100644 index 00000000..b0d4979c Binary files /dev/null and b/espeak-data/mbrola_ph/de6_phtrans differ diff --git a/espeak-data/mbrola_ph/ee1_phtrans b/espeak-data/mbrola_ph/ee1_phtrans new file mode 100644 index 00000000..132054b0 Binary files /dev/null and b/espeak-data/mbrola_ph/ee1_phtrans differ diff --git a/espeak-data/mbrola_ph/en1_phtrans b/espeak-data/mbrola_ph/en1_phtrans new file mode 100644 index 00000000..c32db396 Binary files /dev/null and b/espeak-data/mbrola_ph/en1_phtrans differ diff --git a/espeak-data/mbrola_ph/es_phtrans b/espeak-data/mbrola_ph/es_phtrans new file mode 100644 index 00000000..958799c6 Binary files /dev/null and b/espeak-data/mbrola_ph/es_phtrans differ diff --git a/espeak-data/mbrola_ph/fr1_phtrans b/espeak-data/mbrola_ph/fr1_phtrans new file mode 100644 index 00000000..26645616 Binary files /dev/null and b/espeak-data/mbrola_ph/fr1_phtrans differ diff --git a/espeak-data/mbrola_ph/gr2_phtrans b/espeak-data/mbrola_ph/gr2_phtrans new file mode 100644 index 00000000..e7dca3af Binary files /dev/null and b/espeak-data/mbrola_ph/gr2_phtrans differ diff --git a/espeak-data/mbrola_ph/grc-de6_phtrans b/espeak-data/mbrola_ph/grc-de6_phtrans new file mode 100644 index 00000000..e41d3105 Binary files /dev/null and b/espeak-data/mbrola_ph/grc-de6_phtrans differ diff --git a/espeak-data/mbrola_ph/hu1_phtrans b/espeak-data/mbrola_ph/hu1_phtrans new file mode 100644 index 00000000..eb661d3a Binary files /dev/null and b/espeak-data/mbrola_ph/hu1_phtrans differ diff --git a/espeak-data/mbrola_ph/ic1_phtrans b/espeak-data/mbrola_ph/ic1_phtrans new file mode 100644 index 00000000..978ec49e Binary files /dev/null and b/espeak-data/mbrola_ph/ic1_phtrans differ diff --git a/espeak-data/mbrola_ph/id1_phtrans b/espeak-data/mbrola_ph/id1_phtrans new file mode 100644 index 00000000..bd4b90cb Binary files /dev/null and b/espeak-data/mbrola_ph/id1_phtrans differ diff --git a/espeak-data/mbrola_ph/in1_phtrans b/espeak-data/mbrola_ph/in1_phtrans new file mode 100644 index 00000000..7f463189 Binary files /dev/null and b/espeak-data/mbrola_ph/in1_phtrans differ diff --git a/espeak-data/mbrola_ph/it3_phtrans b/espeak-data/mbrola_ph/it3_phtrans new file mode 100644 index 00000000..c9174cf0 Binary files /dev/null and b/espeak-data/mbrola_ph/it3_phtrans differ diff --git a/espeak-data/mbrola_ph/la1_phtrans b/espeak-data/mbrola_ph/la1_phtrans new file mode 100644 index 00000000..1f2eb929 Binary files /dev/null and b/espeak-data/mbrola_ph/la1_phtrans differ diff --git a/espeak-data/mbrola_ph/mx1_phtrans b/espeak-data/mbrola_ph/mx1_phtrans new file mode 100644 index 00000000..3b3e6f37 Binary files /dev/null and b/espeak-data/mbrola_ph/mx1_phtrans differ diff --git a/espeak-data/mbrola_ph/mx2_phtrans b/espeak-data/mbrola_ph/mx2_phtrans new file mode 100644 index 00000000..a9bbb0f6 Binary files /dev/null and b/espeak-data/mbrola_ph/mx2_phtrans differ diff --git a/espeak-data/mbrola_ph/nl_phtrans b/espeak-data/mbrola_ph/nl_phtrans new file mode 100644 index 00000000..1edb05ae Binary files /dev/null and b/espeak-data/mbrola_ph/nl_phtrans differ diff --git a/espeak-data/mbrola_ph/pl1_phtrans b/espeak-data/mbrola_ph/pl1_phtrans new file mode 100644 index 00000000..5c3583da Binary files /dev/null and b/espeak-data/mbrola_ph/pl1_phtrans differ diff --git a/espeak-data/mbrola_ph/pt1_phtrans b/espeak-data/mbrola_ph/pt1_phtrans new file mode 100644 index 00000000..f101c661 Binary files /dev/null and b/espeak-data/mbrola_ph/pt1_phtrans differ diff --git a/espeak-data/mbrola_ph/pt_phtrans b/espeak-data/mbrola_ph/pt_phtrans new file mode 100644 index 00000000..9de1630d Binary files /dev/null and b/espeak-data/mbrola_ph/pt_phtrans differ diff --git a/espeak-data/mbrola_ph/ptbr4_phtrans b/espeak-data/mbrola_ph/ptbr4_phtrans new file mode 100644 index 00000000..25bfdbf4 Binary files /dev/null and b/espeak-data/mbrola_ph/ptbr4_phtrans differ diff --git a/espeak-data/mbrola_ph/ptbr_phtrans b/espeak-data/mbrola_ph/ptbr_phtrans new file mode 100644 index 00000000..f11ad870 Binary files /dev/null and b/espeak-data/mbrola_ph/ptbr_phtrans differ diff --git a/espeak-data/mbrola_ph/ro1_phtrans b/espeak-data/mbrola_ph/ro1_phtrans new file mode 100644 index 00000000..4dec1599 Binary files /dev/null and b/espeak-data/mbrola_ph/ro1_phtrans differ diff --git a/espeak-data/mbrola_ph/sv2_phtrans b/espeak-data/mbrola_ph/sv2_phtrans new file mode 100644 index 00000000..3300e3c5 Binary files /dev/null and b/espeak-data/mbrola_ph/sv2_phtrans differ diff --git a/espeak-data/mbrola_ph/sv_phtrans b/espeak-data/mbrola_ph/sv_phtrans new file mode 100644 index 00000000..f066708f Binary files /dev/null and b/espeak-data/mbrola_ph/sv_phtrans differ diff --git a/espeak-data/mbrola_ph/tr1_phtrans b/espeak-data/mbrola_ph/tr1_phtrans new file mode 100644 index 00000000..0d6fa2a9 Binary files /dev/null and b/espeak-data/mbrola_ph/tr1_phtrans differ diff --git a/espeak-data/mbrola_ph/us3_phtrans b/espeak-data/mbrola_ph/us3_phtrans new file mode 100644 index 00000000..435fff37 Binary files /dev/null and b/espeak-data/mbrola_ph/us3_phtrans differ diff --git a/espeak-data/mbrola_ph/us_phtrans b/espeak-data/mbrola_ph/us_phtrans new file mode 100644 index 00000000..4ee5319a Binary files /dev/null and b/espeak-data/mbrola_ph/us_phtrans differ diff --git a/espeak-data/mbrola_ph/vz_phtrans b/espeak-data/mbrola_ph/vz_phtrans new file mode 100644 index 00000000..0df524f0 Binary files /dev/null and b/espeak-data/mbrola_ph/vz_phtrans differ diff --git a/espeak-data/voices/!v/croak b/espeak-data/voices/!v/croak old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/f1 b/espeak-data/voices/!v/f1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/f2 b/espeak-data/voices/!v/f2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/m1 b/espeak-data/voices/!v/m1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/m5 b/espeak-data/voices/!v/m5 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/m6 b/espeak-data/voices/!v/m6 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/m7 b/espeak-data/voices/!v/m7 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/!v/whisper b/espeak-data/voices/!v/whisper old mode 100755 new mode 100644 diff --git a/espeak-data/voices/af b/espeak-data/voices/af old mode 100755 new mode 100644 diff --git a/espeak-data/voices/bg b/espeak-data/voices/bg new file mode 100644 index 00000000..688d9fd6 --- /dev/null +++ b/espeak-data/voices/bg @@ -0,0 +1,5 @@ +name bulgarian-test +language bg + +stressAmp 13 12 17 17 20 22 22 21 +stressLength 180 170 200 200 200 200 210 220 \ No newline at end of file diff --git a/espeak-data/voices/bs b/espeak-data/voices/bs old mode 100755 new mode 100644 diff --git a/espeak-data/voices/cs b/espeak-data/voices/cs old mode 100755 new mode 100644 diff --git a/espeak-data/voices/cy b/espeak-data/voices/cy old mode 100755 new mode 100644 diff --git a/espeak-data/voices/da b/espeak-data/voices/da old mode 100755 new mode 100644 diff --git a/espeak-data/voices/de b/espeak-data/voices/de old mode 100755 new mode 100644 diff --git a/espeak-data/voices/default b/espeak-data/voices/default old mode 100755 new mode 100644 diff --git a/espeak-data/voices/el b/espeak-data/voices/el old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en b/espeak-data/voices/en/en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-n b/espeak-data/voices/en/en-n old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-rp b/espeak-data/voices/en/en-rp old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-sc b/espeak-data/voices/en/en-sc old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-us b/espeak-data/voices/en/en-us old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-wi b/espeak-data/voices/en/en-wi old mode 100755 new mode 100644 diff --git a/espeak-data/voices/en/en-wm b/espeak-data/voices/en/en-wm old mode 100755 new mode 100644 diff --git a/espeak-data/voices/eo b/espeak-data/voices/eo old mode 100755 new mode 100644 diff --git a/espeak-data/voices/es b/espeak-data/voices/es old mode 100755 new mode 100644 diff --git a/espeak-data/voices/es-la b/espeak-data/voices/es-la old mode 100755 new mode 100644 diff --git a/espeak-data/voices/et b/espeak-data/voices/et new file mode 100644 index 00000000..6caf78ce --- /dev/null +++ b/espeak-data/voices/et @@ -0,0 +1,3 @@ +name estonian +language et + diff --git a/espeak-data/voices/fi b/espeak-data/voices/fi old mode 100755 new mode 100644 diff --git a/espeak-data/voices/fr b/espeak-data/voices/fr old mode 100755 new mode 100644 diff --git a/espeak-data/voices/fr-be b/espeak-data/voices/fr-be old mode 100755 new mode 100644 diff --git a/espeak-data/voices/hi b/espeak-data/voices/hi old mode 100755 new mode 100644 diff --git a/espeak-data/voices/hr b/espeak-data/voices/hr old mode 100755 new mode 100644 diff --git a/espeak-data/voices/hu b/espeak-data/voices/hu old mode 100755 new mode 100644 diff --git a/espeak-data/voices/id b/espeak-data/voices/id old mode 100755 new mode 100644 diff --git a/espeak-data/voices/is b/espeak-data/voices/is old mode 100755 new mode 100644 diff --git a/espeak-data/voices/it b/espeak-data/voices/it old mode 100755 new mode 100644 diff --git a/espeak-data/voices/kn b/espeak-data/voices/kn old mode 100755 new mode 100644 diff --git a/espeak-data/voices/ku b/espeak-data/voices/ku old mode 100755 new mode 100644 diff --git a/espeak-data/voices/lv b/espeak-data/voices/lv old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-af1 b/espeak-data/voices/mb/mb-af1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-af1-en b/espeak-data/voices/mb/mb-af1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-br1 b/espeak-data/voices/mb/mb-br1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-cr1 b/espeak-data/voices/mb/mb-cr1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-cz2 b/espeak-data/voices/mb/mb-cz2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de2 b/espeak-data/voices/mb/mb-de2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de4 b/espeak-data/voices/mb/mb-de4 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de4-en b/espeak-data/voices/mb/mb-de4-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de5 b/espeak-data/voices/mb/mb-de5 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de5-en b/espeak-data/voices/mb/mb-de5-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-de7 b/espeak-data/voices/mb/mb-de7 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-ee1 b/espeak-data/voices/mb/mb-ee1 new file mode 100644 index 00000000..7dda7fd2 --- /dev/null +++ b/espeak-data/voices/mb/mb-ee1 @@ -0,0 +1,8 @@ +name estonian-mbrola +language et +gender name + +pitch 82 117 +voicing 120 +mbrola ee1 ee1_phtrans + diff --git a/espeak-data/voices/mb/mb-en1 b/espeak-data/voices/mb/mb-en1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-es1 b/espeak-data/voices/mb/mb-es1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-fr1 b/espeak-data/voices/mb/mb-fr1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-fr1-en b/espeak-data/voices/mb/mb-fr1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-fr4 b/espeak-data/voices/mb/mb-fr4 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-fr4-en b/espeak-data/voices/mb/mb-fr4-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-gr2 b/espeak-data/voices/mb/mb-gr2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-gr2-en b/espeak-data/voices/mb/mb-gr2-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-hu1 b/espeak-data/voices/mb/mb-hu1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-hu1-en b/espeak-data/voices/mb/mb-hu1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-id1 b/espeak-data/voices/mb/mb-id1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-it3 b/espeak-data/voices/mb/mb-it3 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-it4 b/espeak-data/voices/mb/mb-it4 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-la1 b/espeak-data/voices/mb/mb-la1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-mx1 b/espeak-data/voices/mb/mb-mx1 new file mode 100644 index 00000000..99b723c3 --- /dev/null +++ b/espeak-data/voices/mb/mb-mx1 @@ -0,0 +1,10 @@ +language es-mx 7 +language es 8 +name mexican-mbrola-1 +gender male +pitch 82 117 + +mbrola mx1 mx1_phtrans + +replace 00 T s + diff --git a/espeak-data/voices/mb/mb-mx2 b/espeak-data/voices/mb/mb-mx2 new file mode 100644 index 00000000..f46f0be1 --- /dev/null +++ b/espeak-data/voices/mb/mb-mx2 @@ -0,0 +1,10 @@ +language es-mx 7 +language es 8 +name mexican-mbrola-2 +gender male +pitch 82 117 + +mbrola mx2 mx2_phtrans + +replace 00 T s + diff --git a/espeak-data/voices/mb/mb-nl2 b/espeak-data/voices/mb/mb-nl2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-nl2-en b/espeak-data/voices/mb/mb-nl2-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-pl1 b/espeak-data/voices/mb/mb-pl1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-pl1-en b/espeak-data/voices/mb/mb-pl1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-ro1 b/espeak-data/voices/mb/mb-ro1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-ro1-en b/espeak-data/voices/mb/mb-ro1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-sw1 b/espeak-data/voices/mb/mb-sw1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-sw1-en b/espeak-data/voices/mb/mb-sw1-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-sw2 b/espeak-data/voices/mb/mb-sw2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-sw2-en b/espeak-data/voices/mb/mb-sw2-en old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-tr1 b/espeak-data/voices/mb/mb-tr1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-us1 b/espeak-data/voices/mb/mb-us1 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-us2 b/espeak-data/voices/mb/mb-us2 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-us3 b/espeak-data/voices/mb/mb-us3 old mode 100755 new mode 100644 diff --git a/espeak-data/voices/mb/mb-vz1 b/espeak-data/voices/mb/mb-vz1 new file mode 100644 index 00000000..d64a9e5a --- /dev/null +++ b/espeak-data/voices/mb/mb-vz1 @@ -0,0 +1,11 @@ +language es-vz 7 +language es 8 +name venezuala-mbrola-1 +gender male +pitch 82 117 + +mbrola vz1 vz_phtrans + +dictrules 3 +replace 00 T s +voicing 200 diff --git a/espeak-data/voices/mk b/espeak-data/voices/mk old mode 100755 new mode 100644 diff --git a/espeak-data/voices/ml b/espeak-data/voices/ml old mode 100755 new mode 100644 diff --git a/espeak-data/voices/nl b/espeak-data/voices/nl old mode 100755 new mode 100644 diff --git a/espeak-data/voices/no b/espeak-data/voices/no old mode 100755 new mode 100644 diff --git a/espeak-data/voices/pl b/espeak-data/voices/pl old mode 100755 new mode 100644 diff --git a/espeak-data/voices/pt b/espeak-data/voices/pt old mode 100755 new mode 100644 diff --git a/espeak-data/voices/pt-pt b/espeak-data/voices/pt-pt old mode 100755 new mode 100644 diff --git a/espeak-data/voices/ro b/espeak-data/voices/ro old mode 100755 new mode 100644 diff --git a/espeak-data/voices/ru b/espeak-data/voices/ru old mode 100755 new mode 100644 diff --git a/espeak-data/voices/sk b/espeak-data/voices/sk old mode 100755 new mode 100644 diff --git a/espeak-data/voices/sv b/espeak-data/voices/sv old mode 100755 new mode 100644 diff --git a/espeak-data/voices/sw b/espeak-data/voices/sw old mode 100755 new mode 100644 diff --git a/espeak-data/voices/ta b/espeak-data/voices/ta old mode 100755 new mode 100644 diff --git a/espeak-data/voices/test/ak b/espeak-data/voices/test/ak new file mode 100644 index 00000000..ab42a223 --- /dev/null +++ b/espeak-data/voices/test/ak @@ -0,0 +1,4 @@ +name akan-test +language ak +translator sw + diff --git a/espeak-data/voices/test/am b/espeak-data/voices/test/am new file mode 100644 index 00000000..729d1f07 --- /dev/null +++ b/espeak-data/voices/test/am @@ -0,0 +1,3 @@ +name amharic-test +language am + diff --git a/espeak-data/voices/test/az b/espeak-data/voices/test/az new file mode 100644 index 00000000..6fdf3827 --- /dev/null +++ b/espeak-data/voices/test/az @@ -0,0 +1,3 @@ +name azerbaijani-test +language az + diff --git a/espeak-data/voices/test/bg b/espeak-data/voices/test/bg new file mode 100644 index 00000000..688d9fd6 --- /dev/null +++ b/espeak-data/voices/test/bg @@ -0,0 +1,5 @@ +name bulgarian-test +language bg + +stressAmp 13 12 17 17 20 22 22 21 +stressLength 180 170 200 200 200 200 210 220 \ No newline at end of file diff --git a/espeak-data/voices/test/dv b/espeak-data/voices/test/dv new file mode 100644 index 00000000..d8562c44 --- /dev/null +++ b/espeak-data/voices/test/dv @@ -0,0 +1,3 @@ +name divehi-test +language dv + diff --git a/espeak-data/voices/test/grc b/espeak-data/voices/test/grc old mode 100755 new mode 100644 diff --git a/espeak-data/voices/test/ht b/espeak-data/voices/test/ht new file mode 100644 index 00000000..acc5d7bc --- /dev/null +++ b/espeak-data/voices/test/ht @@ -0,0 +1,3 @@ +name haitian +language ht + diff --git a/espeak-data/voices/test/kk b/espeak-data/voices/test/kk new file mode 100644 index 00000000..c99d4ecf --- /dev/null +++ b/espeak-data/voices/test/kk @@ -0,0 +1,3 @@ +name kazakh +language kk + diff --git a/espeak-data/voices/test/mt b/espeak-data/voices/test/mt new file mode 100644 index 00000000..bdf31d11 --- /dev/null +++ b/espeak-data/voices/test/mt @@ -0,0 +1,3 @@ +name maltese-test +language mt + diff --git a/espeak-data/voices/test/ne b/espeak-data/voices/test/ne new file mode 100644 index 00000000..e9671231 --- /dev/null +++ b/espeak-data/voices/test/ne @@ -0,0 +1,5 @@ +name nepali-test +language ne +gender male + +dictrules 1 diff --git a/espeak-data/voices/test/nso b/espeak-data/voices/test/nso new file mode 100644 index 00000000..7da1397f --- /dev/null +++ b/espeak-data/voices/test/nso @@ -0,0 +1,3 @@ +name northern-sotho +language nso +translator sw diff --git a/espeak-data/voices/test/pa b/espeak-data/voices/test/pa new file mode 100644 index 00000000..2ce846b7 --- /dev/null +++ b/espeak-data/voices/test/pa @@ -0,0 +1,2 @@ +name punjabi-test +language pa diff --git a/espeak-data/voices/test/prs b/espeak-data/voices/test/prs new file mode 100644 index 00000000..52d494fc --- /dev/null +++ b/espeak-data/voices/test/prs @@ -0,0 +1,5 @@ +name dari-test +language prs + +translator fa +stressrule 10 diff --git a/espeak-data/voices/test/rw b/espeak-data/voices/test/rw new file mode 100644 index 00000000..eecc8b7e --- /dev/null +++ b/espeak-data/voices/test/rw @@ -0,0 +1,4 @@ +name kinyarwanda-test +language rw +gender male + diff --git a/espeak-data/voices/test/si b/espeak-data/voices/test/si new file mode 100644 index 00000000..1229e49c --- /dev/null +++ b/espeak-data/voices/test/si @@ -0,0 +1,4 @@ +name sinhala +language si + +intonation 2 diff --git a/espeak-data/voices/test/sl b/espeak-data/voices/test/sl new file mode 100644 index 00000000..8506f9eb --- /dev/null +++ b/espeak-data/voices/test/sl @@ -0,0 +1,4 @@ +name slovenian-test +language sl + +stressLength 160 150 240 240 240 240 300 320 \ No newline at end of file diff --git a/espeak-data/voices/test/te b/espeak-data/voices/test/te new file mode 100644 index 00000000..3872a3af --- /dev/null +++ b/espeak-data/voices/test/te @@ -0,0 +1,5 @@ +name telugu +language te + +intonation 2 +//consonants 80 diff --git a/espeak-data/voices/test/tn b/espeak-data/voices/test/tn new file mode 100644 index 00000000..e3569fa5 --- /dev/null +++ b/espeak-data/voices/test/tn @@ -0,0 +1,3 @@ +name setswana-test +language tn + diff --git a/espeak-data/voices/test/ur b/espeak-data/voices/test/ur new file mode 100644 index 00000000..acc30a09 --- /dev/null +++ b/espeak-data/voices/test/ur @@ -0,0 +1,6 @@ +name urdu-test +language ur + +phonemes hi +stressrule 6 + diff --git a/espeak-data/voices/test/wo b/espeak-data/voices/test/wo new file mode 100644 index 00000000..d4ac9f2e --- /dev/null +++ b/espeak-data/voices/test/wo @@ -0,0 +1,4 @@ +name wolof-test +language wo + + diff --git a/espeak-data/voices/tr b/espeak-data/voices/tr old mode 100755 new mode 100644 diff --git a/espeak-data/voices/vi b/espeak-data/voices/vi old mode 100755 new mode 100644 diff --git a/espeak-data/voices/zh-yue b/espeak-data/voices/zh-yue old mode 100755 new mode 100644 diff --git a/phsource/b/br b/phsource/b/br old mode 100755 new mode 100644 diff --git a/phsource/compile_report b/phsource/compile_report index e044fd75..27acd0c6 100644 --- a/phsource/compile_report +++ b/phsource/compile_report @@ -1,4 +1,4 @@ -77 phoneme tables +79 phoneme tables new total base 107 107 consonants 10 116 @@ -77,6 +77,8 @@ consonants 10 116 tn 27 119 mt 32 127 bo 10 152 + kk 17 116 + fa 9 110 Data file Used by b/b [b] base @@ -400,7 +402,7 @@ l/l_ [l] base [l/] fr l/l_@ [l/3] base [l/] fr -l/l@ [h¡ý] base +l/l@ [háÿ] base [l#] base [l] fr [l/2] fr @@ -434,7 +436,7 @@ l/L2_oL [l/2] base l/L2_uL [l/2] base l/l_3 [l/] de l/l_4 [ll] sq -l/la [h¡ý] base +l/la [háÿ] base [l#] base [l] fr [l/2] fr @@ -442,7 +444,7 @@ l/la [h [K] tn l/l_a [l/3] base [l/] fr -l/le [h¡ý] base +l/le [háÿ] base [l#] base [l] fr [l/2] fr @@ -454,7 +456,7 @@ l/L_eL_af [&] af [&:] af l/l_front [L] sq l/l_front_ [l/4] sq -l/li [h¡ý] base +l/li [háÿ] base [l#] base [l] fr [l/2] fr @@ -468,7 +470,7 @@ ll/ll [L] bg ll/_ll [L] bg l/l_long [l] base [l] fr -l/lo [h¡ý] base +l/lo [háÿ] base [l#] base [l/2] fr [K] nso @@ -478,7 +480,7 @@ l/l_o [l/3] base l^/l_rfx [l.] base [l] ru [l^] ru -l/lu [h¡ý] base +l/lu [háÿ] base [l#] base [l] fr [l/2] fr @@ -786,6 +788,7 @@ ufric/x [x] base [kh] vi ufric/x2 [x2] af [x] ku + [X] kk ufric/x_hr [x] base [x] hr [x] ru @@ -1017,6 +1020,7 @@ vdiph2/ii@ [i@] en [i@3] en [i@] en-us [ja] ru +vdiph2/ii@_2 [e] kk vdiph2/ii@_3 [i@] vi vdiph2/iioo [io] zh vdiph2/iu [iU] base2 @@ -1049,6 +1053,7 @@ vdiph2/uw [u:] en-us vdiph2/uw_2 [u:] en vdiph2/uw_3 [yU] ro vdiph2/uw_4 [u:] en-n +vdiph2/uw_6 [u#] kk vdiph2/y@ [y@] zh vdiph2/y#@ [Y@] af vdiph2/ye [yE] sq @@ -1147,6 +1152,7 @@ vdiph/eei_2 [eI] eo [ei] lv [eI] id [ei] mt + [eI] fa vdiph/eei_3 [eI] sk [eI] ku vdiph/eeu [EU] pt @@ -1229,6 +1235,7 @@ vdiph/ou [ou] fi [ou] mt vdiph/ou_2 [oU] sk [oU] ro + [oU] fa vdiph/ou_3 [oU] is [oU:] is vdiph/ou_4 [o:] nl @@ -1409,6 +1416,7 @@ vowel/& [a] en-rp [&] sv [&#] da [&] az + [a] fa vowel/0 [0] en [O] hi [O] pt @@ -1422,6 +1430,7 @@ vowel/0_3 [O:] en-us [O] en-sc [0] en-rp [A] hu + [A] fa vowel/@_2 [@] vi [@:] vi [@] sq @@ -1563,6 +1572,7 @@ vowel/a_5 [a:] ta [a] sw [a:] te [a] tn + [a] kk vowel/a_6 [a] ca [a:] vi [a] am @@ -1611,6 +1621,7 @@ vowel/aa_9 [a] fi [a] pa [a] ak [a] mt + [A] kk vowel/@_bck [@] hi [@] bg [@] zh @@ -1693,6 +1704,7 @@ vowel/ee_2 [E] cy [E#] ku [&] da [E] pa + [&] kk vowel/ee#_2 [E1] et [E-] sv [E#] sq @@ -1766,9 +1778,11 @@ vowel/e_mid2 [E] af [e:] si [e] mt [e] bo + [e] fa vowel/@_fnt [@] en-wi [@2] en-wi [@2] hr + [E] kk vowel/@_fr [3] en-n vowel/@_hgh [@] fr [@-] fr @@ -1807,6 +1821,7 @@ vowel/i [i] base [i:] te [i:] si [i] bo + [i] fa vowel/i# [y:] cy vowel/i_2 [i2] de [i:] de @@ -1874,6 +1889,7 @@ vowel/ii# [Y] cy [Y] ru [I] ku [i] sq + [I] kk vowel/ii_2 [I] en [i] zh [I] mt @@ -1912,6 +1928,7 @@ vowel/ii_6 [I] en-wm [i] wo vowel/ii_7 [i] en [i] sq +vowel/ii_8 [i] kk vowel/ii_final [i] en-us [i] en-rp vowel/@_low [@] en-rp @@ -1977,7 +1994,9 @@ vowel/o_2 [o:] cy vowel/o-_2 [V] en-n [V] en-wm vowel/o_3 [oU] en-sc + [o] kk vowel/o-_3 [U] en-rp + [8] kk vowel/o-_4 [o] ro [o] am vowel/o_5 [O] da @@ -2002,6 +2021,7 @@ vowel/o_mid [U@] en-rp [o] az [o] dv [o:] dv + [o] fa vowel/o_mid2 [O] fr [O] ht vowel/oo [o] base @@ -2172,7 +2192,9 @@ vowel/u_bck2 [u] et [u:] la [u] es [u] ht + [u] fa vowel/u_bck3 [u:] et + [u] kk vowel/uu [U] en [U] en-n [U] en-wm @@ -2182,6 +2204,7 @@ vowel/uu_2 [U] base2 [U] de [U] ca [U] tr + [U] kk vowel/uu_3 [u] af [y] zh vowel/uu_4 [U] fi @@ -2254,6 +2277,7 @@ vowel/y_3 [y] af vowel/y#_3 [W] is [W:] is vowel/y_4 [y:] no +vowel/y#_4 [Y] kk vowel/y_5 [y:] sv [y] tr [y] ku diff --git a/phsource/d/xd2 b/phsource/d/xd2 new file mode 100644 index 00000000..9cfa2cf1 Binary files /dev/null and b/phsource/d/xd2 differ diff --git a/phsource/envelope/i_fall2 b/phsource/envelope/i_fall2 new file mode 100644 index 00000000..e15c1a35 --- /dev/null +++ b/phsource/envelope/i_fall2 @@ -0,0 +1,9 @@ +ENVELOPE +0 100 +10 97 +20 94 +70 40 +90 5 +100 0 + + diff --git a/phsource/envelope/i_fallrise3 b/phsource/envelope/i_fallrise3 new file mode 100644 index 00000000..61df61ad --- /dev/null +++ b/phsource/envelope/i_fallrise3 @@ -0,0 +1,11 @@ +ENVELOPE +0 100 +10 95 +32 44 +49 3 +54 0 +80 35 +100 50 + + + diff --git a/phsource/envelope/i_fallrise4 b/phsource/envelope/i_fallrise4 new file mode 100644 index 00000000..faea3bcb --- /dev/null +++ b/phsource/envelope/i_fallrise4 @@ -0,0 +1,13 @@ +ENVELOPE +0 45 +8 40 +25 15 +40 3 +75 40 +93 95 +100 100 + + + + + diff --git a/phsource/envelope/i_rise2 b/phsource/envelope/i_rise2 new file mode 100644 index 00000000..f6270d19 --- /dev/null +++ b/phsource/envelope/i_rise2 @@ -0,0 +1,8 @@ +ENVELOPE + 0 0 +20 6 +45 25 +70 60 +90 90 +100 100 + diff --git a/phsource/envelope/i_risefall1 b/phsource/envelope/i_risefall1 new file mode 100644 index 00000000..55c817fe --- /dev/null +++ b/phsource/envelope/i_risefall1 @@ -0,0 +1,11 @@ +ENVELOPE +0 45 +5 50 +25 92 +35 100 +45 95 +85 12 +90 5 +100 0 + + diff --git a/phsource/envelope/i_risefallrise b/phsource/envelope/i_risefallrise new file mode 100644 index 00000000..300a4c20 --- /dev/null +++ b/phsource/envelope/i_risefallrise @@ -0,0 +1,11 @@ +ENVELOPE +0 50 +7 55 +24 90 +49 54 +60 22 +91 51 +100 58 + + + diff --git a/phsource/envelope/p_451 b/phsource/envelope/p_451 new file mode 100644 index 00000000..b76779eb --- /dev/null +++ b/phsource/envelope/p_451 @@ -0,0 +1,8 @@ +ENVELOPE +0 80 +30 96 +65 50 +100 0 + + + diff --git a/phsource/envelope/p_rise2 b/phsource/envelope/p_rise2 new file mode 100644 index 00000000..4803cb58 --- /dev/null +++ b/phsource/envelope/p_rise2 @@ -0,0 +1,9 @@ +ENVELOPE +0 100 +10 97 +20 94 +50 70 +75 40 +100 0 + + diff --git a/phsource/envelopes.png b/phsource/envelopes.png new file mode 100644 index 00000000..aa95e8da Binary files /dev/null and b/phsource/envelopes.png differ diff --git a/phsource/error_intonation b/phsource/error_intonation new file mode 100644 index 00000000..e69de29b diff --git a/phsource/error_log b/phsource/error_log new file mode 100644 index 00000000..e796d0cb --- /dev/null +++ b/phsource/error_log @@ -0,0 +1,473 @@ +______________________________ +Phoneme Table: 'base' + +______________________________ +Phoneme Table: 'consonants' +include ph_consonants + + + +______________________________ +Phoneme Table: 'base2' +include ph_base2 + + + +______________________________ +Phoneme Table: 'en' +include ph_english + + + +______________________________ +Phoneme Table: 'en-n' +include ph_english_n + + + +______________________________ +Phoneme Table: 'en-us' +include ph_english_us + + + +______________________________ +Phoneme Table: 'en-sc' +include ph_english_sc + + + +______________________________ +Phoneme Table: 'en-rp' +include ph_english_rp + + + +______________________________ +Phoneme Table: 'en-wm' +include ph_english_wm + + + +______________________________ +Phoneme Table: 'en-wi' +include ph_english_wi + + + +______________________________ +Phoneme Table: 'af' +include ph_afrikaans + + + +______________________________ +Phoneme Table: 'cy' +include ph_welsh + + + +______________________________ +Phoneme Table: 'de' +include ph_german + + + +______________________________ +Phoneme Table: 'eo' +include ph_esperanto + + + +______________________________ +Phoneme Table: 'jbo' +include ph_lojban + + + +______________________________ +Phoneme Table: 'nci' +include ph_nahuatl + + + +______________________________ +Phoneme Table: 'fi' +include ph_finnish + + + +______________________________ +Phoneme Table: 'et' +include ph_estonian + + + +______________________________ +Phoneme Table: 'fr' +include ph_french + + + +______________________________ +Phoneme Table: 'fr-ca' +include ph_french_ca + + + +______________________________ +Phoneme Table: 'hi' +include ph_hindi + + + +______________________________ +Phoneme Table: 'ta' +include ph_tamil + + + +______________________________ +Phoneme Table: 'kn' +include ph_kannada + + + +______________________________ +Phoneme Table: 'ml' +include ph_malayalam + + + +______________________________ +Phoneme Table: 'hu' +include ph_hungarian + + + +______________________________ +Phoneme Table: 'lv' +include ph_latvian + + + +______________________________ +Phoneme Table: 'nl' +include ph_dutch + + + +______________________________ +Phoneme Table: 'pl' +include ph_polish + + + +______________________________ +Phoneme Table: 'sk' +include ph_slovak + + + +______________________________ +Phoneme Table: 'cs' +include ph_czech + + + +______________________________ +Phoneme Table: 'hr' +include ph_croatian + + + +______________________________ +Phoneme Table: 'mk' +include ph_macedonian + + + +______________________________ +Phoneme Table: 'sr' +include ph_serbian + + + +______________________________ +Phoneme Table: 'ru' +include ph_russian + + + +______________________________ +Phoneme Table: 'bg' +include ph_bulgarian + + + +______________________________ +Phoneme Table: 'it' +include ph_italian + + + +______________________________ +Phoneme Table: 'la' +include ph_latin + + + +______________________________ +Phoneme Table: 'es' +include ph_spanish + + + +______________________________ +Phoneme Table: 'es-la' +include ph_spanish_la + + + +______________________________ +Phoneme Table: 'ca' +include ph_catalan + + + +______________________________ +Phoneme Table: 'pt' +include ph_pt_brazil + + + +______________________________ +Phoneme Table: 'pt-pt' +include ph_portugal + + + +______________________________ +Phoneme Table: 'ro' +include ph_romanian + + + +______________________________ +Phoneme Table: 'el' +include ph_greek + + + +______________________________ +Phoneme Table: 'grc' +include ph_greek_ancient + + + +______________________________ +Phoneme Table: 'sv' +include ph_swedish + + + +______________________________ +Phoneme Table: 'no' +include ph_norwegian + + + +______________________________ +Phoneme Table: 'is' +include ph_icelandic + + + +______________________________ +Phoneme Table: 'vi' +include ph_vi + + + +______________________________ +Phoneme Table: 'zhy' +include ph_zh_yue + + + +______________________________ +Phoneme Table: 'zh' +include ph_zh + + + +______________________________ +Phoneme Table: 'sw' +include ph_swahili + + + +______________________________ +Phoneme Table: 'tr' +include ph_turkish + + + +______________________________ +Phoneme Table: 'ku' +include ph_kurdish + + + +______________________________ +Phoneme Table: 'id' +include ph_indonesian + + + +______________________________ +Phoneme Table: 'sq' +include ph_albanian + + + +______________________________ +Phoneme Table: 'hy' +include ph_armenian + + + +______________________________ +Phoneme Table: 'da' +include ph_danish + + + +______________________________ +Phoneme Table: 'ka' +include ph_georgian + + + +______________________________ +Phoneme Table: 'rw' +include ph_kinyarwanda + + + +______________________________ +Phoneme Table: 'ne' +include ph_nepali + + + +______________________________ +Phoneme Table: 'pa' +include ph_punjabi + + + +______________________________ +Phoneme Table: 'prs' +include ph_dari + + + +______________________________ +Phoneme Table: 'sl' +include ph_slovenian + + + +______________________________ +Phoneme Table: 'gd' +include ph_s_gaelic + + + +______________________________ +Phoneme Table: 'nso' +include ph_northern-sotho + + + +______________________________ +Phoneme Table: 'ht' +include ph_haitian + + + +______________________________ +Phoneme Table: 'az' +include ph_azerbaijani + + + +______________________________ +Phoneme Table: 'ak' +include ph_akan + + + +______________________________ +Phoneme Table: 'am' +include ph_amhari + + + +______________________________ +Phoneme Table: 'wo' +include ph_wolof + + + +______________________________ +Phoneme Table: 'dv' +include ph_divehi + + + +______________________________ +Phoneme Table: 'te' +include ph_telugu + + + +______________________________ +Phoneme Table: 'si' +include ph_sinhala + + + +______________________________ +Phoneme Table: 'tn' +include ph_setswana + + + +______________________________ +Phoneme Table: 'mt' +include ph_maltese + + + +______________________________ +Phoneme Table: 'bo' +include ph_tibetan + + + +______________________________ +Phoneme Table: 'kk' +include ph_kazakh + + + +______________________________ +Phoneme Table: 'fa' +include ph_farsi + + + + +Refs 2601, Reused 1809 diff --git a/phsource/g/gr b/phsource/g/gr old mode 100755 new mode 100644 diff --git a/phsource/h/h_phr.wav b/phsource/h/h_phr.wav new file mode 100644 index 00000000..70461aa1 Binary files /dev/null and b/phsource/h/h_phr.wav differ diff --git a/phsource/klatt/n_n^/_n^ b/phsource/klatt/n_n^/_n^ new file mode 100644 index 00000000..33616bab Binary files /dev/null and b/phsource/klatt/n_n^/_n^ differ diff --git a/phsource/klatt/n_n^/n^#_ b/phsource/klatt/n_n^/n^#_ new file mode 100644 index 00000000..b4d10673 Binary files /dev/null and b/phsource/klatt/n_n^/n^#_ differ diff --git a/phsource/klatt/n_n^/n^@ b/phsource/klatt/n_n^/n^@ new file mode 100644 index 00000000..59ca9722 Binary files /dev/null and b/phsource/klatt/n_n^/n^@ differ diff --git a/phsource/klatt/n_n^/n^_ b/phsource/klatt/n_n^/n^_ new file mode 100644 index 00000000..93cf744f Binary files /dev/null and b/phsource/klatt/n_n^/n^_ differ diff --git a/phsource/klatt/n_n^/n^a b/phsource/klatt/n_n^/n^a new file mode 100644 index 00000000..c66e6f11 Binary files /dev/null and b/phsource/klatt/n_n^/n^a differ diff --git a/phsource/klatt/n_n^/n^e b/phsource/klatt/n_n^/n^e new file mode 100644 index 00000000..9eb97247 Binary files /dev/null and b/phsource/klatt/n_n^/n^e differ diff --git a/phsource/klatt/n_n^/n^i b/phsource/klatt/n_n^/n^i new file mode 100644 index 00000000..38dc32ea Binary files /dev/null and b/phsource/klatt/n_n^/n^i differ diff --git a/phsource/klatt/n_n^/n^o b/phsource/klatt/n_n^/n^o new file mode 100644 index 00000000..c1ac32a1 Binary files /dev/null and b/phsource/klatt/n_n^/n^o differ diff --git a/phsource/klatt/n_n^/n^u b/phsource/klatt/n_n^/n^u new file mode 100644 index 00000000..e4a261b9 Binary files /dev/null and b/phsource/klatt/n_n^/n^u differ diff --git a/phsource/l/l_@ b/phsource/l/l_@ old mode 100755 new mode 100644 diff --git a/phsource/l/l_a b/phsource/l/l_a old mode 100755 new mode 100644 diff --git a/phsource/l/l_e b/phsource/l/l_e old mode 100755 new mode 100644 diff --git a/phsource/l/l_i b/phsource/l/l_i old mode 100755 new mode 100644 diff --git a/phsource/l/l_o b/phsource/l/l_o old mode 100755 new mode 100644 diff --git a/phsource/l/l_u b/phsource/l/l_u old mode 100755 new mode 100644 diff --git a/phsource/l/l_y b/phsource/l/l_y old mode 100755 new mode 100644 diff --git a/phsource/mbrola/ee1 b/phsource/mbrola/ee1 new file mode 100644 index 00000000..88ceef34 --- /dev/null +++ b/phsource/mbrola/ee1 @@ -0,0 +1,64 @@ + +0 A NULL 0 a +0 A1 NULL 0 a +0 a: NULL 50 a a +0 E NULL 0 e +0 E1 NULL 0 e +0 e: NULL 50 e e +0 I NULL 0 i +0 I1 NULL 0 i +0 i1 NULL 0 i +0 i: NULL 50 i i +0 O NULL 0 o +0 O1 NULL 0 o +0 o: NULL 50 o o +0 U NULL 0 u +0 U1 NULL 0 u +0 u: NULL 50 u u +0 8 NULL 0 7 +0 8: NULL 50 7 7 +0 & NULL 0 { +0 &: NULL 50 { { +0 Y NULL 0 2 +0 Y: NULL 50 2 2 +0 y: NULL 50 y y + +0 8u NULL 50 7 u +0 &i NULL 50 { i +0 Yi NULL 50 2 i +0 yi NULL 50 y i + +0 b : 0 p: +0 d : 0 t: +0 d^ NULL 0 d' +0 d^ : 0 d' +0 g : 0 k: +0 h : 0 h: +0 j : 0 j: +0 k : 0 k: +0 l : 0 l: +0 l/ NULL 0 l +0 l^ NULL 0 l' +0 l^ : 0 l' +0 m : 0 m: +0 n : 0 n: +0 n^ NULL 0 n' +0 n^ : 0 n' +0 N : 0 N: +0 p : 0 p: +0 R NULL 0 r +0 R : 0 r: +0 b : 0 p: +0 s2 NULL 0 s s +0 s^ NULL 0 s' +0 s^ : 0 s' +0 S : 0 S: +0 t : 0 t: +0 t^ NULL 0 t' +0 t^ : 0 t' +0 v : 0 v: +0 w NULL 0 v +0 Z NULL 0 S +0 z NULL 0 s + + diff --git a/phsource/mbrola/ic1 b/phsource/mbrola/ic1 new file mode 100644 index 00000000..4ad40c55 --- /dev/null +++ b/phsource/mbrola/ic1 @@ -0,0 +1,52 @@ + +0 r/ r# 0 NULL + +0 l/2 NULL 0 l +0 l/ NULL 0 l +0 r/ NULL 0 r +0 r- NULL 0 r +0 l- NULL 0 l +0 w/ NULL 0 u +0 j/ NULL 0 j +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +0 ** NULL 0 NULL +0 * NULL 0 NULL + + +0 y NULL 0 Y +0 y: NULL 0 Y: +0 W NULL 0 9 +0 W: NULL 0 9: +0 eI NULL 0 ei +0 eI: NULL 0 ei: +0 aI NULL 0 ai +0 aI: NULL 0 ai: +0 oU NULL 0 ou +0 oU: NULL 0 ou: +0 aU NULL 0 au +0 aU: NULL 0 au: +0 Yy NULL 0 9y +0 Yy: NULL 0 9y: +0 OI NULL 0 Oi +0 yi NULL 0 Yi + +0 _| NULL 0 NULL +0 R _ 0 r0 +0 R NULL 0 r +0 R2 NULL 0 r +0 Q NULL 0 G +0 m# NULL 0 m0 +0 n# NULL 0 n0 +0 N# NULL 0 N0 +0 n^ NULL 0 J +0 n^# NULL 0 J0 +0 l# NULL 0 l0 +0 r# NULL 0 r0 +0 J NULL 0 J- +0 s2 NULL 0 NULL + +5 h l# 0 l0 +5 h n# 0 n0 +5 h r# 0 r0 diff --git a/phsource/mbrola/mx1 b/phsource/mbrola/mx1 new file mode 100644 index 00000000..e7b6bf1b --- /dev/null +++ b/phsource/mbrola/mx1 @@ -0,0 +1,90 @@ + +0 l/2 NULL 0 l +0 l/ NULL 0 l +0 r/ NULL 0 r +0 r- NULL 0 r +0 l- NULL 0 l +0 w/ NULL 0 w +0 j/ NULL 0 i +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +0 * NULL 0 r +0 : NULL 0 NULL + +0 ** NULL 0 r +2 R s 1 _ rr // s-rr, t-rr are unknown +2 R t 1 _ rr +0 R NULL 0 rr +0 R2 NULL 0 NULL +0 v# NULL 0 b +0 v NULL 0 b +0 j NULL 0 i +0 J NULL 0 jj +0 J^ NULL 0 jj +0 n^ NULL 0 J +0 N NULL 0 n + +0 B NULL 0 b +0 D NULL 0 d +0 Q NULL 0 g + +0 z NULL 0 s + + +// don't allow [u] next to a vowel, except [u] +0 u u 0 u +0 u VWL 0 w +2 u u 0 u +2 u VWL 0 w + +0 j NULL 0 i + +0 a/ NULL 0 a +0 E NULL 0 e +0 O NULL 0 o +0 aI NULL 60 a i +0 eI NULL 60 e i +0 oI NULL 60 o i +0 aU NULL 60 a w +0 eU NULL 60 e w + +0 S NULL 60 s i +0 Z NULL 60 s i + +0 @ NULL 0 e +0 @2 NULL 0 e +0 @5 NULL 0 u +0 0 NULL 0 o +0 V NULL 0 a +0 U NULL 0 u +0 I NULL 0 i +0 I2 NULL 0 i +0 A: NULL 0 a +0 A@ NULL 60 a r +0 o: NULL 0 o +0 O: NULL 0 o +0 O@ NULL 60 o r +0 o@ NULL 60 o r +0 i: NULL 0 i +0 i@ NULL 60 i a +0 i@3 NULL 60 i r +0 u: NULL 0 u +0 U@ NULL 60 u r +0 3 NULL 60 e r +0 3: NULL 60 e r +0 @L NULL 40 e l +0 a# NULL 0 a +0 aa NULL 0 a +0 e@ NULL 0 e r +0 oU NULL 0 o +0 OI NULL 60 o i +0 aI@ NULL 60 a r +0 aU@ NULL 0 a +0 t2 NULL 0 t +0 h NULL 0 NULL + + + + + diff --git a/phsource/mbrola/mx2 b/phsource/mbrola/mx2 new file mode 100644 index 00000000..466944c7 --- /dev/null +++ b/phsource/mbrola/mx2 @@ -0,0 +1,90 @@ + +0 l/2 NULL 0 l +0 l/ NULL 0 l +0 r/ NULL 0 r +0 r- NULL 0 r +0 l- NULL 0 l +0 w/ NULL 0 w +0 j/ NULL 0 i +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +0 * NULL 0 r +0 : NULL 0 NULL + +0 ** NULL 0 r +2 R s 1 _ rr // s-rr, t-rr are unknown +2 R t 1 _ rr +0 R NULL 0 rr +0 R2 NULL 0 NULL +0 v# NULL 0 b +0 v NULL 0 b +0 j NULL 0 i +0 J NULL 0 dZ +0 J^ NULL 0 dZ +0 n^ NULL 0 ny +0 N NULL 0 n + +0 B NULL 0 b +0 D NULL 0 d +0 Q NULL 0 g + +0 z NULL 0 s +0 x NULL 0 j + +// don't allow [u] next to a vowel, except [u] +0 u u 0 u +0 u VWL 0 w +2 u u 0 u +2 u VWL 0 w + +0 j NULL 0 i + +0 a/ NULL 0 a +0 E NULL 0 e +0 O NULL 0 o +0 aI NULL 60 a i +0 eI NULL 60 e i +0 oI NULL 60 o i +0 aU NULL 60 a w +0 eU NULL 60 e w + +0 S NULL 60 s i +0 Z NULL 60 s i + +0 @ NULL 0 e +0 @2 NULL 0 e +0 @5 NULL 0 u +0 0 NULL 0 o +0 V NULL 0 a +0 U NULL 0 u +0 I NULL 0 i +0 I2 NULL 0 i +0 A: NULL 0 a +0 A@ NULL 60 a r +0 o: NULL 0 o +0 O: NULL 0 o +0 O@ NULL 60 o r +0 o@ NULL 60 o r +0 i: NULL 0 i +0 i@ NULL 60 i a +0 i@3 NULL 60 i r +0 u: NULL 0 u +0 U@ NULL 60 u r +0 3 NULL 60 e r +0 3: NULL 60 e r +0 @L NULL 40 e l +0 a# NULL 0 a +0 aa NULL 0 a +0 e@ NULL 0 e r +0 oU NULL 0 o +0 OI NULL 60 o i +0 aI@ NULL 60 a r +0 aU@ NULL 0 a +0 t2 NULL 0 t +0 h NULL 0 NULL + + + + + diff --git a/phsource/mbrola/tr1 b/phsource/mbrola/tr1 new file mode 100644 index 00000000..5749053a --- /dev/null +++ b/phsource/mbrola/tr1 @@ -0,0 +1,17 @@ + +0 i NULL 0 I +0 E NULL 0 e +0 O NULL 0 o +0 U NULL 0 u +0 W NULL 0 @' +0 Y NULL 0 y + +0 R NULL 0 r +0 * NULL 0 r +0 ** NULL 0 r +0 l/2 NULL 0 l +0 c NULL 0 k +0 J NULL 0 g +0 Q NULL 0 G +0 w NULL 0 v + diff --git a/phsource/mbrola/vz b/phsource/mbrola/vz new file mode 100644 index 00000000..ddea69b5 --- /dev/null +++ b/phsource/mbrola/vz @@ -0,0 +1,113 @@ + +0 l/2 NULL 0 l +0 l/ NULL 0 l +0 r/ NULL 0 r +0 r- NULL 0 r +0 l- NULL 0 l +0 w/ NULL 0 w +0 j/ NULL 0 j +0 ; NULL 0 NULL +0 g- NULL 0 NULL +0 @- NULL 0 NULL +0 * NULL 0 r +0 : NULL 0 NULL + +0 ** NULL 0 r +2 R s 1 _ rr // s-rr, t-rr are unknown +2 R t 1 _ rr +0 R NULL 0 rr +0 R2 NULL 0 NULL +0 v# NULL 0 b +0 v NULL 0 b +0 j NULL 0 j +0 J NULL 0 L +0 J^ NULL 0 L +0 n^ NULL 0 J +0 N NULL 0 n + +2 b VWL 0 B +2 d VWL 0 D +2 g VWL 0 G +0 B NULL 0 B +0 D NULL 0 D +0 Q NULL 0 G +0 z NULL 0 s +0 s VWL 0 s +0 s t 0 s +2 s VWL 0 s2 +0 x NULL 0 h +2 tS _ 0 tS // consonant-tS are unknown +2 tS VWL 0 tS +2 tS NULL 1 _ tS + + +// vowels in stressed syllables +32 a NULL 0 a* +32 e NULL 0 e* +32 i NULL 0 i* +32 o NULL 0 o* +32 u NULL 0 u* + +// don't allow [i] next to a vowel, except [i] +0 i i 0 i +0 i VWL 0 j +1 i ; 0 j +2 i i 0 i +2 i VWL 0 j + + +// don't allow [u] next to a vowel, except [u] +0 u u 0 u +0 u VWL 0 w +2 u u 0 u +2 u VWL 0 w + +0 a/ NULL 0 a +0 E NULL 0 e +0 O NULL 0 o +0 aI NULL 60 a j +0 eI NULL 60 e j +0 oI NULL 60 o j +0 aU NULL 60 a w +0 eU NULL 60 e w + +0 dZ NULL 0 tS +0 S NULL 60 s j +0 Z NULL 60 s j + +0 @ NULL 0 e +0 @2 NULL 0 e +0 @5 NULL 0 u +0 0 NULL 0 o +0 V NULL 0 a +0 U NULL 0 u +0 I NULL 0 i +0 I2 NULL 0 i +0 A: NULL 0 a +0 A@ NULL 60 a r +0 o: NULL 0 o +0 O: NULL 0 o +0 O@ NULL 60 o r +0 o@ NULL 60 o r +0 i: NULL 0 i +0 i@ NULL 60 i a +0 i@3 NULL 60 i r +0 u: NULL 0 u +0 U@ NULL 60 u r +0 3 NULL 60 e r +0 3: NULL 60 e r +0 @L NULL 40 e l +0 a# NULL 0 a +0 aa NULL 0 a +0 e@ NULL 0 e r +0 oU NULL 0 o +0 OI NULL 60 o j +0 aI@ NULL 60 a r +0 aU@ NULL 0 a +0 t2 NULL 0 t +0 h NULL 0 NULL + + + + + diff --git a/phsource/ph_afrikaans b/phsource/ph_afrikaans old mode 100755 new mode 100644 diff --git a/phsource/ph_akan b/phsource/ph_akan new file mode 100644 index 00000000..b5a17dba --- /dev/null +++ b/phsource/ph_akan @@ -0,0 +1,47 @@ + +phoneme i + vowel starttype #i endtype #i + length 170 + FMT(vowel/i) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 170 + FMT(vowel/e_6) +endphoneme + +phoneme E + vowel starttype #e endtype #e + length 170 + FMT(vowel/ee_5) +endphoneme + + +phoneme a + vowel starttype #a endtype #a + length 170 + FMT(vowel/aa_9) +endphoneme + + +phoneme O + vowel starttype #o endtype #o + length 170 + FMT(vowel/oo_2) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 170 + FMT(vowel/o) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 170 + FMT(vowel/u) +endphoneme + diff --git a/phsource/ph_azerbaijani b/phsource/ph_azerbaijani new file mode 100644 index 00000000..4acc8485 --- /dev/null +++ b/phsource/ph_azerbaijani @@ -0,0 +1,56 @@ + +phoneme i + vowel starttype #i endtype #i + length 160 + FMT(vowel/ii_5) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 160 + FMT(vowel/e_mid2) +endphoneme + +phoneme & + vowel starttype #e endtype #e + length 160 + FMT(vowel/&) +endphoneme + +phoneme y + vowel starttype #u endtype #u + length 200 + FMT(vowel/y) +endphoneme + +phoneme W + vowel starttype #@ endtype #@ + length 180 + FMT(vowel/y#_2) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 160 + FMT(vowel/u_5) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 160 + FMT(vowel/o_mid) +endphoneme + +phoneme a + vowel starttype #a endtype #a + length 200 + FMT(vowel/aa) +endphoneme + +phoneme @ + vowel starttype #@ endtype #@ + ipa ɯ + length 160 + FMT(vowel/u#_7) +endphoneme + diff --git a/phsource/ph_dari b/phsource/ph_dari new file mode 100644 index 00000000..593a6bac --- /dev/null +++ b/phsource/ph_dari @@ -0,0 +1,52 @@ + +phoneme i + vowel starttype #i endtype #i + length 170 + IfNextVowelAppend(;) + FMT(vowel/i) +endphoneme + + +phoneme E + vowel starttype #e endtype #e + length 170 + FMT(vowel/e_mid) +endphoneme + + +phoneme A + vowel starttype #a endtype #a + length 180 + FMT(vowel/aa_3) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 170 + FMT(vowel/oo) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 170 + FMT(vowel/u) +endphoneme + + + +phoneme eI + vowel starttype #e endtype #i + length 210 + FMT(vdiph/eei) +endphoneme + + +phoneme aU + vowel starttype #a endtype #u + length 230 + FMT(vdiph/au) +endphoneme + + diff --git a/phsource/ph_divehi b/phsource/ph_divehi new file mode 100644 index 00000000..177ba349 --- /dev/null +++ b/phsource/ph_divehi @@ -0,0 +1,95 @@ + +// Phonemes for Divehi +// This inherits from ph_hindi + + + +phoneme a + vowel starttype #a endtype #a + length 130 + ChangeIfDiminished(V) // ?? final syllable of word + FMT(vowel/a#) +endphoneme + + +phoneme a: + vowel starttype #a endtype #a + length 300 + FMT(vowel/a#) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 130 + FMT(vowel/e) +endphoneme + + +phoneme e: + vowel starttype #e endtype #e + length 250 + FMT(vowel/e) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 130 + FMT(vowel/i_6) +endphoneme + + +phoneme i: + vowel starttype #i endtype #i + length 270 + FMT(vowel/i) +endphoneme + + + +phoneme o + vowel starttype #o endtype #o + length 130 + FMT(vowel/o_mid) +endphoneme + + +phoneme o: + vowel starttype #o endtype #o + length 300 + FMT(vowel/o_mid) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 110 + FMT(vowel/u_6) +endphoneme + + +phoneme u: + vowel starttype #u endtype #u + length 290 + FMT(vowel/u_6) +endphoneme + + +phoneme aI + vowel starttype #a endtype #i + length 280 + FMT(vdiph/ai_8) +endphoneme + + + +phoneme t + import_phoneme base2/t // dental +endphoneme + +// ?? This is standard [v]. Should be it [v] without the fricative noise? +phoneme v + import_phoneme base/v +endphoneme + diff --git a/phsource/ph_estonian b/phsource/ph_estonian old mode 100755 new mode 100644 diff --git a/phsource/ph_farsi b/phsource/ph_farsi new file mode 100644 index 00000000..6333d193 --- /dev/null +++ b/phsource/ph_farsi @@ -0,0 +1,63 @@ + +// Long Vowels + +phoneme A + vowel starttype #i endtype #i + length 200 + FMT(vowel/0_3) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 200 + FMT(vowel/i) +endphoneme + + +phoneme u + vowel starttype #i endtype #i + length 200 + FMT(vowel/u_bck2) +endphoneme + + +// Short Vowels + +phoneme a + vowel starttype #i endtype #i + length 160 + FMT(vowel/&) +endphoneme + + +phoneme e + vowel starttype #i endtype #i + length 160 + FMT(vowel/e_mid2) +endphoneme + + +phoneme o + vowel starttype #i endtype #i + length 160 + FMT(vowel/o_mid) +endphoneme + + +// Diphthongs + + +phoneme eI + vowel starttype #i endtype #i + length 220 + FMT(vdiph/eei_2) +endphoneme + + +phoneme oU + vowel starttype #i endtype #i + length 220 + FMT(vdiph/ou_2) +endphoneme + diff --git a/phsource/ph_georgian b/phsource/ph_georgian old mode 100755 new mode 100644 diff --git a/phsource/ph_german b/phsource/ph_german old mode 100755 new mode 100644 diff --git a/phsource/ph_haitian b/phsource/ph_haitian new file mode 100644 index 00000000..da57352a --- /dev/null +++ b/phsource/ph_haitian @@ -0,0 +1,69 @@ + +phoneme a + vowel starttype #a endtype #a + length 170 + FMT(vowel/a_7, 85) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 170 + FMT(vowel/e_6) +endphoneme + + +phoneme E + vowel starttype #e endtype #e + length 170 + FMT(vowel/e_mid) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 160 + IfNextVowelAppend(;) + FMT(vowel/i_8) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 170 + FMT(vowel/o_8) +endphoneme + + +phoneme O + vowel starttype #o endtype #o + length 170 + FMT(vowel/o_mid2) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 180 + FMT(vowel/u_bck2) +endphoneme + +// Nasal vowels + +phoneme A~ + vowel starttype #a endtype #a + length 200 + FMT(vnasal/aa_n4) +endphoneme + +phoneme E~ + vowel starttype #e endtype #e + length 200 + FMT(vnasal/W_n) +endphoneme + +phoneme O~ + vowel starttype #o endtype #o + length 200 + FMT(vnasal/o_n) +endphoneme diff --git a/phsource/ph_kazakh b/phsource/ph_kazakh new file mode 100644 index 00000000..a3f2139a --- /dev/null +++ b/phsource/ph_kazakh @@ -0,0 +1,125 @@ + +// use "flag1" for soft vowels + +// short vowels + +phoneme I + vowel starttype #@ endtype #@ + flag1 + length 100 + IF thisPh(isWordEnd) THEN + length 140 + ENDIF + FMT(vowel/ii#) +endphoneme + +phoneme 8 + vowel starttype #@ endtype #@ + length 100 + IF thisPh(isWordEnd) THEN + length 140 + ENDIF + FMT(vowel/8) +endphoneme + +phoneme u# + vowel starttype @ endtype @ + length 100 + flag1 + IF thisPh(isWordEnd) THEN + length 140 + ENDIF + FMT(vdiph2/uw_6) +endphoneme + +phoneme U + vowel starttype #u endtype #u + length 100 + IF thisPh(isWordEnd) THEN + length 140 + ENDIF + FMT(vowel/uu_2) +endphoneme + + +// long vowels + +phoneme A + vowel starttype #a endtype #a + length 200 + FMT(vowel/aa_9) +endphoneme + +phoneme a + vowel starttype #a endtype #a + length 200 + FMT(vowel/a_5) +endphoneme + +phoneme & + vowel starttype #a endtype #a + flag1 + length 200 + FMT(vowel/ee_2) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 200 + flag1 + FMT(vdiph2/ii@_2) +endphoneme + +phoneme E + vowel starttype @ endtype @ + length 200 + FMT(vowel/@_fnt) +endphoneme + +phoneme i + vowel starttype #i endtype #i + length 180 + FMT(vowel/ii_8) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 200 + FMT(vowel/o_3) +endphoneme + +phoneme Y + vowel starttype #@ endtype #@ + length 200 + flag1 + FMT(vowel/y#_4) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 200 + FMT(vowel/u_bck3) +endphoneme + + + +phoneme r + import_phoneme base/R2 +endphoneme + +phoneme t + import_phoneme base2/t +endphoneme + +phoneme G + import_phoneme base/r" +endphoneme + +phoneme X + vls uvl frc + lengthmod 3 + Vowelin f1=0 f2=2300 200 400 f3=-100 100 + Vowelout f1=0 f2=2300 300 400 f3=-100 100 rms=20 + lengthmod 3 + WAV(ufric/x2, 60) +endphoneme diff --git a/phsource/ph_maltese b/phsource/ph_maltese old mode 100755 new mode 100644 diff --git a/phsource/ph_nepali b/phsource/ph_nepali new file mode 100644 index 00000000..b880b4bd --- /dev/null +++ b/phsource/ph_nepali @@ -0,0 +1,133 @@ + +//==================================================== +// Nepali (inherits from Hindi) +//==================================================== + +phoneme V + vowel starttype #@ endtype #@ + length 160 + ChangeIfNotStressed(@) + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/@_bck) +endphoneme + +phoneme @3 // use a more front [@] after palatal consonants + vowel starttype #@ endtype #@ + length 140 + FMT(vowel/@_3) +endphoneme + +phoneme @/ + vowel starttype #@ endtype #@ + length 130 + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/@_bck) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 160 + IfNextVowelAppend(;) + FMT(vowel/i) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 180 + FMT(vowel/e) +endphoneme + +phoneme a + vowel long starttype #a endtype #a + length 230 + FMT(vowel/aa_9) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 180 + FMT(vowel/o_mid) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 160 + FMT(vowel/u_bck) +endphoneme + + + + + +// Diphthongs +//=========== + + +phoneme aI + vowel long starttype #a endtype #i + length 240 + long + FMT(vdiph/aai) +endphoneme + +phoneme aU + vowel long starttype #a endtype #u + length 240 + long + FMT(vdiph/aau_3) +endphoneme + +phoneme eI + vowel long starttype #e endtype #i + length 240 + long + FMT(vdiph/eei) +endphoneme + +phoneme eU + vowel long starttype #e endtype #u + length 240 + long + FMT(vdiph/eu) +endphoneme + +phoneme VI + vowel long starttype #@ endtype #i + length 240 + long + FMT(vdiph/Vi) +endphoneme + +phoneme VU + vowel long starttype #@ endtype #u + length 240 + long + FMT(vdiph/Vu) +endphoneme + +phoneme oI + vowel long starttype #o endtype #i + length 240 + long + FMT(vdiph/oi) +endphoneme + +phoneme oU + vowel long starttype #o endtype #u + length 240 + long + FMT(vdiph/ou) +endphoneme + +phoneme uI + vowel long starttype #u endtype #i + length 240 + long + FMT(vdiph/ui) +endphoneme + diff --git a/phsource/ph_northern-sotho b/phsource/ph_northern-sotho new file mode 100644 index 00000000..930321ef --- /dev/null +++ b/phsource/ph_northern-sotho @@ -0,0 +1,83 @@ + +//==================================================== +// Northern Sotho +//==================================================== + +// Vowels + +phoneme i + vowel starttype #i endtype #i + length 110 + FMT(vowel/i) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 180 + FMT(vowel/e_mid2) +endphoneme + +phoneme a + vowel starttype #@ endtype #@ + length 180 + FMT(vowel/a#_2) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 180 + FMT(vowel/0_2) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 170 + FMT(vowel/u_5) +endphoneme + +phoneme U +import_phoneme base2/U +endphoneme + +phoneme E +import_phoneme base2/E +endphoneme + + +// Consonants + +phoneme t // dental variant of /t/ + import_phoneme base2/t +endphoneme + + +phoneme d // dental variant of /d/ + import_phoneme base2/d +endphoneme +phoneme K // Northern Sotho tlh sound + vls alv frc + lengthmod 3 + + NextVowelStarts + VowelStart(l/l@) + VowelStart(l/la) + VowelStart(l/le) + VowelStart(l/li, -10) + VowelStart(l/lo) + VowelStart(l/lu) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(l/xl, -40) + ENDIF + + WAV(ufric/tlh, 80) +endphoneme + + +phoneme x2 +import_phoneme af/x2 +endphoneme + + diff --git a/phsource/ph_punjabi b/phsource/ph_punjabi new file mode 100644 index 00000000..ce827766 --- /dev/null +++ b/phsource/ph_punjabi @@ -0,0 +1,91 @@ + +phoneme + // high tone, use after a vowel + stress + Tone (5, 30, envelope/p_512, NULL) +endphoneme + +phoneme @ + vowel starttype #@ endtype #@ + length 130 + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/@_bck) +endphoneme + +phoneme V + vowel starttype #@ endtype #@ + length 130 + ChangeIfNotStressed(@) + IF nextPh(H) THEN + FMT(vowel/@_low) + ENDIF + FMT(vowel/V_3) +endphoneme + + +phoneme i + vowel long starttype #i endtype #i + length 220 + IfNextVowelAppend(;) + FMT(vowel/i_fnt) +endphoneme + +phoneme I + vowel starttype #i endtype #i + length 150 + IfNextVowelAppend(;) + FMT(vowel/ii_3) +endphoneme + +phoneme e + vowel long starttype #e endtype #e + length 220 + FMT(vowel/e_2) +endphoneme + +phoneme E + vowel long starttype #e endtype #e + length 200 + FMT(vowel/ee_2) +endphoneme + +phoneme a + vowel long starttype #a endtype #a + length 220 + FMT(vowel/aa_9) +endphoneme + +phoneme O + vowel long starttype #o endtype #o + length 200 + FMT(vowel/oo_4) +endphoneme + +phoneme o: + vowel long starttype #o endtype #o + length 220 + FMT(vowel/o) +endphoneme + + +phoneme U + vowel starttype #u endtype #u + length 150 + FMT(vowel/uu_bck) +endphoneme + + +phoneme u + vowel long starttype #u endtype #u + length 220 + FMT(vowel/u_bck) +endphoneme + + +// Consonants + +phoneme v // Try English [v] + import_phoneme base/v +endphoneme + diff --git a/phsource/ph_russian b/phsource/ph_russian old mode 100755 new mode 100644 diff --git a/phsource/ph_s_gaelic b/phsource/ph_s_gaelic new file mode 100644 index 00000000..9f7b4fd4 --- /dev/null +++ b/phsource/ph_s_gaelic @@ -0,0 +1,27 @@ +// Phoneme table for Scottish Gaelic (lang=gd) + + + +// Consonants + +phoneme b + import_phoneme is/b +endphoneme + +phoneme t + import_phoneme hi/th +endphoneme + +phoneme d + import_phoneme hi/t +endphoneme + +phoneme k + import_phoneme base/k +endphoneme + +phoneme g + import_phoneme hi/k +endphoneme + + diff --git a/phsource/ph_setswana b/phsource/ph_setswana new file mode 100644 index 00000000..fdec4081 --- /dev/null +++ b/phsource/ph_setswana @@ -0,0 +1,300 @@ + +//==================================================== +// Setswana phoneme file +// maitained by: Sternly K Simon +// email: sternly_simon@yahoo.com +//==================================================== + +phoneme l // use dark [l/2] before not-vowel + liquid + lengthmod 7 + + IF nextPhW(isVowel) THEN + ELSE + IF prevPh(isNotVowel) THEN + ChangePhoneme(l/) + ELSE + ChangePhoneme(l/2) + ENDIF + ENDIF + + CALL base/l +endphoneme + +phoneme r- // linking r, used in Setswana between certain vowels and a following vowel + liquid rhotic + ipa ɹ + lengthmod 0 + + NextVowelStarts + VowelStart(r2/r2@) + VowelStart(r2/r2a) + VowelStart(r2/r2e) + VowelStart(r2/r2i) + VowelStart(r2/r2o) + VowelStart(r2/r2u) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(r/xr, -60) + ENDIF + + FMT(r/r) +endphoneme + +// Default vowel definitions + +phoneme @ + vowel starttype #@ endtype #@ + unstressed + length 140 + IF nextPh(r/) THEN + length 190 + FMT(vwl_tn/r@) + ENDIF + FMT(vwl_tn/@) +endphoneme // Vowels + +// VOWELS +//**************************************************************** + +phoneme i + vowel starttype #i endtype #i + length 170 + FMT(vowel/ii) +endphoneme + +phoneme I + vowel starttype #i endtype #i + length 130 + IfNextVowelAppend(;) + FMT(vwl_tn/I) +endphoneme + +phoneme I2 + vowel starttype #i endtype #i + unstressed + length 130 + IfNextVowelAppend(;) + FMT(vowel/ii_4) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 180 + ChangeIfUnstressed(l) + FMT(vowel/ee#_2) +endphoneme + +phoneme e@ // long E + vowel starttype #i endtype #@ + ipa iə + length 230 + IfNextVowelAppend(r-) + FMT(vdiph/i@_2) +endphoneme + +phoneme E + vowel starttype #e endtype #e + unstressed + length 140 + ChangeIfDiminished(I2) + FMT(vowel/ee_5) +endphoneme + +phoneme a + vowel starttype #a endtype #a + ipa a + length 180 + FMT(vowel/a_5) +endphoneme + +phoneme A@ // Used for [A:] when followed by 'r' + vowel starttype #a endtype #a + ipa ɑː + length 230 + IfNextVowelAppend(r-) + FMT(vowel/aa_2) +endphoneme + +phoneme O // short O + vowel starttype #o endtype #o + length 140 + FMT(vowel/oo_1) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 180 + ChangeIfUnstressed(U) + FMT(vowel/0_2) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 170 + FMT(vowel/u_5) +endphoneme + +phoneme U + vowel starttype #o endtype #o + length 150 + FMT(vowel/uu) +endphoneme + + +// Consonants +//================================================= + +phoneme l + import_phoneme en/l +endphoneme + +phoneme ts + vls alv afr sibilant +// voicingswitch dz + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/ts_) + ENDIF + WAV(ustop/ts) +endphoneme + +phoneme d // dental variant of /d/ + import_phoneme base2/d +endphoneme + +phoneme kh + vls vel stop + lengthmod 2 + voicingswitch g + Vowelin f1=0 f2=2300 200 300 f3=-150 80 + Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/k_asp, 50) + ENDIF + IF nextPh(l) THEN + WAV(ustop/kl) + ENDIF + WAV(ustop/k_asp, 90) +endphoneme + +phoneme k- // unaspirated + vls vel stop + lengthmod 2 + voicingswitch g + Vowelin f1=0 f2=2300 200 300 f3=-150 80 + Vowelout f1=0 f2=2300 300 400 f3=-150 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/k_unasp, 50) + ENDIF + WAV(ustop/k_unasp, 60) // weaker +endphoneme + +phoneme K // Setswna tlh sound + vls alv frc + lengthmod 3 + + NextVowelStarts + VowelStart(l/l@) + VowelStart(l/la) + VowelStart(l/le) + VowelStart(l/li, -10) + VowelStart(l/lo) + VowelStart(l/lu) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(l/xl, -40) + ENDIF + + WAV(ufric/tlh, 80) +endphoneme + + +phoneme ph // aspirated + vls blb stop + lengthmod 2 + voicingswitch b + Vowelin f1=0 f2=1000 -50 -100 f3=-200 80 + Vowelout f1=0 f2=1000 -500 -350 f3=-300 80 rms=30 + IF nextPh(isPause2) THEN + WAV(ustop/p_) + ENDIF + IF nextPh(r) THEN + WAV(ustop/pr) + ENDIF + IF nextPh(l) THEN + WAV(ustop/pl) + ENDIF + WAV(ustop/p_asp) +endphoneme + +phoneme r + liquid rhotic + trill + lengthmod 6 + Vowelin f1=2 f2=2700 -300 -200 f3=-1300 80 + Vowelout f1=2 f2=1700 -300 -200 f3=-1300 80 + + NextVowelStarts + VowelStart(r/r@, -15) + VowelStart(r/ra, -15) + VowelStart(r/re, -15) + VowelStart(r/ri, -15) + VowelStart(r/ro, -15) + VowelStart(r/ru, -15) + EndSwitch + + IF prevPh(isVowel) THEN + VowelEnding(r/xr, -50) + ENDIF + + FMT(r3/r_trill) addWav(r3/r_trill3.wav, 100) +endphoneme + + +phoneme r/ // used for [r] when not preceding a vowel + liquid + lengthmod 7 + + IF prevPh(@) OR prevPh(I) THEN + ELSE + FMT(r3/r_) addWav(r3/rx) + ENDIF +endphoneme + +phoneme t // dental variant of /t/ + import_phoneme base2/t +endphoneme + +phoneme tS + vls pla afr sibilant + voicingswitch dZ + lengthmod 2 + Vowelin f1=0 f2=2300 200 400 f3=-100 80 + + IF nextPh(isPause2) THEN + WAV(ustop/tsh_) + ENDIF + WAV(ustop/tsh) +endphoneme + +phoneme tS; + vls pal afr sibilant palatal + voicingswitch dZ; + ipa tɕ + lengthmod 2 + Vowelin f1=0 f2=2700 400 600 f3=300 80 rate len=70 + + IF nextPh(isPause2) THEN + WAV(ustop/ts_pzd) + ENDIF + WAV(ustop/ts_pzd) +endphoneme + + + + diff --git a/phsource/ph_sinhala b/phsource/ph_sinhala new file mode 100644 index 00000000..d606b32e --- /dev/null +++ b/phsource/ph_sinhala @@ -0,0 +1,150 @@ + +// Phonemes for Sinhala +// This inherits from ph_hindi + +// (these are only guesses) + +phoneme @ + vowel starttype #a endtype #a + length 130 + FMT(vowel/@_low) +endphoneme + + +phoneme a + vowel long starttype #a endtype #a + ipa ɐ + length 130 + ChangeIfNotStressed(@) + FMT(vowel/a#_2) +endphoneme + + +phoneme a: + vowel starttype #a endtype #a + length 300 + FMT(vowel/a_3) +endphoneme + + +phoneme & + vowel starttype #e endtype #e + length 130 + FMT(vowel/ee_6) +endphoneme + + +phoneme &: + vowel starttype #e endtype #e + length 270 + FMT(vowel/ee_6) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 130 + FMT(vowel/e_mid) +endphoneme + + +phoneme e: + vowel starttype #e endtype #e + length 270 + FMT(vowel/e_mid2) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 130 + FMT(vowel/i_6) +endphoneme + + +phoneme i: + vowel starttype #i endtype #i + length 270 + FMT(vowel/i) +endphoneme + + + +phoneme o + vowel starttype #o endtype #o + length 130 + FMT(vowel/oo_1) +endphoneme + + +phoneme o: + vowel starttype #o endtype #o + length 300 + FMT(vowel/oo_1) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 110 + FMT(vowel/u_6) +endphoneme + +phoneme u: + vowel starttype #u endtype #u + length 280 + FMT(vowel/u_6) +endphoneme + + + +phoneme aI + vowel long starttype #a endtype #i + length 280 + FMT(vdiph/ai_8) +endphoneme + +phoneme aU + vowel long starttype #a endtype #u + length 270 + FMT(vdiph/au) +endphoneme + + + +// ?? This is standard [v]. Should be it [v] without the fricative noise? +phoneme v + import_phoneme base/v +endphoneme + + +phoneme r + import_phoneme base/r +endphoneme + +phoneme t + import_phoneme base2/t // dental +endphoneme + + +// temporary, map [n#] etc. to [n] etc. + +phoneme m# + import_phoneme base/m +endphoneme + +phoneme n# + import_phoneme base/n +endphoneme + +phoneme n.# + import_phoneme base/n. +endphoneme + +phoneme n^# + import_phoneme base/n^ +endphoneme + +phoneme N# + import_phoneme base/N +endphoneme diff --git a/phsource/ph_slovenian b/phsource/ph_slovenian new file mode 100644 index 00000000..9a24a741 --- /dev/null +++ b/phsource/ph_slovenian @@ -0,0 +1,62 @@ + +phoneme @ // Schwa, can be stressed + vowel starttype #@ endtype #@ + length 140 + FMT(vowel/@) +endphoneme + +phoneme i + vowel starttype #i endtype #i + length 140 + IfNextVowelAppend(;) + FMT(vowel/ii_3) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 140 + FMT(vowel/u_2) +endphoneme + + + +phoneme a + vowel starttype #a endtype #a + length 170 + FMT(vowel/a) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 160 + FMT(vowel/e) +endphoneme + + +phoneme E + vowel starttype #e endtype #e + length 160 + FMT(vowel/ee_1) +endphoneme + + + +phoneme o + vowel starttype #o endtype #o + length 160 + FMT(vowel/o) +endphoneme + + +phoneme O + vowel starttype #o endtype #o + length 170 + FMT(vowel/oo_5) +endphoneme + + + +phoneme v + import_phoneme base/v# +endphoneme diff --git a/phsource/ph_tibetan b/phsource/ph_tibetan new file mode 100644 index 00000000..19281910 --- /dev/null +++ b/phsource/ph_tibetan @@ -0,0 +1,95 @@ + +phoneme a + vowel starttype #a endtype #a + length 180 + FMT(vowel/a) +endphoneme + +phoneme e + vowel starttype #e endtype #e + length 180 + FMT(vowel/e_mid2) +endphoneme + +phoneme i + vowel starttype #i endtype #i + length 180 + FMT(vowel/i) +endphoneme + +phoneme o + vowel starttype #o endtype #o + length 180 + FMT(vowel/o) +endphoneme + +phoneme u + vowel starttype #u endtype #u + length 180 + FMT(vowel/u) +endphoneme + + + + + +phoneme ts + vls alv afr sibilant + voicingswitch dz + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/ts2) + ENDIF + WAV(ustop/ts2) +endphoneme + + +phoneme dz + vcd alv afr sibilant + voicingswitch ts + lengthmod 5 + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=50 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/z_) addWav(ustop/ts2, 60) + ENDIF + FMT(d/xdz) addWav(ustop/ts2, 140) +endphoneme + +phoneme tsh + vls alv afr sibilant + voicingswitch dz + lengthmod 2 + Vowelin f1=0 f2=1700 -300 300 f3=-100 80 + Vowelout f1=0 f2=1700 -300 250 f3=-100 80 rms=20 + IF nextPh(isPause2) THEN + WAV(ustop/ts_) + ENDIF + WAV(ustop/ts) +endphoneme + + +phoneme dzh + vcd alv afr sibilant + voicingswitch ts + lengthmod 5 + Vowelin f1=1 f2=1700 -300 300 f3=-100 80 len=50 + Vowelout f1=2 f2=1700 -300 300 f3=-100 80 + + IF PreVoicing THEN + FMT(d/xd) + ENDIF + + IF nextPh(isPause2) THEN + FMT(voc/z_) addWav(ustop/ts_, 60) + ENDIF + FMT(d/xdz) addWav(ustop/ts, 140) +endphoneme + diff --git a/phsource/ph_wolof b/phsource/ph_wolof new file mode 100644 index 00000000..d023381a --- /dev/null +++ b/phsource/ph_wolof @@ -0,0 +1,124 @@ + +phoneme @ // Schwa, can be stressed + vowel starttype #@ endtype #@ + length 140 + FMT(vowel/@) +endphoneme + + +phoneme @: + vowel starttype #@ endtype #@ + length 270 + FMT(vowel/@) +endphoneme + + +phoneme i + vowel starttype #i endtype #i + length 140 + IfNextVowelAppend(;) + FMT(vowel/ii_6) +endphoneme + + +phoneme i: + vowel starttype #i endtype #i + length 270 + IfNextVowelAppend(;) + FMT(vowel/i) +endphoneme + + +phoneme e + vowel starttype #e endtype #e + length 140 + FMT(vowel/e) +endphoneme + + +phoneme e: + vowel starttype #e endtype #e + length 270 + FMT(vowel/e) +endphoneme + + +phoneme E + vowel starttype #e endtype #e + length 140 + FMT(vowel/ee_5) +endphoneme + + +phoneme E: + vowel starttype #e endtype #e + length 270 + FMT(vowel/ee_5) +endphoneme + + +phoneme a + vowel starttype #a endtype #a + length 140 + FMT(vowel/a#) +endphoneme + + +phoneme a: + vowel starttype #a endtype #a + length 270 + FMT(vowel/a_6) +endphoneme + + +phoneme O + vowel starttype #o endtype #o + length 140 + FMT(vowel/oo) +endphoneme + + +phoneme O: + vowel starttype #o endtype #o + length 270 + FMT(vowel/oo) +endphoneme + + +phoneme o + vowel starttype #o endtype #o + length 140 + FMT(vowel/o) +endphoneme + + +phoneme o: + vowel starttype #o endtype #o + length 270 + FMT(vowel/o) +endphoneme + + +phoneme u + vowel starttype #u endtype #u + length 140 + FMT(vowel/u_2) +endphoneme + + +phoneme u: + vowel starttype #u endtype #u + length 270 + FMT(vowel/u) +endphoneme + + + +// Consonants + +phoneme s2 // second part of geminated [s:] + import_phoneme consonants/s2 +endphoneme + + + diff --git a/phsource/phonemes b/phsource/phonemes index 358136f6..deea225e 100644 --- a/phsource/phonemes +++ b/phsource/phonemes @@ -1884,3 +1884,10 @@ include ph_maltese phonemetable bo hi include ph_tibetan + +phonemetable kk base +include ph_kazakh + +phonemetable fa base +include ph_farsi + diff --git a/phsource/r3/r_2 b/phsource/r3/r_2 old mode 100755 new mode 100644 diff --git a/phsource/r3/r_sr.wav b/phsource/r3/r_sr.wav new file mode 100644 index 00000000..c7e84d32 Binary files /dev/null and b/phsource/r3/r_sr.wav differ diff --git a/phsource/r3/r_trill2.wav b/phsource/r3/r_trill2.wav old mode 100755 new mode 100644 diff --git a/phsource/r3/r_trill4.wav b/phsource/r3/r_trill4.wav old mode 100755 new mode 100644 diff --git a/phsource/r3/r_uvl2.wav b/phsource/r3/r_uvl2.wav new file mode 100644 index 00000000..4a851202 Binary files /dev/null and b/phsource/r3/r_uvl2.wav differ diff --git a/phsource/ufric/l#_2.wav b/phsource/ufric/l#_2.wav new file mode 100644 index 00000000..ceb588f3 Binary files /dev/null and b/phsource/ufric/l#_2.wav differ diff --git a/phsource/ufric/s_pal.wav b/phsource/ufric/s_pal.wav old mode 100755 new mode 100644 diff --git a/phsource/ufric/tl#.wav b/phsource/ufric/tl#.wav old mode 100755 new mode 100644 diff --git a/phsource/ufric/tlh.wav b/phsource/ufric/tlh.wav new file mode 100644 index 00000000..e9548ab7 Binary files /dev/null and b/phsource/ufric/tlh.wav differ diff --git a/phsource/ufric/x_ku.wav b/phsource/ufric/x_ku.wav new file mode 100644 index 00000000..c301e538 Binary files /dev/null and b/phsource/ufric/x_ku.wav differ diff --git a/phsource/ustop/c_ejc.wav b/phsource/ustop/c_ejc.wav new file mode 100644 index 00000000..05cd93e4 Binary files /dev/null and b/phsource/ustop/c_ejc.wav differ diff --git a/phsource/ustop/k_asp2.wav b/phsource/ustop/k_asp2.wav new file mode 100644 index 00000000..a20748bb Binary files /dev/null and b/phsource/ustop/k_asp2.wav differ diff --git a/phsource/ustop/k_ejc.wav b/phsource/ustop/k_ejc.wav new file mode 100644 index 00000000..00232a77 Binary files /dev/null and b/phsource/ustop/k_ejc.wav differ diff --git a/phsource/ustop/k_ejc2.wav b/phsource/ustop/k_ejc2.wav new file mode 100644 index 00000000..420b588c Binary files /dev/null and b/phsource/ustop/k_ejc2.wav differ diff --git a/phsource/ustop/ki_ejc.wav b/phsource/ustop/ki_ejc.wav new file mode 100644 index 00000000..a2426c6b Binary files /dev/null and b/phsource/ustop/ki_ejc.wav differ diff --git a/phsource/ustop/p_ejc.wav b/phsource/ustop/p_ejc.wav new file mode 100644 index 00000000..e9c99b0d Binary files /dev/null and b/phsource/ustop/p_ejc.wav differ diff --git a/phsource/ustop/t_ejc.wav b/phsource/ustop/t_ejc.wav new file mode 100644 index 00000000..7e037c32 Binary files /dev/null and b/phsource/ustop/t_ejc.wav differ diff --git a/phsource/ustop/t_hard.wav b/phsource/ustop/t_hard.wav new file mode 100644 index 00000000..4827ae05 Binary files /dev/null and b/phsource/ustop/t_hard.wav differ diff --git a/phsource/ustop/t_hard_.wav b/phsource/ustop/t_hard_.wav new file mode 100644 index 00000000..4590ec67 Binary files /dev/null and b/phsource/ustop/t_hard_.wav differ diff --git a/phsource/ustop/t_hi.wav b/phsource/ustop/t_hi.wav old mode 100755 new mode 100644 diff --git a/phsource/ustop/th_rfx.wav b/phsource/ustop/th_rfx.wav new file mode 100644 index 00000000..4758f888 Binary files /dev/null and b/phsource/ustop/th_rfx.wav differ diff --git a/phsource/ustop/tsh_unasp.wav b/phsource/ustop/tsh_unasp.wav new file mode 100644 index 00000000..7d91920f Binary files /dev/null and b/phsource/ustop/tsh_unasp.wav differ diff --git a/phsource/vdiph/aau_5 b/phsource/vdiph/aau_5 new file mode 100644 index 00000000..b2e3f7d0 Binary files /dev/null and b/phsource/vdiph/aau_5 differ diff --git a/phsource/vdiph/ou_2 b/phsource/vdiph/ou_2 index 36208f13..125eecc2 100644 Binary files a/phsource/vdiph/ou_2 and b/phsource/vdiph/ou_2 differ diff --git a/phsource/vnasal/aa_n4 b/phsource/vnasal/aa_n4 old mode 100755 new mode 100644 diff --git a/phsource/vnasal/m- b/phsource/vnasal/m- deleted file mode 100644 index 91385773..00000000 Binary files a/phsource/vnasal/m- and /dev/null differ diff --git a/phsource/vnasal/n- b/phsource/vnasal/n- deleted file mode 100644 index c7d5e7e8..00000000 Binary files a/phsource/vnasal/n- and /dev/null differ diff --git a/phsource/vnasal/nn- b/phsource/vnasal/nn- deleted file mode 100644 index 12b0b08c..00000000 Binary files a/phsource/vnasal/nn- and /dev/null differ diff --git a/phsource/vnasal/o_n4 b/phsource/vnasal/o_n4 new file mode 100644 index 00000000..e0bbeda7 Binary files /dev/null and b/phsource/vnasal/o_n4 differ diff --git a/phsource/voc/dh_om b/phsource/voc/dh_om new file mode 100644 index 00000000..10ef1437 Binary files /dev/null and b/phsource/voc/dh_om differ diff --git a/phsource/vowel/&_3 b/phsource/vowel/&_3 new file mode 100644 index 00000000..fc7ed6ae Binary files /dev/null and b/phsource/vowel/&_3 differ diff --git a/phsource/vowel/a_6 b/phsource/vowel/a_6 old mode 100755 new mode 100644 diff --git a/phsource/vowel/a_7 b/phsource/vowel/a_7 old mode 100755 new mode 100644 diff --git a/phsource/vowel/a_8 b/phsource/vowel/a_8 new file mode 100644 index 00000000..1974c863 Binary files /dev/null and b/phsource/vowel/a_8 differ diff --git a/phsource/vowel/e#_2 b/phsource/vowel/e#_2 new file mode 100644 index 00000000..30a5998d Binary files /dev/null and b/phsource/vowel/e#_2 differ diff --git a/phsource/vowel/e_8 b/phsource/vowel/e_8 old mode 100755 new mode 100644 diff --git a/phsource/vowel/e_9 b/phsource/vowel/e_9 old mode 100755 new mode 100644 diff --git a/phsource/vowel/i_8 b/phsource/vowel/i_8 old mode 100755 new mode 100644 diff --git a/phsource/vowel/ii_8 b/phsource/vowel/ii_8 new file mode 100644 index 00000000..6218e30e Binary files /dev/null and b/phsource/vowel/ii_8 differ diff --git a/phsource/vowel/o_3 b/phsource/vowel/o_3 index 4f704a98..8091c872 100644 Binary files a/phsource/vowel/o_3 and b/phsource/vowel/o_3 differ diff --git a/phsource/vowel/o_8 b/phsource/vowel/o_8 old mode 100755 new mode 100644 diff --git a/phsource/vowel/o_mid2 b/phsource/vowel/o_mid2 old mode 100755 new mode 100644 diff --git a/phsource/vowel/oe_4 b/phsource/vowel/oe_4 old mode 100755 new mode 100644 diff --git a/phsource/vowel/u#_2 b/phsource/vowel/u#_2 old mode 100755 new mode 100644 diff --git a/phsource/vowel/u_3 b/phsource/vowel/u_3 old mode 100755 new mode 100644 diff --git a/phsource/vowel/u_bck3 b/phsource/vowel/u_bck3 new file mode 100644 index 00000000..05819c41 Binary files /dev/null and b/phsource/vowel/u_bck3 differ diff --git a/phsource/vowel/u_fnt2 b/phsource/vowel/u_fnt2 new file mode 100644 index 00000000..6c9152e6 Binary files /dev/null and b/phsource/vowel/u_fnt2 differ diff --git a/phsource/vowel/uu#_2 b/phsource/vowel/uu#_2 new file mode 100644 index 00000000..598eb730 Binary files /dev/null and b/phsource/vowel/uu#_2 differ diff --git a/phsource/vowel/vowelchart.png b/phsource/vowel/vowelchart.png index 7226a60c..1d635d17 100644 Binary files a/phsource/vowel/vowelchart.png and b/phsource/vowel/vowelchart.png differ diff --git a/phsource/vowel/y#_4 b/phsource/vowel/y#_4 new file mode 100644 index 00000000..ca32bcb5 Binary files /dev/null and b/phsource/vowel/y#_4 differ diff --git a/phsource/vowel/y_5 b/phsource/vowel/y_5 old mode 100755 new mode 100644 diff --git a/phsource/vowelcharts/af b/phsource/vowelcharts/af new file mode 100644 index 00000000..c3bda65b --- /dev/null +++ b/phsource/vowelcharts/af @@ -0,0 +1,34 @@ +@ 1 536 1416 2320 584 1400 2000 +@ 0 536 1420 2420 536 1420 2420 +@- 0 525 1441 2340 525 1441 2340 +a 0 -3389 682 10183 -14324 -3574 28986 +i 0 272 2247 3100 288 2247 3100 +u 0 352 1000 2240 352 1000 2200 +E 0 504 1900 2544 496 1920 2552 +I 1 536 1416 2320 584 1400 2000 +I 0 527 1461 2480 527 1461 2480 +O 0 552 780 2760 552 780 2760 +W 0 525 1320 2200 525 1320 2200 +& 0 735 1760 2420 675 1738 2420 +&: 0 735 1760 2420 675 1738 2420 +@L 0 485 891 2780 450 792 2980 +A: 0 664 1040 2800 648 1060 2840 +o@ 0 336 1060 2360 480 1480 2500 +y 0 328 2100 2580 304 2160 2640 +iu 0 280 2180 3040 272 900 2300 +@U 0 620 1245 2298 376 880 2280 +aI 0 768 1200 2820 312 2240 2940 +AI 0 664 1040 2800 312 2240 2940 +eI 0 640 1562 2400 355 2222 2720 +OI 0 520 780 2660 328 2140 2780 +oI 0 336 1040 2360 304 2360 2680 +uI 0 352 960 2240 296 2247 3100 +Yy 0 496 1220 2340 296 2020 2400 +Y@ 0 296 1980 2480 480 1580 2420 +aU 0 830 1364 2440 488 900 2240 +e: 0 456 1980 2540 440 1980 2540 +O: 0 512 860 2648 512 860 2648 +3: 0 480 1408 2320 545 1419 2320 +A~ 0 600 1060 2640 600 1060 2640 +e~ 0 456 1960 2520 456 1960 2520 +o~ 0 392 700 2720 392 700 2720 diff --git a/phsource/vowelcharts/af.png b/phsource/vowelcharts/af.png new file mode 100644 index 00000000..492929bb Binary files /dev/null and b/phsource/vowelcharts/af.png differ diff --git a/phsource/vowelcharts/ak b/phsource/vowelcharts/ak new file mode 100644 index 00000000..8cafb7b9 --- /dev/null +++ b/phsource/vowelcharts/ak @@ -0,0 +1,7 @@ +a 0 712 1160 2780 696 1160 2780 +e 0 436 2076 2604 436 2076 2604 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 860 2360 320 860 2460 +E 0 646 1780 2500 646 1780 2500 +O 0 566 890 2641 566 890 2641 diff --git a/phsource/vowelcharts/ak.png b/phsource/vowelcharts/ak.png new file mode 100644 index 00000000..5817fe26 Binary files /dev/null and b/phsource/vowelcharts/ak.png differ diff --git a/phsource/vowelcharts/am b/phsource/vowelcharts/am new file mode 100644 index 00000000..861a5026 --- /dev/null +++ b/phsource/vowelcharts/am @@ -0,0 +1,8 @@ +@ 1 640 1562 2400 355 2222 2720 +@ 0 528 1500 2380 528 1500 2380 +a 1 904 1320 2740 344 2222 2720 +a 0 864 1280 2700 864 1280 2700 +e 0 504 1900 2544 496 1920 2552 +i 0 336 2210 2800 336 2210 2760 +o 0 496 972 2500 496 972 2500 +u 0 344 800 2360 344 800 2360 diff --git a/phsource/vowelcharts/am.png b/phsource/vowelcharts/am.png new file mode 100644 index 00000000..f605ce4d Binary files /dev/null and b/phsource/vowelcharts/am.png differ diff --git a/phsource/vowelcharts/az b/phsource/vowelcharts/az new file mode 100644 index 00000000..b1d607c2 --- /dev/null +++ b/phsource/vowelcharts/az @@ -0,0 +1,9 @@ +a 0 688 1064 2806 672 1100 2806 +e 0 504 1900 2544 496 1920 2552 +i 0 336 2210 2800 336 2210 2760 +o 0 488 900 2520 488 920 2520 +u 0 360 860 2360 360 860 2360 +E 0 584 1820 2560 584 1820 2560 +y 0 280 1720 2340 280 1720 2340 +W 0 480 1560 2420 516 1520 2340 +& 0 736 1540 2500 752 1540 2500 diff --git a/phsource/vowelcharts/az.png b/phsource/vowelcharts/az.png new file mode 100644 index 00000000..9623bc2c Binary files /dev/null and b/phsource/vowelcharts/az.png differ diff --git a/phsource/vowelcharts/base b/phsource/vowelcharts/base new file mode 100644 index 00000000..d840c642 --- /dev/null +++ b/phsource/vowelcharts/base @@ -0,0 +1,12 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 0 320 860 2360 320 860 2460 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 diff --git a/phsource/vowelcharts/base.png b/phsource/vowelcharts/base.png new file mode 100644 index 00000000..051292cd Binary files /dev/null and b/phsource/vowelcharts/base.png differ diff --git a/phsource/vowelcharts/base2 b/phsource/vowelcharts/base2 new file mode 100644 index 00000000..aeb59766 --- /dev/null +++ b/phsource/vowelcharts/base2 @@ -0,0 +1,27 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 1 760 1420 2600 736 1380 2540 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +a/ 0 760 1420 2600 736 1380 2540 +E 0 720 1760 2420 672 1562 2520 +O 0 584 940 2580 584 940 2580 +U 0 388 940 2420 394 980 2360 +y 0 280 1720 2340 280 1720 2340 +Y 0 448 1520 2420 463 1520 2400 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +iU 0 280 2280 2820 328 957 2140 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +EI 0 680 1800 2440 355 2222 2720 +oI 0 469 864 2440 310 2040 2440 +uI 0 321 965 2377 328 2160 2720 diff --git a/phsource/vowelcharts/base2.png b/phsource/vowelcharts/base2.png new file mode 100644 index 00000000..c9ff45bd Binary files /dev/null and b/phsource/vowelcharts/base2.png differ diff --git a/phsource/vowelcharts/bg b/phsource/vowelcharts/bg new file mode 100644 index 00000000..d2fa0857 --- /dev/null +++ b/phsource/vowelcharts/bg @@ -0,0 +1,11 @@ +@ 1 612 1232 2620 612 1240 2620 +@ 0 544 1220 2520 544 1260 2520 +a 0 800 1320 2637 800 1320 2637 +e 1 504 1900 2544 496 1920 2552 +e 0 584 1820 2560 584 1820 2560 +i 1 336 2210 2800 336 2210 2760 +i 0 296 2220 2880 288 2260 2900 +o 1 488 900 2520 488 920 2520 +o 0 552 860 2660 552 880 2660 +u 1 344 800 2360 344 800 2360 +u 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/bg.png b/phsource/vowelcharts/bg.png new file mode 100644 index 00000000..dd2ad9d1 Binary files /dev/null and b/phsource/vowelcharts/bg.png differ diff --git a/phsource/vowelcharts/bo b/phsource/vowelcharts/bo new file mode 100644 index 00000000..1cece3d1 --- /dev/null +++ b/phsource/vowelcharts/bo @@ -0,0 +1,10 @@ +a 0 904 1320 2700 896 1340 2660 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 860 2360 320 860 2460 +i: 0 304 2440 3020 304 2440 3020 +e: 0 416 2140 2660 416 2140 2660 +a: 0 712 1160 2780 696 1160 2780 +o: 0 424 800 2580 408 780 2600 +u: 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/bo.png b/phsource/vowelcharts/bo.png new file mode 100644 index 00000000..bd96d35a Binary files /dev/null and b/phsource/vowelcharts/bo.png differ diff --git a/phsource/vowelcharts/ca b/phsource/vowelcharts/ca new file mode 100644 index 00000000..652c15c9 --- /dev/null +++ b/phsource/vowelcharts/ca @@ -0,0 +1,12 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 864 1280 2700 864 1280 2700 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +E 0 584 1820 2560 584 1820 2560 +O 0 552 860 2660 552 880 2660 +U 0 388 940 2420 394 980 2360 +aI 0 912 1320 2740 360 2200 2820 +a# 0 514 514 514 514 514 514 +E2 0 584 1820 2560 584 1820 2560 diff --git a/phsource/vowelcharts/ca.png b/phsource/vowelcharts/ca.png new file mode 100644 index 00000000..064a231f Binary files /dev/null and b/phsource/vowelcharts/ca.png differ diff --git a/phsource/vowelcharts/consonants b/phsource/vowelcharts/consonants new file mode 100644 index 00000000..d840c642 --- /dev/null +++ b/phsource/vowelcharts/consonants @@ -0,0 +1,12 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 0 320 860 2360 320 860 2460 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 diff --git a/phsource/vowelcharts/consonants.png b/phsource/vowelcharts/consonants.png new file mode 100644 index 00000000..051292cd Binary files /dev/null and b/phsource/vowelcharts/consonants.png differ diff --git a/phsource/vowelcharts/cs b/phsource/vowelcharts/cs new file mode 100644 index 00000000..c627fdb3 --- /dev/null +++ b/phsource/vowelcharts/cs @@ -0,0 +1,16 @@ +@- 0 525 1441 2340 525 1441 2340 +a 1 856 1320 2700 856 1320 2700 +a 0 904 1320 2700 896 1340 2660 +e 0 584 1820 2560 584 1820 2560 +i 0 360 2120 2680 360 2120 2660 +o 0 566 890 2641 566 890 2641 +u 0 344 800 2360 344 800 2360 +i: 0 272 2247 3100 288 2247 3100 +e: 0 584 1820 2560 584 1820 2560 +a: 0 784 1180 2680 776 1200 2680 +o: 0 512 860 2648 512 860 2648 +u: 0 320 860 2360 320 860 2460 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +oU 0 584 940 2580 360 800 2140 +eI 0 608 1800 2529 408 1960 2600 diff --git a/phsource/vowelcharts/cs.png b/phsource/vowelcharts/cs.png new file mode 100644 index 00000000..6ba3a87e Binary files /dev/null and b/phsource/vowelcharts/cs.png differ diff --git a/phsource/vowelcharts/cy b/phsource/vowelcharts/cy new file mode 100644 index 00000000..0bbe74ab --- /dev/null +++ b/phsource/vowelcharts/cy @@ -0,0 +1,25 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +E 0 645 1705 2520 645 1705 2520 +Y 0 448 1660 2528 448 1660 2528 +O 0 566 890 2641 566 890 2641 +U 0 320 740 2400 320 740 2400 +V 0 525 1441 2340 525 1441 2340 +i: 0 280 2280 2840 240 2339 2840 +y: 0 304 2030 2620 296 2080 2700 +u: 0 320 860 2360 320 860 2460 +e: 0 456 1980 2540 440 1980 2540 +o: 0 424 800 2580 408 780 2600 +A: 0 775 1067 2800 795 1122 2580 +AY 0 664 1040 2800 312 2240 2940 +aI 0 860 1240 2820 415 2044 2600 +aU 0 847 1383 2510 360 800 2360 +@I 0 640 1562 2400 355 2222 2720 +@Y 0 640 1562 2400 355 2222 2720 +eU 0 460 1929 2512 327 947 2367 +Iu 0 405 1790 2442 344 1080 2200 +Yu 0 405 1790 2442 344 1080 2200 +OI 0 545 780 2720 310 2002 2500 +OY 0 545 780 2720 310 2002 2500 +uI 0 352 960 2340 343 1911 2586 diff --git a/phsource/vowelcharts/cy.png b/phsource/vowelcharts/cy.png new file mode 100644 index 00000000..9f780944 Binary files /dev/null and b/phsource/vowelcharts/cy.png differ diff --git a/phsource/vowelcharts/da b/phsource/vowelcharts/da new file mode 100644 index 00000000..846acf41 --- /dev/null +++ b/phsource/vowelcharts/da @@ -0,0 +1,20 @@ +@ 0 528 1500 2380 528 1500 2380 +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 312 2300 2820 304 2300 2820 +o 0 424 800 2580 408 780 2600 +u 0 320 740 2400 320 740 2400 +3 0 658 1408 2460 658 1408 2460 +E 0 504 1900 2544 496 1920 2552 +& 0 645 1705 2520 645 1705 2520 +&# 0 736 1540 2500 752 1540 2500 +A 0 784 1180 2680 776 1200 2680 +O 0 480 760 2710 480 760 2710 +V 0 672 1180 2595 672 1180 2595 +0 0 566 890 2641 566 890 2641 +y 0 280 1720 2340 280 1720 2340 +Y 0 353 1860 2438 353 1860 2438 +W 0 525 1320 2200 525 1320 2200 +W# 0 612 1232 2620 612 1240 2620 +aI 0 912 1320 2740 360 2200 2820 diff --git a/phsource/vowelcharts/da.png b/phsource/vowelcharts/da.png new file mode 100644 index 00000000..eda204bb Binary files /dev/null and b/phsource/vowelcharts/da.png differ diff --git a/phsource/vowelcharts/de b/phsource/vowelcharts/de new file mode 100644 index 00000000..edef991c --- /dev/null +++ b/phsource/vowelcharts/de @@ -0,0 +1,33 @@ +@ 0 496 1500 2420 496 1500 2420 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +3 0 658 1408 2460 658 1408 2460 +E 0 504 1900 2544 496 1920 2552 +E2 0 504 1900 2544 496 1920 2552 +I 0 384 2030 2610 384 2030 2610 +I: 0 384 2030 2610 384 2030 2610 +O 0 552 860 2660 552 880 2660 +U 0 388 940 2420 394 980 2360 +UR 0 388 940 2420 544 1180 2300 +A: 0 800 1240 2720 781 1280 2680 +A 0 800 1240 2720 781 1280 2680 +i: 0 280 2255 3030 264 2255 3030 +i2 0 280 2255 3030 264 2255 3030 +u: 0 320 860 2360 320 860 2460 +aU 0 776 1200 2760 368 900 2540 +aI 0 904 1320 2740 344 2222 2720 +EI 0 680 1800 2440 355 2222 2720 +OY 0 469 864 2440 310 2040 2440 +E: 0 488 1990 2540 488 1990 2540 +e: 0 416 2140 2660 416 2140 2660 +o: 0 454 812 2559 432 824 2520 +y: 0 280 1720 2340 280 1720 2340 +y 0 305 1700 2340 305 1700 2340 +Y: 0 448 1520 2420 463 1520 2400 +W 0 525 1320 2200 525 1320 2200 +oU 0 549 1116 2380 384 800 2460 +A~ 0 624 960 2880 624 960 2880 diff --git a/phsource/vowelcharts/de.png b/phsource/vowelcharts/de.png new file mode 100644 index 00000000..cb23b92a Binary files /dev/null and b/phsource/vowelcharts/de.png differ diff --git a/phsource/vowelcharts/dv b/phsource/vowelcharts/dv new file mode 100644 index 00000000..e3a6a66a --- /dev/null +++ b/phsource/vowelcharts/dv @@ -0,0 +1,23 @@ +@ 1 584 1440 2460 600 1440 2460 +@ 0 544 1220 2520 544 1260 2520 +a 0 760 1420 2600 736 1380 2540 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 488 900 2520 488 920 2520 +u 0 320 940 2360 320 900 2360 +V 1 584 1440 2460 600 1440 2460 +V 0 695 1316 2500 695 1316 2500 +@2 0 584 1440 2460 600 1440 2460 +i: 0 280 2280 2840 240 2339 2840 +I 0 360 2120 2680 360 2120 2660 +e: 0 456 1980 2540 440 1980 2540 +E: 0 656 1740 2500 504 1900 2620 +a: 0 760 1420 2600 736 1380 2540 +o: 0 488 900 2520 488 920 2520 +O: 0 584 940 2580 584 940 2580 +O 0 670 946 2620 630 902 2700 +U 0 368 880 2440 368 900 2440 +u: 0 320 940 2360 320 900 2360 +E~ 0 670 1719 2556 710 1672 2671 +O~ 0 540 896 2632 512 900 2620 +aI 0 904 1320 2700 304 2360 2980 diff --git a/phsource/vowelcharts/dv.png b/phsource/vowelcharts/dv.png new file mode 100644 index 00000000..cc570ab5 Binary files /dev/null and b/phsource/vowelcharts/dv.png differ diff --git a/phsource/vowelcharts/el b/phsource/vowelcharts/el new file mode 100644 index 00000000..1f75cf34 --- /dev/null +++ b/phsource/vowelcharts/el @@ -0,0 +1,8 @@ +a 1 841 1409 2550 841 1409 2550 +a 0 896 1440 2710 896 1440 2710 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 0 320 740 2400 320 740 2400 +aI 0 912 1320 2740 360 2200 2820 +oI 0 469 864 2440 310 2040 2440 diff --git a/phsource/vowelcharts/el.png b/phsource/vowelcharts/el.png new file mode 100644 index 00000000..bf4eafaa Binary files /dev/null and b/phsource/vowelcharts/el.png differ diff --git a/phsource/vowelcharts/en b/phsource/vowelcharts/en new file mode 100644 index 00000000..2fca00d8 --- /dev/null +++ b/phsource/vowelcharts/en @@ -0,0 +1,46 @@ +@ 1 552 1441 2400 552 1441 2400 +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 1 856 1320 2700 856 1320 2700 +a 0 904 1320 2700 896 1340 2660 +i 0 376 1970 2585 376 1970 2585 +I2 0 408 1920 2580 416 1900 2580 +@2 0 525 1441 2340 525 1441 2340 +@5 0 525 1441 2340 525 1441 2340 +U 0 445 902 2620 445 902 2620 +@L 0 485 891 2780 450 792 2980 +a# 0 -1 -1 257 257 257 257 +aa 0 904 1320 2700 896 1340 2660 +E 0 646 1780 2500 646 1780 2500 +I 0 408 1940 2600 408 1940 2600 +0 0 670 946 2620 630 902 2700 +V 0 654 1274 2586 654 1274 2586 +A: 0 775 1067 2800 795 1122 2580 +A@ 0 775 1067 2800 795 1122 2580 +3: 0 480 1408 2320 545 1419 2320 +i: 0 296 2220 2820 216 2400 2820 +O: 0 465 836 2640 530 1001 2620 +O 0 465 836 2640 530 1001 2620 +O@ 0 465 836 2640 530 1001 2620 +o@ 0 465 836 2640 530 1001 2620 +u: 1 384 1280 2280 290 1023 2220 +u: 0 360 1562 2260 290 1023 2220 +aU 0 830 1364 2440 488 900 2240 +oU 0 630 1353 2340 390 957 2140 +aI 0 860 1240 2820 415 2044 2600 +eI 0 680 1800 2440 355 2222 2720 +OI 0 545 780 2720 310 2002 2500 +e@ 0 720 1760 2420 672 1562 2520 +i@ 0 368 2156 2720 528 1595 2460 +i@3 0 368 2156 2720 528 1595 2460 +U@ 1 520 1160 2440 524 1401 2300 +U@ 0 430 960 2340 558 1300 2300 +aI@ 0 860 1240 2820 640 1518 2400 +aU@ 0 904 1480 2670 705 1344 2320 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 +@# 0 528 1500 2380 528 1500 2380 diff --git a/phsource/vowelcharts/en-n b/phsource/vowelcharts/en-n new file mode 100644 index 00000000..4199959e --- /dev/null +++ b/phsource/vowelcharts/en-n @@ -0,0 +1,42 @@ +@ 1 552 1441 2400 552 1441 2400 +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +i 0 374 2240 2860 374 2240 2860 +I2 0 384 2030 2610 384 2030 2610 +3 0 500 1412 2320 500 1412 2340 +@2 0 525 1441 2340 525 1441 2340 +@5 0 525 1441 2340 525 1441 2340 +U 0 445 902 2620 445 902 2620 +@L 0 485 891 2780 450 792 2980 +a# 0 658 1408 2460 658 1408 2460 +aa 0 904 1320 2700 896 1340 2660 +E 0 647 1778 2530 647 1778 2530 +I 0 384 2030 2610 384 2030 2610 +0 0 630 920 2627 616 940 2627 +V 0 477 968 2620 477 968 2620 +A: 0 904 1243 2620 895 1244 2460 +A@ 0 904 1243 2620 895 1244 2460 +3: 0 480 1380 2300 520 1380 2300 +i: 0 280 2280 2840 240 2339 2840 +O: 0 512 860 2648 512 860 2648 +O 0 465 836 2640 530 1001 2620 +O@ 0 575 891 2640 580 1023 2480 +o@ 0 575 891 2640 580 1023 2480 +u: 0 332 1527 2256 290 1023 2220 +aU 0 660 1562 2360 340 990 2360 +oU 0 20480 0 256 768 578 140 +aI 0 860 1360 2660 488 1840 2440 +OI 0 545 780 2720 310 2002 2500 +e@ 0 647 1778 2530 593 1553 2370 +i@ 0 320 2220 2800 528 1520 2360 +i@3 0 368 2156 2720 528 1595 2460 +U@ 0 430 960 2340 558 1300 2300 +aI@ 0 860 1240 2820 640 1518 2400 +aU@ 0 904 1480 2670 705 1344 2320 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 diff --git a/phsource/vowelcharts/en-n.png b/phsource/vowelcharts/en-n.png new file mode 100644 index 00000000..277bd9df Binary files /dev/null and b/phsource/vowelcharts/en-n.png differ diff --git a/phsource/vowelcharts/en-rp b/phsource/vowelcharts/en-rp new file mode 100644 index 00000000..4483ecd0 --- /dev/null +++ b/phsource/vowelcharts/en-rp @@ -0,0 +1,42 @@ +@ 1 584 1440 2460 600 1440 2460 +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 736 1540 2500 752 1540 2500 +i 0 368 2100 2660 344 2146 2700 +I2 0 384 2030 2610 384 2030 2610 +@2 0 584 1440 2460 600 1440 2460 +@5 0 584 1440 2460 600 1440 2460 +U 0 456 1000 2460 456 1000 2460 +@L 0 485 891 2780 450 792 2980 +a# 0 584 1440 2460 600 1440 2460 +aa 0 648 1108 2840 632 1140 2840 +E 0 584 1820 2560 584 1820 2560 +I 0 384 2030 2610 384 2030 2610 +0 0 656 1000 2620 630 960 2700 +V 0 695 1316 2500 695 1316 2500 +A: 0 648 1108 2840 632 1140 2840 +A@ 0 648 1108 2840 632 1140 2840 +3: 0 544 1440 2320 545 1420 2320 +i: 0 280 2280 2840 240 2339 2840 +O: 0 512 860 2648 512 860 2648 +O 0 465 836 2640 530 1001 2620 +O@ 0 512 860 2648 512 860 2648 +o@ 0 465 836 2640 530 1001 2620 +u: 0 320 940 2360 320 900 2360 +aU 0 904 1420 2440 536 940 2300 +oU 0 568 1620 2340 376 1255 2243 +aI 0 904 1342 2700 440 1969 2500 +eI 0 536 1900 2540 381 2100 2708 +OI 0 562 943 2656 357 1915 2761 +e@ 0 688 1820 2440 735 1562 2540 +i@ 0 416 2068 2720 653 1430 2328 +i@3 0 368 2156 2720 528 1595 2460 +U@ 0 488 900 2520 488 920 2520 +aI@ 0 860 1240 2820 640 1518 2400 +aU@ 0 936 1485 2620 705 1220 2300 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 diff --git a/phsource/vowelcharts/en-rp.png b/phsource/vowelcharts/en-rp.png new file mode 100644 index 00000000..cd69ea34 Binary files /dev/null and b/phsource/vowelcharts/en-rp.png differ diff --git a/phsource/vowelcharts/en-sc b/phsource/vowelcharts/en-sc new file mode 100644 index 00000000..26efbdd7 --- /dev/null +++ b/phsource/vowelcharts/en-sc @@ -0,0 +1,46 @@ +@ 0 528 1500 2380 528 1500 2380 +@- 0 525 1441 2340 525 1441 2340 +a 0 784 1180 2680 776 1200 2680 +i 0 520 2000 2540 520 2000 2540 +3 1 648 1180 2595 640 1140 2460 +3 0 612 1232 2620 612 1240 2620 +@2 0 528 1500 2380 528 1500 2380 +@5 0 528 1500 2380 528 1500 2380 +@L 0 560 900 2780 450 792 2980 +a# 0 760 1420 2600 736 1380 2540 +aa 0 784 1180 2680 776 1200 2680 +E 0 518 1920 2540 581 1810 2540 +I 1 528 1500 2380 528 1500 2380 +I 0 504 1700 2480 504 1700 2480 +0 0 566 890 2641 566 890 2641 +V 0 672 1180 2595 672 1180 2595 +A: 1 752 1190 2640 688 1320 2480 +A: 0 784 1180 2680 776 1200 2680 +A@ 0 752 1190 2640 688 1320 2480 +3: 0 464 1980 2520 658 1408 2460 +i: 0 328 2380 2940 280 2440 2980 +O: 1 468 840 2660 520 1160 1900 +O: 0 552 860 2660 552 880 2660 +O 0 656 1000 2620 630 960 2700 +O@ 0 552 880 2660 552 1080 2560 +o@ 0 424 780 2680 504 940 1820 +u: 1 407 1500 2160 392 1500 2160 +u: 0 392 1700 2240 392 1700 2240 +aU 0 698 1320 2484 280 1600 2340 +aI 1 892 1340 2684 552 1800 2480 +aI 0 760 1200 2680 352 2280 2780 +OI 0 624 980 2620 328 2127 2940 +e@ 0 464 1980 2520 658 1408 2460 +i@ 0 368 2156 2720 528 1595 2460 +i@3 0 384 2030 2620 506 1460 1820 +U@ 0 344 1740 2240 592 1220 2400 +aI@ 0 892 1340 2684 552 1800 2480 +aU@ 0 904 1480 2670 705 1344 2320 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 +a/ 0 784 1180 2680 776 1200 2680 +aI2 0 760 1200 2680 352 2280 2780 diff --git a/phsource/vowelcharts/en-sc.png b/phsource/vowelcharts/en-sc.png new file mode 100644 index 00000000..407fe471 Binary files /dev/null and b/phsource/vowelcharts/en-sc.png differ diff --git a/phsource/vowelcharts/en-us b/phsource/vowelcharts/en-us new file mode 100644 index 00000000..b909b4bc --- /dev/null +++ b/phsource/vowelcharts/en-us @@ -0,0 +1,45 @@ +@ 0 496 1500 2420 496 1500 2420 +@- 0 525 1441 2340 525 1441 2340 +a 1 670 1719 2556 710 1672 2671 +a 0 700 1680 2506 652 1488 2470 +i 0 368 2100 2660 344 2146 2700 +I2 0 416 1800 2560 416 1800 2560 +3 0 480 1460 2158 464 1440 2000 +@2 0 584 1400 2438 592 1400 2438 +@5 0 525 1441 2340 525 1441 2340 +U 0 496 1040 2560 496 1040 2560 +@L 0 485 891 2780 450 792 2980 +a# 0 -256 255 0 257 257 257 +aa 1 670 1719 2556 710 1672 2671 +aa 0 700 1680 2506 652 1488 2470 +E 0 544 1760 2580 608 1600 2580 +I 0 408 1920 2580 416 1900 2580 +0 0 728 1200 2660 712 1200 2660 +V 0 632 1300 2640 632 1300 2640 +A: 1 728 1200 2600 520 1260 1900 +A: 0 728 1200 2660 712 1200 2660 +A@ 0 728 1200 2600 520 1260 1900 +3: 0 480 1460 2180 464 1440 2000 +i: 0 296 2220 2820 216 2400 2820 +O: 1 612 1000 2600 512 1200 1800 +O: 0 656 1000 2620 630 960 2700 +O 0 657 1100 2703 657 1120 2703 +O@ 0 612 1000 2600 512 1200 1800 +o@ 0 468 840 2660 520 1160 1900 +u: 0 352 1380 2260 296 1000 2220 +aU 0 784 1320 2620 496 900 2620 +oU 0 549 1116 2380 384 800 2460 +aI 0 736 1200 2520 560 1820 2500 +eI 0 536 1800 2540 381 2100 2708 +OI 0 552 940 2656 400 1805 2592 +e@ 0 536 1776 2540 520 1400 1800 +i@ 0 368 2156 2720 528 1595 2460 +i@3 0 405 1932 2549 506 1460 1820 +U@ 0 456 1080 2400 520 1180 1980 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 +@/ 0 584 1400 2438 592 1400 2438 diff --git a/phsource/vowelcharts/en-us.png b/phsource/vowelcharts/en-us.png new file mode 100644 index 00000000..ce7595a4 Binary files /dev/null and b/phsource/vowelcharts/en-us.png differ diff --git a/phsource/vowelcharts/en-wi b/phsource/vowelcharts/en-wi new file mode 100644 index 00000000..7ee0258e --- /dev/null +++ b/phsource/vowelcharts/en-wi @@ -0,0 +1,42 @@ +@ 0 512 1620 2560 512 1620 2560 +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +i 0 280 2280 2840 240 2339 2840 +I2 0 312 2213 2775 312 2213 2775 +@2 0 512 1620 2560 512 1620 2560 +@5 0 525 1441 2340 525 1441 2340 +U 0 368 880 2440 368 900 2440 +@L 0 485 891 2780 450 792 2980 +a# 0 760 1420 2600 736 1380 2540 +aa 0 896 1440 2710 896 1440 2710 +E 0 456 1980 2540 440 1980 2540 +I 0 312 2213 2775 312 2213 2775 +0 0 657 1100 2703 657 1120 2703 +V 0 584 940 2580 584 940 2580 +A: 0 896 1440 2710 896 1440 2710 +A@ 0 896 1440 2710 896 1440 2710 +3: 0 584 940 2580 584 940 2580 +i: 0 304 2440 3020 304 2440 3020 +O: 0 552 860 2660 552 880 2660 +O 0 552 860 2660 552 880 2660 +O@ 0 552 860 2660 552 880 2660 +o@ 0 454 812 2559 544 960 2560 +u: 0 320 860 2360 320 860 2460 +aU 0 724 1130 2760 472 780 2500 +oU 0 454 812 2559 432 824 2520 +aI 0 912 1320 2740 360 2200 2820 +eI 0 456 1980 2540 440 1980 2540 +OI 0 624 980 2620 328 2127 2940 +e@ 0 464 1980 2520 658 1408 2460 +i@ 0 280 2280 2820 728 1562 2520 +i@3 0 368 2156 2720 528 1595 2460 +U@ 1 520 1160 2440 524 1401 2300 +U@ 0 430 960 2340 558 1300 2300 +aI@ 0 860 1240 2820 640 1518 2400 +aU@ 0 904 1480 2670 705 1344 2320 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 diff --git a/phsource/vowelcharts/en-wi.png b/phsource/vowelcharts/en-wi.png new file mode 100644 index 00000000..0d699d0f Binary files /dev/null and b/phsource/vowelcharts/en-wi.png differ diff --git a/phsource/vowelcharts/en-wm b/phsource/vowelcharts/en-wm new file mode 100644 index 00000000..d23d3cfe --- /dev/null +++ b/phsource/vowelcharts/en-wm @@ -0,0 +1,42 @@ +@ 1 552 1441 2400 552 1441 2400 +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +i 0 280 2280 2840 240 2339 2840 +I2 1 384 2030 2610 384 2030 2610 +I2 0 312 2213 2775 312 2213 2775 +@2 0 525 1441 2340 525 1441 2340 +@5 0 525 1441 2340 525 1441 2340 +U 0 445 902 2620 445 902 2620 +@L 0 485 891 2780 450 792 2980 +a# 0 511 -1 257 257 257 -1 +aa 0 904 1320 2700 896 1340 2660 +E 0 456 1980 2540 440 1980 2540 +I 1 384 2030 2610 384 2030 2610 +I 0 312 2213 2775 312 2213 2775 +0 0 584 940 2580 584 940 2580 +V 0 477 968 2620 477 968 2620 +A: 0 904 1243 2620 895 1244 2460 +A@ 0 904 1243 2620 895 1244 2460 +3: 0 448 1520 2420 463 1520 2400 +i: 0 432 1980 2620 224 2339 2820 +O: 0 512 860 2648 512 860 2648 +O 0 512 860 2648 512 860 2648 +O@ 0 512 860 2648 512 860 2648 +o@ 0 465 836 2640 530 1001 2620 +u: 0 525 1441 2340 340 990 2360 +aU 0 660 1562 2360 340 990 2360 +oU 0 616 1220 2380 390 957 2140 +aI 0 562 943 2656 357 1915 2761 +e@ 0 480 1408 2320 545 1419 2320 +i@ 0 328 2190 2770 525 1441 2340 +i@3 0 368 2156 2720 528 1595 2460 +U@ 0 430 960 2340 558 1300 2300 +aI@ 0 562 943 2656 640 1518 2400 +aU@ 0 904 1480 2670 705 1344 2320 +IR 0 544 1340 2460 616 1190 2450 +VR 0 648 1180 2595 640 1140 2460 +o: 0 454 812 2559 432 824 2520 +A~ 0 592 1000 2640 592 1000 2640 +O~ 0 540 896 2632 512 900 2620 +e: 0 456 1980 2540 440 1980 2540 diff --git a/phsource/vowelcharts/en-wm.png b/phsource/vowelcharts/en-wm.png new file mode 100644 index 00000000..e2023f2e Binary files /dev/null and b/phsource/vowelcharts/en-wm.png differ diff --git a/phsource/vowelcharts/en.png b/phsource/vowelcharts/en.png new file mode 100644 index 00000000..5219814d Binary files /dev/null and b/phsource/vowelcharts/en.png differ diff --git a/phsource/vowelcharts/eo b/phsource/vowelcharts/eo new file mode 100644 index 00000000..e2d9b080 --- /dev/null +++ b/phsource/vowelcharts/eo @@ -0,0 +1,13 @@ +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 1 454 812 2559 432 824 2520 +o 0 512 860 2648 512 860 2648 +u 0 320 860 2360 320 860 2460 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +aI 0 912 1320 2740 360 2200 2820 +eI 0 547 1855 2536 320 2300 2740 +oI 0 520 780 2660 328 2140 2780 +uI 0 321 965 2377 328 2160 2720 diff --git a/phsource/vowelcharts/eo.png b/phsource/vowelcharts/eo.png new file mode 100644 index 00000000..3b4b9cf8 Binary files /dev/null and b/phsource/vowelcharts/eo.png differ diff --git a/phsource/vowelcharts/es b/phsource/vowelcharts/es new file mode 100644 index 00000000..44d9c00f --- /dev/null +++ b/phsource/vowelcharts/es @@ -0,0 +1,12 @@ +a 0 841 1409 2550 841 1409 2550 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 820 2360 320 820 2360 +E 0 584 1820 2560 584 1820 2560 +O 0 552 860 2660 552 880 2660 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +oI 0 469 864 2440 310 2040 2440 diff --git a/phsource/vowelcharts/es-la b/phsource/vowelcharts/es-la new file mode 100644 index 00000000..44d9c00f --- /dev/null +++ b/phsource/vowelcharts/es-la @@ -0,0 +1,12 @@ +a 0 841 1409 2550 841 1409 2550 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 820 2360 320 820 2360 +E 0 584 1820 2560 584 1820 2560 +O 0 552 860 2660 552 880 2660 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +oI 0 469 864 2440 310 2040 2440 diff --git a/phsource/vowelcharts/es-la.png b/phsource/vowelcharts/es-la.png new file mode 100644 index 00000000..58a5cbb5 Binary files /dev/null and b/phsource/vowelcharts/es-la.png differ diff --git a/phsource/vowelcharts/es.png b/phsource/vowelcharts/es.png new file mode 100644 index 00000000..58a5cbb5 Binary files /dev/null and b/phsource/vowelcharts/es.png differ diff --git a/phsource/vowelcharts/et b/phsource/vowelcharts/et new file mode 100644 index 00000000..a6214496 --- /dev/null +++ b/phsource/vowelcharts/et @@ -0,0 +1,27 @@ +a 0 712 1160 2780 696 1160 2780 +e 0 504 1700 2480 504 1700 2480 +i 0 320 2255 3030 320 2255 3030 +o 0 488 900 2520 488 920 2520 +u 0 320 820 2360 320 820 2360 +a: 0 688 1064 2806 672 1100 2806 +A1 0 728 1200 2660 712 1200 2660 +e: 0 452 1880 2520 452 1880 2520 +E1 0 592 1580 2480 592 1580 2460 +i: 0 264 2340 2880 240 2339 2860 +I1 0 360 2120 2680 360 2120 2660 +i1 0 336 1440 2460 336 1440 2460 +o: 0 454 812 2559 432 824 2520 +O1 0 584 940 2580 584 940 2580 +u: 0 296 740 2400 296 740 2400 +U1 0 360 860 2360 360 860 2360 +8 0 448 1220 2260 448 1220 2260 +8: 0 464 1140 2640 464 1140 2640 +& 0 736 1540 2500 752 1540 2500 +&: 0 736 1540 2500 752 1540 2500 +Y 0 448 1520 2420 463 1520 2400 +Y: 0 448 1520 2420 463 1520 2400 +y 0 280 1720 2340 280 1720 2340 +y: 0 280 1720 2340 280 1720 2340 +&i 0 744 1540 2500 328 2280 2720 +Yi 0 536 1420 2420 355 2222 2720 +yi 0 280 1720 2320 296 2280 2780 diff --git a/phsource/vowelcharts/et.png b/phsource/vowelcharts/et.png new file mode 100644 index 00000000..74003384 Binary files /dev/null and b/phsource/vowelcharts/et.png differ diff --git a/phsource/vowelcharts/fa b/phsource/vowelcharts/fa new file mode 100644 index 00000000..a1ed6ba0 --- /dev/null +++ b/phsource/vowelcharts/fa @@ -0,0 +1,15 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 736 1540 2500 752 1540 2500 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 488 900 2520 488 920 2520 +u 0 320 820 2360 320 820 2360 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +A 0 656 1000 2620 630 960 2700 +eI 0 547 1855 2536 320 2300 2740 +oU 0 496 900 2520 360 800 2140 diff --git a/phsource/vowelcharts/fa.png b/phsource/vowelcharts/fa.png new file mode 100644 index 00000000..36e9ef0d Binary files /dev/null and b/phsource/vowelcharts/fa.png differ diff --git a/phsource/vowelcharts/fi b/phsource/vowelcharts/fi new file mode 100644 index 00000000..daf403f3 --- /dev/null +++ b/phsource/vowelcharts/fi @@ -0,0 +1,30 @@ +a 0 712 1160 2780 696 1160 2780 +e 0 504 1900 2544 496 1920 2552 +i 0 312 2300 2820 304 2300 2820 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 +I 0 360 2120 2680 360 2120 2660 +& 0 736 1540 2500 752 1540 2500 +a2 0 657 1100 2703 657 1120 2703 +Y 0 448 1520 2420 463 1520 2400 +u1 0 344 800 2360 344 800 2360 +U 0 368 800 2660 368 800 2660 +y 0 280 1720 2340 280 1720 2340 +ai 0 688 1064 2806 312 2300 2820 +&i 0 744 1540 2500 328 2280 2720 +oi 0 545 780 2720 310 2002 2500 +ei 0 547 1855 2536 320 2300 2740 +Yi 0 448 1520 2420 355 2222 2720 +ui 0 320 740 2400 272 2247 3100 +yi 0 280 1720 2320 296 2280 2780 +au 0 688 1060 2580 368 900 2540 +ou 0 516 860 2648 312 860 2360 +eu 0 460 1929 2512 327 947 2367 +iu 0 296 2180 2820 320 920 2360 +&y 0 744 1520 2500 296 1720 2340 +ey 0 547 1855 2536 280 1720 2340 +Yy 0 448 1520 2420 280 1720 2340 +iy 0 280 2280 2820 280 1720 2340 +uo 0 344 896 2375 494 864 2468 +ie 0 280 2280 2820 728 1562 2520 +yY 0 280 1720 2340 448 1520 2420 diff --git a/phsource/vowelcharts/fi.png b/phsource/vowelcharts/fi.png new file mode 100644 index 00000000..6e13f68f Binary files /dev/null and b/phsource/vowelcharts/fi.png differ diff --git a/phsource/vowelcharts/fr b/phsource/vowelcharts/fr new file mode 100644 index 00000000..75cdb96d --- /dev/null +++ b/phsource/vowelcharts/fr @@ -0,0 +1,39 @@ +@ 0 456 1460 2426 456 1460 2426 +@- 0 456 1460 2426 456 1460 2426 +a 0 845 1270 2695 845 1270 2695 +e 0 488 1990 2540 488 1990 2540 +i 0 320 2255 3030 320 2255 3030 +o 1 412 760 2680 412 760 2680 +o 0 454 812 2559 432 824 2520 +u 0 320 820 2360 320 820 2360 +y 1 280 1720 2340 280 1720 2340 +y 0 280 1720 2340 280 1720 2340 +E 0 584 1820 2560 584 1820 2560 +A~ 0 624 960 2880 624 960 2880 +E~ 1 584 1820 2560 584 1820 2560 +E~ 0 694 1360 2624 694 1360 2624 +W~ 0 694 1360 2624 694 1360 2624 +O~ 0 344 700 2620 344 700 2620 +W 0 552 1441 2400 552 1441 2400 +j/ 0 355 2222 2720 355 2222 2720 +a- 0 845 1270 2695 845 1270 2695 +a# 0 -1 -1 257 257 257 257 +e- 0 488 1990 2540 488 1990 2540 +E- 0 584 1820 2560 584 1820 2560 +I 0 408 1940 2600 408 1940 2600 +I2 0 408 1920 2580 416 1900 2580 +O 1 544 900 2520 544 900 2520 +O 1 544 900 2520 544 900 2520 +O 1 544 900 2520 544 900 2520 +O 0 488 900 2520 488 920 2520 +oU 0 630 1353 2340 390 957 2140 +u: 0 320 820 2360 320 820 2360 +y- 0 280 1720 2340 280 1720 2340 +W2 0 552 1441 2400 552 1441 2400 +Y 0 448 1520 2420 463 1520 2400 +U 0 320 820 2360 320 820 2360 +y" 1 280 1720 2340 280 1720 2340 +y" 0 280 1720 2340 280 1720 2340 +E: 0 584 1820 2560 584 1820 2560 +A 0 845 1270 2695 845 1270 2695 +V 0 654 1274 2586 654 1274 2586 diff --git a/phsource/vowelcharts/fr-ca b/phsource/vowelcharts/fr-ca new file mode 100644 index 00000000..9bb7899f --- /dev/null +++ b/phsource/vowelcharts/fr-ca @@ -0,0 +1,42 @@ +@ 0 456 1460 2426 456 1460 2426 +@- 0 456 1460 2426 456 1460 2426 +a 0 845 1270 2695 845 1270 2695 +e 0 488 1990 2540 488 1990 2540 +i 0 320 2255 3030 320 2255 3030 +o 1 412 760 2680 412 760 2680 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +y 1 280 1720 2340 280 1720 2340 +y 0 280 1720 2340 280 1720 2340 +E 0 584 1820 2560 584 1820 2560 +A~ 0 624 960 2880 624 960 2880 +E~ 0 672 1660 2624 672 1660 2624 +W~ 0 694 1360 2624 694 1360 2624 +O~ 0 344 700 2620 344 700 2620 +W 0 552 1441 2400 552 1441 2400 +j/ 0 355 2222 2720 355 2222 2720 +a- 0 845 1270 2695 845 1270 2695 +a# 0 -1 -1 257 257 257 257 +e- 0 488 1990 2540 488 1990 2540 +E- 0 584 1820 2560 584 1820 2560 +I 0 384 2030 2610 384 2030 2610 +I2 0 408 1920 2580 416 1900 2580 +O 1 544 900 2520 544 900 2520 +O 1 544 900 2520 544 900 2520 +O 1 544 900 2520 544 900 2520 +O 0 488 900 2520 488 920 2520 +oU 0 630 1353 2340 390 957 2140 +u: 0 320 820 2360 320 820 2360 +y- 0 280 1720 2340 280 1720 2340 +W2 0 552 1441 2400 552 1441 2400 +Y 0 448 1520 2420 463 1520 2400 +U 0 368 880 2440 368 900 2440 +y" 0 353 1860 2438 353 1860 2438 +E: 0 860 1472 2662 544 1862 2529 +A 0 688 1064 2806 672 1100 2806 +V 0 654 1274 2586 654 1274 2586 diff --git a/phsource/vowelcharts/fr-ca.png b/phsource/vowelcharts/fr-ca.png new file mode 100644 index 00000000..c6187510 Binary files /dev/null and b/phsource/vowelcharts/fr-ca.png differ diff --git a/phsource/vowelcharts/fr.png b/phsource/vowelcharts/fr.png new file mode 100644 index 00000000..b89cf6da Binary files /dev/null and b/phsource/vowelcharts/fr.png differ diff --git a/phsource/vowelcharts/gd b/phsource/vowelcharts/gd new file mode 100644 index 00000000..d840c642 --- /dev/null +++ b/phsource/vowelcharts/gd @@ -0,0 +1,12 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 0 320 860 2360 320 860 2460 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 diff --git a/phsource/vowelcharts/gd.png b/phsource/vowelcharts/gd.png new file mode 100644 index 00000000..051292cd Binary files /dev/null and b/phsource/vowelcharts/gd.png differ diff --git a/phsource/vowelcharts/grc b/phsource/vowelcharts/grc new file mode 100644 index 00000000..41ea7c56 --- /dev/null +++ b/phsource/vowelcharts/grc @@ -0,0 +1,18 @@ +a 1 760 1420 2600 736 1380 2540 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +E 0 720 1760 2420 672 1562 2520 +O 0 670 946 2620 630 902 2700 +y 0 305 1700 2340 305 1700 2340 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +aI 0 912 1320 2740 360 2200 2820 +EI 0 680 1800 2440 355 2222 2720 +oI 0 469 864 2440 310 2040 2440 +EU 0 645 1705 2520 390 957 2140 +OI 0 670 946 2620 310 2002 2300 +OU 0 584 940 2580 360 800 2140 +yI 0 280 1720 2320 296 2280 2780 diff --git a/phsource/vowelcharts/grc.png b/phsource/vowelcharts/grc.png new file mode 100644 index 00000000..b61aa7ec Binary files /dev/null and b/phsource/vowelcharts/grc.png differ diff --git a/phsource/vowelcharts/hi b/phsource/vowelcharts/hi new file mode 100644 index 00000000..97ee73c5 --- /dev/null +++ b/phsource/vowelcharts/hi @@ -0,0 +1,34 @@ +@ 1 584 1440 2460 600 1440 2460 +@ 0 544 1220 2520 544 1260 2520 +a 0 658 1408 2460 658 1408 2460 +e 0 416 2140 2660 416 2140 2660 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +V 1 584 1440 2460 600 1440 2460 +V 0 695 1316 2500 695 1316 2500 +@3 0 528 1500 2380 528 1500 2380 +@2 0 584 1440 2460 600 1440 2460 +i: 0 304 2440 3020 304 2440 3020 +I 0 360 2120 2680 360 2120 2660 +e: 0 416 2140 2660 416 2140 2660 +E: 0 656 1740 2500 504 1900 2620 +E 0 584 1820 2560 584 1820 2560 +&: 0 736 1540 2500 752 1540 2500 +a: 0 712 1160 2780 696 1160 2780 +o: 0 424 800 2580 408 780 2600 +O: 0 584 940 2580 584 940 2580 +O 0 670 946 2620 630 902 2700 +U 0 368 880 2440 368 900 2440 +u: 0 320 740 2400 320 740 2400 +i~ 0 312 2240 2844 312 2240 2844 +I~ 0 408 1920 2540 416 1900 2580 +e~ 0 456 1960 2520 456 1960 2520 +E~ 0 670 1719 2556 710 1672 2671 +a~ 0 648 1120 2652 592 1000 2640 +V~ 0 612 1232 2620 612 1240 2620 +O~ 0 540 896 2632 512 900 2620 +o~ 0 448 840 2598 448 840 2598 +U~ 0 328 900 2360 328 900 2360 +u~ 0 328 900 2360 328 900 2360 +aI 0 744 1540 2500 328 2280 2720 +aU 0 724 1130 2760 472 780 2500 diff --git a/phsource/vowelcharts/hi.png b/phsource/vowelcharts/hi.png new file mode 100644 index 00000000..cbdd703f Binary files /dev/null and b/phsource/vowelcharts/hi.png differ diff --git a/phsource/vowelcharts/hr b/phsource/vowelcharts/hr new file mode 100644 index 00000000..24c6495a --- /dev/null +++ b/phsource/vowelcharts/hr @@ -0,0 +1,22 @@ +@ 0 456 1460 2426 456 1460 2426 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 +E 0 584 1820 2560 584 1820 2560 +O 0 536 920 2600 536 920 2600 +i: 0 272 2247 3100 288 2247 3100 +& 0 728 1300 2595 736 1300 2595 +e: 0 584 1820 2560 584 1820 2560 +a: 0 904 1320 2700 896 1340 2660 +o: 0 512 860 2648 512 860 2648 +u: 0 320 740 2400 320 740 2400 +aU 0 847 1383 2510 360 800 2360 +oU 0 496 900 2520 360 800 2140 +aI 0 912 1320 2740 360 2200 2820 +@2 0 512 1620 2560 512 1620 2560 +A 0 904 1320 2700 896 1340 2660 +I 0 360 2120 2680 360 2120 2660 +U 0 344 800 2360 344 800 2360 +r* 0 525 1441 2340 525 1441 2340 diff --git a/phsource/vowelcharts/hr.png b/phsource/vowelcharts/hr.png new file mode 100644 index 00000000..326f00b2 Binary files /dev/null and b/phsource/vowelcharts/hr.png differ diff --git a/phsource/vowelcharts/ht b/phsource/vowelcharts/ht new file mode 100644 index 00000000..b89c96d7 --- /dev/null +++ b/phsource/vowelcharts/ht @@ -0,0 +1,12 @@ +a 0 845 1270 2695 845 1270 2695 +e 0 436 2076 2604 436 2076 2604 +i 0 320 2255 3030 320 2255 3030 +o 0 412 760 2680 412 760 2680 +u 0 320 820 2360 320 820 2360 +y 1 280 1720 2340 280 1720 2340 +y 0 280 1720 2340 280 1720 2340 +E 0 584 1820 2560 584 1820 2560 +A~ 0 624 960 2880 624 960 2880 +E~ 0 694 1360 2624 694 1360 2624 +O~ 0 448 840 2598 448 840 2598 +O 0 544 900 2520 544 900 2520 diff --git a/phsource/vowelcharts/ht.png b/phsource/vowelcharts/ht.png new file mode 100644 index 00000000..0fae69be Binary files /dev/null and b/phsource/vowelcharts/ht.png differ diff --git a/phsource/vowelcharts/hu b/phsource/vowelcharts/hu new file mode 100644 index 00000000..5620ee0a --- /dev/null +++ b/phsource/vowelcharts/hu @@ -0,0 +1,16 @@ +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 312 2300 2820 304 2300 2820 +o 0 488 900 2520 488 920 2520 +u 0 368 880 2440 368 900 2440 +A 0 656 1000 2620 630 960 2700 +E 0 584 1820 2560 584 1820 2560 +Y 0 480 1560 2420 516 1520 2340 +y 0 305 1700 2340 305 1700 2340 +i: 0 280 2280 2840 240 2339 2840 +e: 0 374 2240 2860 374 2240 2860 +a: 0 904 1320 2700 896 1340 2660 +o: 0 424 800 2580 408 780 2600 +u: 0 320 740 2400 320 740 2400 +y: 0 280 1720 2340 280 1720 2340 +Y: 0 448 1520 2420 463 1520 2400 diff --git a/phsource/vowelcharts/hu.png b/phsource/vowelcharts/hu.png new file mode 100644 index 00000000..38f99673 Binary files /dev/null and b/phsource/vowelcharts/hu.png differ diff --git a/phsource/vowelcharts/hy b/phsource/vowelcharts/hy new file mode 100644 index 00000000..c5741cc2 --- /dev/null +++ b/phsource/vowelcharts/hy @@ -0,0 +1,11 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 688 1064 2806 672 1100 2806 +e 0 584 1820 2560 584 1820 2560 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +y 0 305 1700 2340 305 1700 2340 +W 0 525 1320 2200 525 1320 2200 +aI 0 912 1320 2740 360 2200 2820 +eI 0 680 1800 2440 355 2222 2720 +i@ 0 320 2220 2800 528 1520 2360 diff --git a/phsource/vowelcharts/hy.png b/phsource/vowelcharts/hy.png new file mode 100644 index 00000000..fa82db87 Binary files /dev/null and b/phsource/vowelcharts/hy.png differ diff --git a/phsource/vowelcharts/id b/phsource/vowelcharts/id new file mode 100644 index 00000000..4d9a4c0c --- /dev/null +++ b/phsource/vowelcharts/id @@ -0,0 +1,13 @@ +@ 0 584 1440 2460 600 1440 2460 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +u 0 320 860 2360 320 860 2460 +E 0 584 1820 2560 584 1820 2560 +O 0 552 860 2660 552 880 2660 +aU 0 847 1383 2510 360 800 2360 +aI 0 912 1320 2740 360 2200 2820 +eI 0 547 1855 2536 320 2300 2740 +E2 0 584 1820 2560 584 1820 2560 +@U 0 630 1353 2340 390 957 2140 diff --git a/phsource/vowelcharts/id.png b/phsource/vowelcharts/id.png new file mode 100644 index 00000000..55be61a0 Binary files /dev/null and b/phsource/vowelcharts/id.png differ diff --git a/phsource/vowelcharts/is b/phsource/vowelcharts/is new file mode 100644 index 00000000..508933d4 --- /dev/null +++ b/phsource/vowelcharts/is @@ -0,0 +1,29 @@ +@- 0 525 1441 2340 525 1441 2340 +a 0 728 1300 2595 736 1300 2595 +i 0 312 2213 2775 312 2213 2775 +u 0 344 800 2360 344 800 2360 +i: 0 312 2300 2820 304 2300 2820 +I 0 384 2030 2610 384 2030 2610 +I: 0 384 2030 2610 384 2030 2610 +E 0 584 1820 2560 584 1820 2560 +E: 0 518 1920 2540 581 1810 2540 +a: 0 728 1200 2660 712 1200 2660 +O 0 536 920 2600 536 920 2600 +O: 0 454 812 2559 544 960 2560 +u: 0 320 740 2400 320 740 2400 +y 0 400 1600 2420 400 1600 2420 +y: 0 305 1700 2340 305 1700 2340 +W 0 407 1500 2400 458 1513 2483 +W: 0 407 1500 2400 458 1513 2483 +aI 0 760 1200 2680 352 2280 2780 +aI: 0 760 1200 2680 352 2280 2780 +eI 0 464 1980 2520 328 2280 2720 +eI: 0 464 1980 2520 328 2280 2720 +aU 0 688 1060 2580 368 900 2540 +aU: 0 688 1060 2580 368 900 2540 +oU 0 488 920 2440 416 700 2400 +oU: 0 488 920 2440 416 700 2400 +Yy 0 488 1600 2700 392 2060 2620 +Yy: 0 488 1600 2700 392 2060 2620 +OI 0 469 864 2440 310 2040 2440 +yI 0 305 1700 2340 305 1700 2340 diff --git a/phsource/vowelcharts/is.png b/phsource/vowelcharts/is.png new file mode 100644 index 00000000..40365699 Binary files /dev/null and b/phsource/vowelcharts/is.png differ diff --git a/phsource/vowelcharts/it b/phsource/vowelcharts/it new file mode 100644 index 00000000..b856a4b8 --- /dev/null +++ b/phsource/vowelcharts/it @@ -0,0 +1,19 @@ +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 416 2140 2660 416 2140 2660 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +a/ 0 834 1220 2690 834 1220 2690 +E 0 584 1820 2560 584 1820 2560 +O 0 584 940 2580 584 940 2580 +U 0 320 740 2400 320 740 2400 +aU 0 784 1320 2620 496 900 2620 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +oI 0 469 864 2440 310 2040 2440 +e/ 1 504 1900 2544 496 1920 2552 +e/ 0 456 1980 2540 440 1980 2540 +I 0 312 2300 2820 304 2300 2820 +o/ 1 512 860 2648 512 860 2648 +o/ 0 454 812 2559 432 824 2520 diff --git a/phsource/vowelcharts/it.png b/phsource/vowelcharts/it.png new file mode 100644 index 00000000..05c0127a Binary files /dev/null and b/phsource/vowelcharts/it.png differ diff --git a/phsource/vowelcharts/jbo b/phsource/vowelcharts/jbo new file mode 100644 index 00000000..bba56953 --- /dev/null +++ b/phsource/vowelcharts/jbo @@ -0,0 +1,13 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 1 454 812 2559 432 824 2520 +o 0 512 860 2648 512 860 2648 +u 0 320 860 2360 320 860 2460 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +aU 0 847 1383 2510 360 800 2360 +aI 0 912 1320 2740 360 2200 2820 +eI 0 547 1855 2536 320 2300 2740 +oI 0 520 780 2660 328 2140 2780 diff --git a/phsource/vowelcharts/jbo.png b/phsource/vowelcharts/jbo.png new file mode 100644 index 00000000..3b944c7f Binary files /dev/null and b/phsource/vowelcharts/jbo.png differ diff --git a/phsource/vowelcharts/ka b/phsource/vowelcharts/ka new file mode 100644 index 00000000..962901ce --- /dev/null +++ b/phsource/vowelcharts/ka @@ -0,0 +1,8 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 728 1300 2595 736 1300 2595 +e 1 584 1820 2560 584 1820 2560 +e 0 647 1778 2530 647 1778 2530 +i 0 280 2280 2840 240 2339 2840 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/ka.png b/phsource/vowelcharts/ka.png new file mode 100644 index 00000000..783efda7 Binary files /dev/null and b/phsource/vowelcharts/ka.png differ diff --git a/phsource/vowelcharts/kk b/phsource/vowelcharts/kk new file mode 100644 index 00000000..9df236cd --- /dev/null +++ b/phsource/vowelcharts/kk @@ -0,0 +1,13 @@ +a 0 834 1220 2690 834 1220 2690 +e 0 395 2068 2720 515 1595 2460 +i 0 312 2213 2775 256 2360 2820 +o 0 412 760 2680 412 760 2680 +u 0 296 740 2400 296 740 2400 +I 0 448 1660 2528 448 1660 2528 +8 0 520 1160 2440 520 1160 2440 +u# 0 352 1420 2260 320 1120 2235 +U 0 388 940 2420 394 980 2360 +A 0 712 1160 2780 696 1160 2780 +& 0 645 1705 2520 645 1705 2520 +E 0 512 1620 2560 512 1620 2560 +Y 0 400 1370 2300 439 1280 2369 diff --git a/phsource/vowelcharts/kk.png b/phsource/vowelcharts/kk.png new file mode 100644 index 00000000..2cef486b Binary files /dev/null and b/phsource/vowelcharts/kk.png differ diff --git a/phsource/vowelcharts/kn b/phsource/vowelcharts/kn new file mode 100644 index 00000000..1a2320ac --- /dev/null +++ b/phsource/vowelcharts/kn @@ -0,0 +1,14 @@ +@ 0 525 1441 2340 525 1441 2340 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +u 0 368 880 2440 368 900 2440 +i: 0 280 2280 2840 240 2339 2840 +I 0 360 2120 2680 360 2120 2660 +e: 0 456 1980 2540 440 1980 2540 +E 0 584 1820 2560 584 1820 2560 +a: 0 784 1180 2680 776 1200 2680 +o: 0 454 812 2559 432 824 2520 +u: 0 368 880 2440 368 900 2440 +aI 0 912 1320 2740 360 2200 2820 +aU 0 724 1130 2760 472 780 2500 diff --git a/phsource/vowelcharts/kn.png b/phsource/vowelcharts/kn.png new file mode 100644 index 00000000..250879b9 Binary files /dev/null and b/phsource/vowelcharts/kn.png differ diff --git a/phsource/vowelcharts/ku b/phsource/vowelcharts/ku new file mode 100644 index 00000000..a00cef2c --- /dev/null +++ b/phsource/vowelcharts/ku @@ -0,0 +1,15 @@ +a 0 657 1100 2703 657 1120 2703 +e 0 374 2240 2860 374 2240 2860 +i 0 296 2220 2880 288 2260 2900 +o 0 449 857 2500 449 857 2500 +u 0 320 940 2360 320 900 2360 +E 0 680 1660 2520 680 1660 2520 +U 0 400 1240 2200 400 1240 2200 +y 0 280 1980 2340 280 1980 2340 +eU 0 660 1562 2360 340 990 2360 +eI 0 608 1800 2529 408 1960 2600 +I 1 384 2030 2610 384 2030 2610 +I 0 448 1660 2528 448 1660 2528 +E# 0 645 1705 2520 645 1705 2520 +8 0 564 1160 2720 564 1160 2720 +V 0 654 1274 2586 654 1274 2586 diff --git a/phsource/vowelcharts/ku.png b/phsource/vowelcharts/ku.png new file mode 100644 index 00000000..2ea98815 Binary files /dev/null and b/phsource/vowelcharts/ku.png differ diff --git a/phsource/vowelcharts/la b/phsource/vowelcharts/la new file mode 100644 index 00000000..77472b74 --- /dev/null +++ b/phsource/vowelcharts/la @@ -0,0 +1,18 @@ +@- 0 525 1441 2340 525 1441 2340 +a 0 834 1220 2690 834 1220 2690 +E 0 720 1760 2420 672 1562 2520 +I 0 336 2210 2800 336 2210 2760 +O 0 454 812 2559 432 824 2520 +U 0 320 860 2360 320 860 2460 +a: 0 784 1180 2680 776 1200 2680 +e: 0 456 1980 2540 440 1980 2540 +i: 0 280 2255 3030 264 2255 3030 +o: 0 424 800 2580 408 780 2600 +u: 0 320 820 2360 320 820 2360 +y 0 280 1720 2340 280 1720 2340 +y: 0 272 1820 2280 272 1800 2260 +aU 0 724 1130 2760 472 780 2500 +aI 0 860 1472 2662 544 1862 2529 +eI 0 464 1980 2520 328 2280 2720 +EU 0 547 1840 2536 376 980 2360 +OI 0 469 864 2440 310 2040 2440 diff --git a/phsource/vowelcharts/la.png b/phsource/vowelcharts/la.png new file mode 100644 index 00000000..eef95c83 Binary files /dev/null and b/phsource/vowelcharts/la.png differ diff --git a/phsource/vowelcharts/lv b/phsource/vowelcharts/lv new file mode 100644 index 00000000..6e52617f --- /dev/null +++ b/phsource/vowelcharts/lv @@ -0,0 +1,21 @@ +@ 0 448 1220 2260 448 1220 2260 +a 0 784 1180 2680 776 1200 2680 +e 0 584 1820 2560 584 1820 2560 +i 0 296 2220 2880 288 2260 2900 +o 0 512 860 2648 512 860 2648 +u 0 320 860 2360 320 860 2460 +i: 0 296 2220 2880 288 2260 2900 +e: 0 584 1820 2560 584 1820 2560 +& 0 736 1540 2500 752 1540 2500 +&: 0 736 1540 2500 752 1540 2500 +a: 0 784 1180 2680 776 1200 2680 +o: 0 512 860 2648 512 860 2648 +u: 0 320 860 2360 320 860 2460 +ai 0 752 1140 2820 424 2000 2500 +ei 0 547 1855 2536 320 2300 2740 +au 0 688 1060 2580 368 900 2540 +uo 0 373 805 2662 640 1060 2800 +oi 0 545 780 2720 310 2002 2500 +ui 0 321 965 2377 328 2160 2720 +ie 0 280 2280 2820 584 1780 2560 +iu 0 296 2180 2820 320 920 2360 diff --git a/phsource/vowelcharts/lv.png b/phsource/vowelcharts/lv.png new file mode 100644 index 00000000..69840de0 Binary files /dev/null and b/phsource/vowelcharts/lv.png differ diff --git a/phsource/vowelcharts/mk b/phsource/vowelcharts/mk new file mode 100644 index 00000000..f92f0104 --- /dev/null +++ b/phsource/vowelcharts/mk @@ -0,0 +1,18 @@ +@ 0 456 1460 2426 456 1460 2426 +@- 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 +E 0 584 1820 2560 584 1820 2560 +i: 0 272 2247 3100 288 2247 3100 +& 0 728 1300 2595 736 1300 2595 +e: 0 584 1820 2560 584 1820 2560 +a: 0 904 1320 2700 896 1340 2660 +o: 0 512 860 2648 512 860 2648 +u: 0 320 740 2400 320 740 2400 +oU 0 496 900 2520 360 800 2140 +@2 0 512 1620 2560 512 1620 2560 +A 0 904 1320 2700 896 1340 2660 +I 0 360 2120 2680 360 2120 2660 diff --git a/phsource/vowelcharts/mk.png b/phsource/vowelcharts/mk.png new file mode 100644 index 00000000..4f22f004 Binary files /dev/null and b/phsource/vowelcharts/mk.png differ diff --git a/phsource/vowelcharts/ml b/phsource/vowelcharts/ml new file mode 100644 index 00000000..0f3d2969 --- /dev/null +++ b/phsource/vowelcharts/ml @@ -0,0 +1,18 @@ +@ 0 584 1440 2460 600 1440 2460 +a 1 728 1300 2595 736 1300 2595 +a 0 658 1408 2460 658 1408 2460 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +u 0 320 860 2360 320 860 2460 +V 1 584 1440 2460 600 1440 2460 +V 0 695 1316 2500 695 1316 2500 +i: 0 280 2280 2840 240 2339 2840 +I 0 384 2030 2610 384 2030 2610 +e: 0 456 1980 2540 440 1980 2540 +E 0 584 1820 2560 584 1820 2560 +a: 0 834 1220 2690 834 1220 2690 +o: 0 454 812 2559 432 824 2520 +u: 0 320 860 2360 320 860 2460 +aI 0 912 1320 2740 360 2200 2820 +aU 0 724 1130 2760 472 780 2500 diff --git a/phsource/vowelcharts/ml.png b/phsource/vowelcharts/ml.png new file mode 100644 index 00000000..5238864e Binary files /dev/null and b/phsource/vowelcharts/ml.png differ diff --git a/phsource/vowelcharts/mt b/phsource/vowelcharts/mt new file mode 100644 index 00000000..2a426993 --- /dev/null +++ b/phsource/vowelcharts/mt @@ -0,0 +1,26 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 712 1160 2780 696 1160 2780 +e 0 504 1900 2544 496 1920 2552 +i 0 744 1540 2500 328 2280 2720 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 +I 0 408 1940 2600 408 1940 2600 +Y 0 448 1520 2420 463 1520 2400 +U 0 368 800 2660 368 800 2660 +y 0 280 1720 2340 280 1720 2340 +ai 0 688 1064 2806 312 2300 2820 +oi 0 545 780 2720 310 2002 2500 +ei 0 547 1855 2536 320 2300 2740 +Yi 0 448 1520 2420 355 2222 2720 +ui 0 320 740 2400 272 2247 3100 +yi 0 280 1720 2320 296 2280 2780 +au 0 688 1060 2580 368 900 2540 +ou 0 516 860 2648 312 860 2360 +eu 0 460 1929 2512 327 947 2367 +iu 0 296 2180 2820 320 920 2360 +ey 0 547 1855 2536 280 1720 2340 +Yy 0 448 1520 2420 280 1720 2340 +iy 0 280 2280 2820 280 1720 2340 +uo 0 344 896 2375 494 864 2468 +ie 0 280 2280 2820 728 1562 2520 +yY 0 280 1720 2340 448 1520 2420 diff --git a/phsource/vowelcharts/mt.png b/phsource/vowelcharts/mt.png new file mode 100644 index 00000000..cfc399a5 Binary files /dev/null and b/phsource/vowelcharts/mt.png differ diff --git a/phsource/vowelcharts/nci b/phsource/vowelcharts/nci new file mode 100644 index 00000000..93ce1231 --- /dev/null +++ b/phsource/vowelcharts/nci @@ -0,0 +1,6 @@ +a 1 760 1420 2600 736 1380 2540 +a 0 896 1440 2710 896 1440 2710 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +O 0 584 940 2580 584 940 2580 diff --git a/phsource/vowelcharts/nci.png b/phsource/vowelcharts/nci.png new file mode 100644 index 00000000..9dca6502 Binary files /dev/null and b/phsource/vowelcharts/nci.png differ diff --git a/phsource/vowelcharts/ne b/phsource/vowelcharts/ne new file mode 100644 index 00000000..28db33a4 --- /dev/null +++ b/phsource/vowelcharts/ne @@ -0,0 +1,34 @@ +@ 1 584 1440 2460 600 1440 2460 +@ 0 544 1220 2520 544 1260 2520 +a 0 712 1160 2780 696 1160 2780 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 488 900 2520 488 920 2520 +u 0 320 740 2400 320 740 2400 +V 1 584 1440 2460 600 1440 2460 +V 0 544 1220 2520 544 1260 2520 +@3 0 528 1500 2380 528 1500 2380 +@2 0 584 1440 2460 600 1440 2460 +I 0 360 2120 2680 360 2120 2660 +E 0 584 1820 2560 584 1820 2560 +o: 0 424 800 2580 408 780 2600 +O 0 670 946 2620 630 902 2700 +i~ 0 312 2240 2844 312 2240 2844 +e~ 0 456 1960 2520 456 1960 2520 +E~ 0 670 1719 2556 710 1672 2671 +a~ 0 648 1120 2652 592 1000 2640 +V~ 0 612 1232 2620 612 1240 2620 +O~ 0 540 896 2632 512 900 2620 +o~ 0 448 840 2598 448 840 2598 +u~ 0 328 900 2360 328 900 2360 +aI 0 752 1140 2820 424 2000 2500 +aU 0 724 1130 2760 472 780 2500 +@/ 1 584 1440 2460 600 1440 2460 +@/ 0 544 1220 2520 544 1260 2520 +eI 0 680 1800 2440 355 2222 2720 +eU 0 460 1929 2512 327 947 2367 +VI 0 605 1232 2620 400 2222 2720 +VU 0 620 1245 2298 376 880 2280 +oI 0 469 864 2440 310 2040 2440 +oU 0 516 860 2648 312 860 2360 +uI 0 321 965 2377 328 2160 2720 diff --git a/phsource/vowelcharts/ne.png b/phsource/vowelcharts/ne.png new file mode 100644 index 00000000..b9d47547 Binary files /dev/null and b/phsource/vowelcharts/ne.png differ diff --git a/phsource/vowelcharts/nl b/phsource/vowelcharts/nl new file mode 100644 index 00000000..dfb96322 --- /dev/null +++ b/phsource/vowelcharts/nl @@ -0,0 +1,29 @@ +@ 0 496 1500 2420 496 1500 2420 +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2255 3030 264 2255 3030 +o 0 552 860 2660 552 880 2660 +u 0 320 740 2400 320 740 2400 +I 0 384 2030 2610 384 2030 2610 +y 0 280 1720 2340 280 1720 2340 +8 0 448 1520 2420 463 1520 2400 +E 0 504 1900 2544 496 1920 2552 +E2 0 645 1705 2520 645 1705 2520 +O 0 480 800 2700 480 800 2700 +O: 0 480 800 2700 480 800 2700 +a: 1 728 1300 2595 736 1300 2595 +a: 1 800 1320 2637 800 1320 2637 +a: 0 904 1320 2700 896 1340 2660 +A 1 728 1300 2595 736 1300 2595 +A 0 728 1200 2660 712 1200 2660 +A~ 0 624 960 2880 624 960 2880 +O~ 0 540 896 2632 512 900 2620 +e: 0 464 1980 2520 328 2280 2720 +Y: 0 480 1540 2340 400 1620 2120 +o: 0 496 900 2520 376 860 2220 +EI 0 680 1800 2440 355 2222 2720 +Wy 0 744 1520 2500 296 1720 2340 +VU 0 724 1130 2760 472 780 2500 +eU 0 460 1929 2512 327 947 2367 +yU 0 272 1720 2340 394 980 2360 diff --git a/phsource/vowelcharts/nl.png b/phsource/vowelcharts/nl.png new file mode 100644 index 00000000..73a8f052 Binary files /dev/null and b/phsource/vowelcharts/nl.png differ diff --git a/phsource/vowelcharts/no b/phsource/vowelcharts/no new file mode 100644 index 00000000..a7d2aad4 --- /dev/null +++ b/phsource/vowelcharts/no @@ -0,0 +1,26 @@ +@ 0 496 1500 2420 496 1500 2420 +a 0 760 1260 2500 760 1320 2500 +a# 0 584 1440 2460 600 1440 2460 +I 0 360 2120 2680 360 2120 2660 +i: 0 280 2280 2840 240 2339 2840 +y 0 353 1860 2438 353 1860 2438 +y: 0 278 2030 2490 278 2030 2490 +W 0 504 1340 2220 504 1340 2220 +Y: 0 392 1460 2180 408 1359 2201 +E 0 584 1820 2560 584 1820 2560 +E: 0 720 1760 2420 672 1562 2520 +e: 0 416 2140 2660 416 2140 2660 +a: 0 760 1260 2500 760 1320 2500 +A 0 688 1064 2806 672 1100 2806 +A: 0 688 1064 2806 672 1100 2806 +O 0 552 860 2660 552 880 2660 +o: 0 424 800 2580 408 780 2600 +U 0 368 880 2440 368 900 2440 +u: 0 320 740 2400 320 740 2400 +u-: 0 272 1520 2100 280 1560 2120 +AI 0 624 980 2620 328 2127 2940 +aI 0 776 1340 2540 355 2222 2720 +OI 0 545 780 2720 310 2002 2500 +u-I 0 280 1720 2320 296 2280 2780 +Yy 0 496 1420 2180 267 2160 2772 +aU 0 744 1420 2500 320 1300 2338 diff --git a/phsource/vowelcharts/no.png b/phsource/vowelcharts/no.png new file mode 100644 index 00000000..794c25a6 Binary files /dev/null and b/phsource/vowelcharts/no.png differ diff --git a/phsource/vowelcharts/nso b/phsource/vowelcharts/nso new file mode 100644 index 00000000..d0c98e0f --- /dev/null +++ b/phsource/vowelcharts/nso @@ -0,0 +1,13 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 728 1300 2595 736 1300 2595 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 630 920 2627 616 940 2627 +u 0 360 860 2360 360 860 2360 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +U 0 388 940 2420 394 980 2360 +E 0 720 1760 2420 672 1562 2520 diff --git a/phsource/vowelcharts/nso.png b/phsource/vowelcharts/nso.png new file mode 100644 index 00000000..c6965fdc Binary files /dev/null and b/phsource/vowelcharts/nso.png differ diff --git a/phsource/vowelcharts/pa b/phsource/vowelcharts/pa new file mode 100644 index 00000000..27dc1f9c --- /dev/null +++ b/phsource/vowelcharts/pa @@ -0,0 +1,24 @@ +@ 1 584 1440 2460 600 1440 2460 +@ 0 544 1220 2520 544 1260 2520 +a 0 712 1160 2780 696 1160 2780 +e 0 416 2140 2660 416 2140 2660 +i 0 304 2440 3020 304 2440 3020 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +V 1 584 1440 2460 600 1440 2460 +V 0 695 1316 2500 695 1316 2500 +I 0 360 2120 2680 360 2120 2660 +E 0 645 1705 2520 645 1705 2520 +o: 0 454 812 2559 432 824 2520 +O 0 584 940 2580 584 940 2580 +U 0 368 880 2440 368 900 2440 +i~ 0 312 2240 2844 312 2240 2844 +I~ 0 408 1920 2540 416 1900 2580 +e~ 0 456 1960 2520 456 1960 2520 +E~ 0 670 1719 2556 710 1672 2671 +a~ 0 648 1120 2652 592 1000 2640 +V~ 0 612 1232 2620 612 1240 2620 +O~ 0 540 896 2632 512 900 2620 +o~ 0 448 840 2598 448 840 2598 +U~ 0 328 900 2360 328 900 2360 +u~ 0 328 900 2360 328 900 2360 diff --git a/phsource/vowelcharts/pa.png b/phsource/vowelcharts/pa.png new file mode 100644 index 00000000..5a6543f7 Binary files /dev/null and b/phsource/vowelcharts/pa.png differ diff --git a/phsource/vowelcharts/pl b/phsource/vowelcharts/pl new file mode 100644 index 00000000..6cb9249f --- /dev/null +++ b/phsource/vowelcharts/pl @@ -0,0 +1,9 @@ +a 0 904 1320 2700 896 1340 2660 +i 0 264 2340 2880 240 2339 2860 +u 0 320 740 2400 320 740 2400 +E 1 720 1760 2420 672 1562 2520 +E 0 584 1820 2560 584 1820 2560 +E# 0 656 1560 2440 648 1536 2444 +O 0 536 920 2600 536 920 2600 +E~ 0 688 1620 2640 391 990 2580 +O~ 0 552 896 2680 440 820 2692 diff --git a/phsource/vowelcharts/pl.png b/phsource/vowelcharts/pl.png new file mode 100644 index 00000000..8c93e081 Binary files /dev/null and b/phsource/vowelcharts/pl.png differ diff --git a/phsource/vowelcharts/prs b/phsource/vowelcharts/prs new file mode 100644 index 00000000..ada84d12 --- /dev/null +++ b/phsource/vowelcharts/prs @@ -0,0 +1,8 @@ +@ 0 525 1441 2340 525 1441 2340 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 0 320 860 2360 320 860 2460 +E 0 584 1820 2560 584 1820 2560 +A 0 664 1040 2800 648 1060 2840 +eI 0 680 1800 2440 355 2222 2720 +aU 0 830 1364 2440 488 900 2240 diff --git a/phsource/vowelcharts/prs.png b/phsource/vowelcharts/prs.png new file mode 100644 index 00000000..3ae31867 Binary files /dev/null and b/phsource/vowelcharts/prs.png differ diff --git a/phsource/vowelcharts/pt b/phsource/vowelcharts/pt new file mode 100644 index 00000000..4d9ca6ac --- /dev/null +++ b/phsource/vowelcharts/pt @@ -0,0 +1,33 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 1 760 1420 2600 736 1380 2540 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +E 0 735 1760 2420 675 1738 2420 +O 0 670 946 2620 630 902 2700 +U 0 368 880 2440 368 900 2440 +y 0 312 2213 2775 312 2213 2775 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +iU 0 280 2280 2820 328 957 2140 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +EI 0 680 1800 2440 355 2222 2720 +oI 0 469 864 2440 310 2040 2440 +uI 0 321 965 2377 328 2160 2720 +I 0 312 2213 2775 312 2213 2775 +e~ 0 456 1960 2520 456 1960 2520 +i~ 0 296 2280 2820 240 2398 2820 +o~ 0 448 840 2598 448 840 2598 +u~ 0 328 900 2360 328 900 2360 +&~ 0 664 1408 2460 664 1408 2460 +&U~ 0 658 1408 2460 392 520 2580 +& 0 658 1408 2460 658 1408 2460 +&/ 0 658 1408 2460 658 1408 2460 +A 0 896 1440 2710 896 1440 2710 +i/ 0 312 2213 2775 312 2213 2775 +OI 0 670 946 2620 310 2002 2300 +EU 0 645 1705 2520 390 957 2140 diff --git a/phsource/vowelcharts/pt-pt b/phsource/vowelcharts/pt-pt new file mode 100644 index 00000000..4b715e33 --- /dev/null +++ b/phsource/vowelcharts/pt-pt @@ -0,0 +1,29 @@ +@ 0 525 1441 2340 525 1441 2340 +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 940 2360 320 900 2360 +E 0 584 1820 2560 584 1820 2560 +O 0 630 920 2627 616 940 2627 +U 0 320 940 2360 320 900 2360 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +iU 0 280 2280 2820 328 957 2140 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +EI 0 680 1800 2440 355 2222 2720 +oI 0 469 864 2440 310 2040 2440 +uI 0 321 965 2377 328 2160 2720 +I 0 312 2213 2775 312 2213 2775 +o~ 0 448 840 2598 448 840 2598 +u~ 0 328 900 2360 328 900 2360 +&~ 0 670 1719 2556 710 1672 2671 +&U~ 0 658 1408 2460 392 520 2580 +& 0 257 -1 257 257 257 257 +&/ 0 658 1408 2460 658 1408 2460 +A 0 896 1440 2710 896 1440 2710 +i/ 0 376 1515 2460 376 1515 2460 +OI 0 670 946 2620 310 2002 2300 +EU 0 547 1840 2536 376 980 2360 diff --git a/phsource/vowelcharts/pt-pt.png b/phsource/vowelcharts/pt-pt.png new file mode 100644 index 00000000..33fec8ff Binary files /dev/null and b/phsource/vowelcharts/pt-pt.png differ diff --git a/phsource/vowelcharts/pt.png b/phsource/vowelcharts/pt.png new file mode 100644 index 00000000..525080c3 Binary files /dev/null and b/phsource/vowelcharts/pt.png differ diff --git a/phsource/vowelcharts/ro b/phsource/vowelcharts/ro new file mode 100644 index 00000000..f2b56e24 --- /dev/null +++ b/phsource/vowelcharts/ro @@ -0,0 +1,31 @@ +@ 0 584 1440 2460 600 1440 2460 +@- 0 525 1441 2340 525 1441 2340 +a 0 896 1440 2710 896 1440 2710 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 496 972 2500 496 972 2500 +u 0 344 800 2360 344 800 2360 +O 0 584 940 2580 584 940 2580 +Y 0 448 1520 2420 463 1520 2400 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +iU 0 280 2280 2820 328 957 2140 +aI 0 912 1320 2740 360 2200 2820 +eI 0 464 1980 2520 328 2280 2720 +oI 0 469 864 2440 310 2040 2440 +uI 0 321 965 2377 328 2160 2720 +I^ 1 300 1452 2900 360 2200 2900 +I^ 1 370 1108 2300 420 2189 2560 +I^ 1 400 1804 2540 400 2145 2580 +I^ 0 384 2080 2620 384 2080 2620 +i/ 0 280 2280 2840 240 2339 2840 +@I 0 649 1485 2430 355 2222 2720 +@U 0 584 1400 2460 348 800 2294 +oU 0 496 900 2520 360 800 2140 +iI 0 280 2280 2820 200 2398 2820 +yI 0 336 1780 2540 200 2398 2820 +yU 0 360 1420 2260 290 1023 2220 +ea 0 672 1740 2559 896 1440 2700 +eo 0 555 1521 2547 528 1040 2520 +e[u 0 452 1710 2506 344 800 2360 +Oa 0 668 1092 2668 896 1440 2700 diff --git a/phsource/vowelcharts/ro.png b/phsource/vowelcharts/ro.png new file mode 100644 index 00000000..a02f232d Binary files /dev/null and b/phsource/vowelcharts/ro.png differ diff --git a/phsource/vowelcharts/ru b/phsource/vowelcharts/ru new file mode 100644 index 00000000..61ea5a9a --- /dev/null +++ b/phsource/vowelcharts/ru @@ -0,0 +1,31 @@ +@- 0 525 1441 2340 525 1441 2340 +a 1 658 1408 2460 658 1408 2460 +a 0 925 1320 2700 896 1340 2660 +e 0 376 1980 2680 544 1800 2440 +i 0 360 2120 2680 360 2120 2660 +o 0 454 812 2559 432 824 2520 +u 0 320 900 2360 320 900 2360 +I^ 1 370 1108 2300 420 2189 2560 +I^ 0 384 1960 2500 336 2080 2620 +y 0 340 1680 2320 340 1680 2320 +I# 0 408 1940 2540 408 1960 2540 +I 0 360 2120 2680 360 2120 2660 +I2 0 360 2120 2680 360 2120 2660 +I3 0 360 2120 2680 360 2120 2660 +ja 1 485 1672 2340 795 1122 2580 +ja 0 368 2156 2720 528 1595 2460 +E 0 589 1791 2529 589 1791 2529 +E# 0 440 1791 2529 424 1791 2529 +E2 0 589 1791 2529 589 1791 2529 +E3 0 589 1791 2529 589 1791 2529 +V 0 654 1274 2586 654 1274 2586 +O 0 605 1232 2620 605 1276 2620 +8 0 525 1441 2340 525 1441 2340 +u# 0 352 1674 2372 336 1674 2372 +u" 0 360 1562 2260 290 1023 2220 +ju 0 280 2222 2500 400 1848 2260 +ja# 0 736 1540 2500 752 1540 2500 +V# 0 654 1274 2586 654 1274 2586 +A 0 925 1320 2700 896 1340 2660 +Y 0 448 1660 2528 448 1660 2528 +a# 0 658 1408 2460 658 1408 2460 diff --git a/phsource/vowelcharts/ru.png b/phsource/vowelcharts/ru.png new file mode 100644 index 00000000..2d530565 Binary files /dev/null and b/phsource/vowelcharts/ru.png differ diff --git a/phsource/vowelcharts/rw b/phsource/vowelcharts/rw new file mode 100644 index 00000000..6f5d0603 --- /dev/null +++ b/phsource/vowelcharts/rw @@ -0,0 +1,11 @@ +a 0 896 1440 2710 896 1440 2710 +e 0 456 1980 2540 440 1980 2540 +i 0 280 2280 2840 240 2339 2840 +o 0 454 812 2559 432 824 2520 +u 0 320 740 2400 320 740 2400 +a/ 0 760 1420 2600 736 1380 2540 +a# 0 760 1420 2600 736 1380 2540 +e# 0 456 1980 2540 440 1980 2540 +i# 0 280 2280 2840 240 2339 2840 +o# 0 454 812 2559 432 824 2520 +u# 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/rw.png b/phsource/vowelcharts/rw.png new file mode 100644 index 00000000..94e25766 Binary files /dev/null and b/phsource/vowelcharts/rw.png differ diff --git a/phsource/vowelcharts/si b/phsource/vowelcharts/si new file mode 100644 index 00000000..446157bd --- /dev/null +++ b/phsource/vowelcharts/si @@ -0,0 +1,16 @@ +@ 0 584 1440 2460 600 1440 2460 +a 0 728 1300 2595 736 1300 2595 +e 0 584 1820 2560 584 1820 2560 +i 0 296 2220 2880 288 2260 2900 +o 0 512 860 2648 512 860 2648 +u 0 320 940 2360 320 900 2360 +i: 0 280 2280 2840 240 2339 2840 +e: 0 504 1900 2544 496 1920 2552 +E 0 584 1820 2560 584 1820 2560 +&: 0 680 1660 2520 680 1660 2520 +a: 0 784 1180 2680 776 1200 2680 +o: 0 512 860 2648 512 860 2648 +u: 0 320 940 2360 320 900 2360 +aI 0 904 1320 2700 304 2360 2980 +aU 0 830 1364 2440 488 900 2240 +& 0 680 1660 2520 680 1660 2520 diff --git a/phsource/vowelcharts/si.png b/phsource/vowelcharts/si.png new file mode 100644 index 00000000..92c56af1 Binary files /dev/null and b/phsource/vowelcharts/si.png differ diff --git a/phsource/vowelcharts/sk b/phsource/vowelcharts/sk new file mode 100644 index 00000000..91d004d6 --- /dev/null +++ b/phsource/vowelcharts/sk @@ -0,0 +1,18 @@ +@- 0 525 1441 2340 525 1441 2340 +a 1 856 1320 2700 856 1320 2700 +a 0 904 1320 2700 896 1340 2660 +e 0 504 1900 2544 496 1920 2552 +i 0 360 2120 2680 360 2120 2660 +o 0 512 860 2648 512 860 2648 +u 0 344 800 2360 344 800 2360 +i: 0 272 2247 3100 288 2247 3100 +& 0 680 1660 2520 680 1660 2520 +e: 0 584 1820 2560 584 1820 2560 +a: 0 904 1320 2700 896 1340 2660 +o: 0 512 860 2648 512 860 2648 +u: 0 320 740 2400 320 740 2400 +aU 0 847 1383 2510 360 800 2360 +eU 0 460 1929 2512 327 947 2367 +oU 0 496 900 2520 360 800 2140 +aI 0 912 1320 2740 360 2200 2820 +eI 0 608 1800 2529 408 1960 2600 diff --git a/phsource/vowelcharts/sk.png b/phsource/vowelcharts/sk.png new file mode 100644 index 00000000..152949ec Binary files /dev/null and b/phsource/vowelcharts/sk.png differ diff --git a/phsource/vowelcharts/sl b/phsource/vowelcharts/sl new file mode 100644 index 00000000..3b494ca6 --- /dev/null +++ b/phsource/vowelcharts/sl @@ -0,0 +1,13 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 360 2120 2680 360 2120 2660 +o 0 454 812 2559 432 824 2520 +u 0 344 800 2360 344 800 2360 +E 0 720 1760 2420 672 1562 2520 +O 0 536 920 2600 536 920 2600 +i: 0 272 2247 3100 288 2247 3100 +e: 0 584 1820 2560 584 1820 2560 +a: 0 904 1320 2700 896 1340 2660 +o: 0 512 860 2648 512 860 2648 +u: 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/sl.png b/phsource/vowelcharts/sl.png new file mode 100644 index 00000000..3b59cd26 Binary files /dev/null and b/phsource/vowelcharts/sl.png differ diff --git a/phsource/vowelcharts/sq b/phsource/vowelcharts/sq new file mode 100644 index 00000000..9bdb9b77 --- /dev/null +++ b/phsource/vowelcharts/sq @@ -0,0 +1,26 @@ +@ 0 500 1412 2320 500 1412 2340 +a 1 658 1408 2460 658 1408 2460 +a 0 784 1180 2680 776 1200 2680 +e 1 504 1900 2544 496 1920 2552 +e 0 456 1980 2540 440 1980 2540 +i 1 448 1660 2528 448 1660 2528 +i 1 376 1970 2585 376 1970 2585 +i 0 264 2340 2880 240 2339 2860 +u 0 320 740 2400 320 740 2400 +@/ 0 500 1412 2320 500 1412 2340 +V 1 496 1312 2408 496 1312 2408 +V 0 500 1412 2320 500 1412 2340 +I# 0 384 2030 2610 384 2030 2610 +a/ 0 658 1408 2460 658 1408 2460 +A 1 658 1408 2460 658 1408 2460 +A 0 664 1040 2800 648 1060 2840 +E 0 592 1700 2505 592 1700 2505 +E# 0 592 1580 2480 592 1580 2460 +I 0 312 2213 2775 312 2213 2775 +y 0 280 1720 2340 280 1720 2340 +O 1 512 860 2648 512 860 2648 +O 0 536 920 2600 536 920 2600 +aI 0 752 1140 2820 424 2000 2500 +eI 0 536 1800 2540 381 2100 2708 +OI 0 552 940 2656 400 1805 2592 +yE 0 280 1720 2340 584 1820 2560 diff --git a/phsource/vowelcharts/sq.png b/phsource/vowelcharts/sq.png new file mode 100644 index 00000000..6005a776 Binary files /dev/null and b/phsource/vowelcharts/sq.png differ diff --git a/phsource/vowelcharts/sr b/phsource/vowelcharts/sr new file mode 100644 index 00000000..bda09819 --- /dev/null +++ b/phsource/vowelcharts/sr @@ -0,0 +1,21 @@ +@ 0 456 1460 2426 456 1460 2426 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 0 296 2220 2880 288 2260 2900 +o 0 512 860 2648 512 860 2648 +u 0 320 740 2400 320 740 2400 +E 0 584 1820 2560 584 1820 2560 +O 0 536 920 2600 536 920 2600 +i: 0 272 2247 3100 288 2247 3100 +& 0 0 0 0 0 0 0 +e: 0 584 1820 2560 584 1820 2560 +a: 0 904 1320 2700 896 1340 2660 +o: 0 512 860 2648 512 860 2648 +u: 0 320 740 2400 320 740 2400 +aU 0 847 1383 2510 360 800 2360 +oU 0 496 900 2520 360 800 2140 +aI 0 912 1320 2740 360 2200 2820 +@2 0 512 1620 2560 512 1620 2560 +A 0 904 1320 2700 896 1340 2660 +I 0 312 2213 2775 312 2213 2775 +U 0 344 800 2360 344 800 2360 diff --git a/phsource/vowelcharts/sr.png b/phsource/vowelcharts/sr.png new file mode 100644 index 00000000..21ae40a1 Binary files /dev/null and b/phsource/vowelcharts/sr.png differ diff --git a/phsource/vowelcharts/sv b/phsource/vowelcharts/sv new file mode 100644 index 00000000..3590c7c3 --- /dev/null +++ b/phsource/vowelcharts/sv @@ -0,0 +1,20 @@ +@ 0 525 1441 2340 525 1441 2340 +a 1 728 1300 2595 736 1300 2595 +a 0 834 1220 2690 834 1220 2690 +i: 0 280 2255 3030 264 2255 3030 +I 0 360 2120 2680 360 2120 2660 +e: 0 416 2140 2660 416 2140 2660 +E 0 647 1778 2530 647 1778 2530 +E: 0 720 1760 2420 672 1562 2520 +E3 0 680 1660 2520 680 1660 2520 +y: 0 280 1980 2340 280 1980 2340 +y 0 384 1920 2480 384 1920 2440 +Y: 0 480 1560 2420 516 1520 2340 +W 0 587 1500 2300 587 1500 2300 +8 0 496 1040 2560 496 1040 2560 +& 0 736 1540 2500 752 1540 2500 +A: 0 664 1000 2720 656 1040 2640 +O 0 552 860 2660 552 880 2660 +o: 0 454 812 2559 432 824 2520 +U 0 368 800 2660 368 800 2660 +u: 0 320 740 2400 320 740 2400 diff --git a/phsource/vowelcharts/sv.png b/phsource/vowelcharts/sv.png new file mode 100644 index 00000000..8a651ced Binary files /dev/null and b/phsource/vowelcharts/sv.png differ diff --git a/phsource/vowelcharts/sw b/phsource/vowelcharts/sw new file mode 100644 index 00000000..5980c727 --- /dev/null +++ b/phsource/vowelcharts/sw @@ -0,0 +1,12 @@ +@- 0 525 1441 2340 525 1441 2340 +a 0 834 1220 2690 834 1220 2690 +e 0 504 1900 2544 496 1920 2552 +i 0 280 2280 2840 240 2339 2840 +o 0 630 920 2627 616 940 2627 +u 0 360 860 2360 360 860 2360 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +a/ 0 728 1300 2595 736 1300 2595 diff --git a/phsource/vowelcharts/sw.png b/phsource/vowelcharts/sw.png new file mode 100644 index 00000000..25c25148 Binary files /dev/null and b/phsource/vowelcharts/sw.png differ diff --git a/phsource/vowelcharts/ta b/phsource/vowelcharts/ta new file mode 100644 index 00000000..7d2fda9d --- /dev/null +++ b/phsource/vowelcharts/ta @@ -0,0 +1,18 @@ +@ 0 654 1274 2586 654 1274 2586 +a 0 904 1320 2700 896 1340 2660 +e 0 456 1980 2540 440 1980 2540 +i 1 336 2210 2800 336 2210 2760 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +u 0 320 940 2360 320 900 2360 +V 0 695 1316 2500 695 1316 2500 +i: 0 280 2280 2840 240 2339 2840 +I 0 360 2120 2680 360 2120 2660 +e: 0 456 1980 2540 440 1980 2540 +E 0 584 1820 2560 584 1820 2560 +a: 0 834 1220 2690 834 1220 2690 +o: 0 454 812 2559 432 824 2520 +u: 0 320 940 2360 320 900 2360 +aI 0 904 1320 2700 304 2360 2980 +aU 0 830 1364 2440 488 900 2240 +u2 0 320 940 2360 320 900 2360 diff --git a/phsource/vowelcharts/ta.png b/phsource/vowelcharts/ta.png new file mode 100644 index 00000000..1b49a118 Binary files /dev/null and b/phsource/vowelcharts/ta.png differ diff --git a/phsource/vowelcharts/te b/phsource/vowelcharts/te new file mode 100644 index 00000000..43d71382 --- /dev/null +++ b/phsource/vowelcharts/te @@ -0,0 +1,16 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 728 1300 2595 736 1300 2595 +e 0 504 1900 2544 496 1920 2552 +i 0 296 2220 2880 288 2260 2900 +o 0 454 812 2559 432 824 2520 +u 0 320 940 2360 320 900 2360 +V 1 584 1440 2460 600 1440 2460 +V 0 695 1316 2500 695 1316 2500 +i: 0 280 2280 2840 240 2339 2840 +e: 0 456 1980 2540 440 1980 2540 +E 0 584 1820 2560 584 1820 2560 +a: 0 834 1220 2690 834 1220 2690 +o: 0 454 812 2559 432 824 2520 +u: 0 320 940 2360 320 900 2360 +aI 0 912 1320 2740 360 2200 2820 +aU 0 724 1130 2760 472 780 2500 diff --git a/phsource/vowelcharts/te.png b/phsource/vowelcharts/te.png new file mode 100644 index 00000000..2ef2ebe7 Binary files /dev/null and b/phsource/vowelcharts/te.png differ diff --git a/phsource/vowelcharts/tn b/phsource/vowelcharts/tn new file mode 100644 index 00000000..9e3cd7ba --- /dev/null +++ b/phsource/vowelcharts/tn @@ -0,0 +1,20 @@ +@ 1 536 1416 2320 584 1400 2000 +@ 0 536 1420 2420 536 1420 2420 +@- 0 525 1441 2340 525 1441 2340 +a 0 834 1220 2690 834 1220 2690 +e 0 592 1580 2480 592 1580 2460 +i 0 384 2030 2610 384 2030 2610 +o 0 630 920 2627 616 940 2627 +u 0 360 860 2360 360 860 2360 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +I 0 527 1461 2480 527 1461 2480 +I2 0 408 1920 2580 416 1900 2580 +e@ 0 264 2180 3040 488 1700 2600 +E 0 646 1780 2500 646 1780 2500 +A@ 0 775 1067 2800 795 1122 2580 +O 0 512 860 2648 512 860 2648 +U 0 445 902 2620 445 902 2620 diff --git a/phsource/vowelcharts/tn.png b/phsource/vowelcharts/tn.png new file mode 100644 index 00000000..ccef0e5b Binary files /dev/null and b/phsource/vowelcharts/tn.png differ diff --git a/phsource/vowelcharts/tr b/phsource/vowelcharts/tr new file mode 100644 index 00000000..ff59d736 --- /dev/null +++ b/phsource/vowelcharts/tr @@ -0,0 +1,12 @@ +a 0 800 1320 2637 800 1320 2637 +e 0 504 1900 2544 496 1920 2552 +i 0 296 2220 2880 288 2260 2900 +o 0 488 900 2520 488 920 2520 +u 0 344 800 2360 344 800 2360 +E 0 584 1820 2560 584 1820 2560 +O 0 552 860 2660 552 880 2660 +U 0 388 940 2420 394 980 2360 +y 0 280 1980 2340 280 1980 2340 +Y 0 392 1700 2240 392 1700 2240 +I 0 336 2210 2800 336 2210 2760 +W 0 448 1520 2420 463 1520 2400 diff --git a/phsource/vowelcharts/tr.png b/phsource/vowelcharts/tr.png new file mode 100644 index 00000000..213f2eec Binary files /dev/null and b/phsource/vowelcharts/tr.png differ diff --git a/phsource/vowelcharts/vi b/phsource/vowelcharts/vi new file mode 100644 index 00000000..88b6b168 --- /dev/null +++ b/phsource/vowelcharts/vi @@ -0,0 +1,31 @@ +@ 0 500 1412 2320 500 1412 2340 +a 0 841 1409 2550 841 1409 2550 +e 0 456 1980 2540 440 1980 2540 +i 0 312 2300 2820 304 2300 2820 +o 0 424 800 2580 408 780 2600 +u 0 384 736 2760 384 736 2760 +a: 0 864 1280 2700 864 1280 2700 +E 0 735 1760 2420 675 1738 2420 +O 0 664 1000 2720 656 1040 2640 +y 0 304 1560 2340 304 1560 2340 +@: 0 500 1412 2320 500 1412 2340 +aI 0 672 1460 2430 400 2000 2700 +a:I 0 912 1320 2740 360 2200 2820 +@I 0 536 1420 2420 355 2222 2720 +@:I 0 536 1420 2420 355 2222 2720 +eI 0 464 1980 2520 328 2280 2720 +EI 0 680 1800 2440 355 2222 2720 +OI 0 670 946 2620 310 2002 2300 +oI 0 469 864 2440 310 2040 2440 +uI 0 321 965 2377 328 2160 2720 +yI 0 344 1500 2180 328 2160 2720 +aU 0 776 1240 2540 408 700 2240 +a:U 0 830 1364 2440 488 900 2240 +eU 0 460 1929 2512 327 947 2367 +EU 0 645 1705 2520 390 957 2140 +iU 0 280 2280 2820 328 957 2140 +@U 0 525 1441 2340 340 990 2360 +@:U 0 525 1441 2340 340 990 2360 +i@ 0 400 2180 2720 640 1500 2460 +y@ 0 280 1720 2340 448 1520 2420 +u@ 0 430 960 2340 558 1300 2300 diff --git a/phsource/vowelcharts/vi.png b/phsource/vowelcharts/vi.png new file mode 100644 index 00000000..a195a7a6 Binary files /dev/null and b/phsource/vowelcharts/vi.png differ diff --git a/phsource/vowelcharts/wo b/phsource/vowelcharts/wo new file mode 100644 index 00000000..4f0cd47e --- /dev/null +++ b/phsource/vowelcharts/wo @@ -0,0 +1,21 @@ +@ 0 525 1441 2340 525 1441 2340 +a 0 760 1420 2600 736 1380 2540 +e 0 456 1980 2540 440 1980 2540 +i 0 312 2213 2775 312 2213 2775 +o 0 454 812 2559 432 824 2520 +u 0 344 800 2360 344 800 2360 +m- 1 512 1300 2340 472 1100 2130 +m- 0 512 1300 2340 370 1040 2300 +n- 1 496 1512 2380 480 1500 2540 +n- 0 496 1512 2380 380 1780 2540 +N- 0 504 1824 2548 490 2100 2540 +@: 0 525 1441 2340 525 1441 2340 +i: 0 280 2280 2840 240 2339 2840 +e: 0 456 1980 2540 440 1980 2540 +E 0 646 1780 2500 646 1780 2500 +E: 0 646 1780 2500 646 1780 2500 +a: 0 864 1280 2700 864 1280 2700 +O 0 552 860 2660 552 880 2660 +O: 0 552 860 2660 552 880 2660 +o: 0 454 812 2559 432 824 2520 +u: 0 320 860 2360 320 860 2460 diff --git a/phsource/vowelcharts/wo.png b/phsource/vowelcharts/wo.png new file mode 100644 index 00000000..dfaee703 Binary files /dev/null and b/phsource/vowelcharts/wo.png differ diff --git a/phsource/vowelcharts/zh b/phsource/vowelcharts/zh new file mode 100644 index 00000000..f63e9d43 --- /dev/null +++ b/phsource/vowelcharts/zh @@ -0,0 +1,42 @@ +@ 1 544 1220 2520 544 1260 2520 +@ 0 480 1380 2300 520 1380 2300 +a 1 834 1220 2690 834 1240 2900 +a 0 904 1320 2700 896 1340 2660 +i 1 408 1940 2600 408 1940 2600 +i 1 336 2210 2800 336 2210 2760 +i 0 280 2280 2840 240 2339 2840 +o 1 540 896 2632 512 900 2620 +o 0 454 812 2559 544 960 2560 +u 1 328 900 2360 328 900 2360 +u 0 320 740 2400 320 740 2400 +N- 0 525 1900 3200 525 1900 3200 +A 1 775 1067 2800 795 1122 2580 +A 0 784 1180 2680 776 1200 2680 +ai 0 904 1342 2700 440 1969 2500 +Au 0 724 1130 2760 464 780 2500 +@r 0 648 1180 2595 640 1140 2460 +E 0 645 1705 2520 645 1705 2520 +ei 0 536 1800 2540 381 2100 2708 +i[ 0 336 1440 2460 336 1440 2460 +i. 0 336 1740 2560 336 1740 2560 +iA 0 530 1696 2763 784 1180 2680 +iAu 0 546 1957 2374 557 825 2769 +iE 0 320 2204 2780 584 1740 2560 +io 0 420 1400 2500 552 860 2660 +iou 0 332 2299 2760 370 714 2675 +o- 0 520 1160 2440 520 1160 2440 +ou 0 549 1116 2380 384 800 2460 +ong 0 568 900 2860 328 720 2960 +uA 0 447 785 2756 825 1139 2570 +ua 0 668 1092 2668 896 1440 2700 +uai 0 380 751 2667 446 2154 2593 +u@ 0 336 1060 2360 480 1480 2500 +uei 0 471 1006 2416 328 2280 2720 +uo 0 318 650 2470 584 940 2580 +y 1 352 1000 2240 352 1000 2200 +y 0 272 1820 2280 272 1800 2260 +yu 0 272 1720 2340 394 980 2360 +y& 0 280 1720 2340 872 1440 2720 +yE 0 272 1820 2280 584 1740 2560 +y@ 0 272 1800 2280 480 1580 2420 +yi 0 280 1720 2320 296 2280 2780 diff --git a/phsource/vowelcharts/zh.png b/phsource/vowelcharts/zh.png new file mode 100644 index 00000000..62c7dcea Binary files /dev/null and b/phsource/vowelcharts/zh.png differ diff --git a/phsource/vowelcharts/zhy b/phsource/vowelcharts/zhy new file mode 100644 index 00000000..214011de --- /dev/null +++ b/phsource/vowelcharts/zhy @@ -0,0 +1,30 @@ +a 0 658 1408 2460 658 1408 2460 +e 0 720 1760 2420 672 1562 2520 +i 1 384 2030 2610 384 2030 2610 +i 0 280 2280 2840 240 2339 2840 +o 0 552 860 2660 552 880 2660 +u 1 368 880 2440 368 900 2440 +u 0 320 740 2400 320 740 2400 +aa 0 688 1064 2806 672 1100 2806 +aai 0 752 1140 2820 424 2000 2500 +aau 0 724 1130 2760 472 780 2500 +ang 0 637 1416 2431 328 720 2960 +aan 0 688 1064 2806 328 720 2960 +ai 0 649 1485 2430 355 2222 2720 +au 0 736 1460 2500 456 920 2240 +ei 0 464 1980 2520 328 2280 2720 +eng 0 713 1733 2404 328 720 2960 +eu 0 645 1705 2520 390 957 2140 +ing 0 392 2022 2608 352 1740 2500 +iu 0 280 2280 2820 328 957 2140 +ng 0 314 1317 2700 328 720 2960 +oen 0 449 1512 2393 328 720 2960 +oi 0 545 780 2720 310 2002 2500 +ou 0 516 860 2648 312 860 2360 +ong 0 568 900 2860 328 720 2960 +ung 0 568 900 2860 328 720 2960 +ui 0 321 965 2377 328 2160 2720 +oe 0 448 1520 2420 463 1520 2400 +eo 0 488 1160 2540 488 1160 2540 +eoi 0 496 1220 2340 296 2020 2400 +yu 0 280 1720 2340 280 1720 2340 diff --git a/phsource/vowelcharts/zhy.png b/phsource/vowelcharts/zhy.png new file mode 100644 index 00000000..c5b9408b Binary files /dev/null and b/phsource/vowelcharts/zhy.png differ diff --git a/phsource/vowelr/r-voc1 b/phsource/vowelr/r-voc1 new file mode 100644 index 00000000..4c441f58 Binary files /dev/null and b/phsource/vowelr/r-voc1 differ diff --git a/phsource/vweak/@ b/phsource/vweak/@ new file mode 100644 index 00000000..2f072a15 Binary files /dev/null and b/phsource/vweak/@ differ diff --git a/phsource/vweak/a b/phsource/vweak/a new file mode 100644 index 00000000..4219bead Binary files /dev/null and b/phsource/vweak/a differ diff --git a/phsource/vwl_en_us/ai3 b/phsource/vwl_en_us/ai3 new file mode 100644 index 00000000..c7d0250c Binary files /dev/null and b/phsource/vwl_en_us/ai3 differ diff --git a/phsource/vwl_fr/@2r b/phsource/vwl_fr/@2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/_r b/phsource/vwl_fr/_r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/a2r b/phsource/vwl_fr/a2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/aa2r b/phsource/vwl_fr/aa2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/br b/phsource/vwl_fr/br old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/e2r b/phsource/vwl_fr/e2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/e_2r b/phsource/vwl_fr/e_2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ee2r b/phsource/vwl_fr/ee2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/i2r b/phsource/vwl_fr/i2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/j b/phsource/vwl_fr/j old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/o2r b/phsource/vwl_fr/o2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/oo2r b/phsource/vwl_fr/oo2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r b/phsource/vwl_fr/r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r@ b/phsource/vwl_fr/r@ old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r@2 b/phsource/vwl_fr/r@2 old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_ b/phsource/vwl_fr/r_ old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_@ b/phsource/vwl_fr/r_@ old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_a b/phsource/vwl_fr/r_a old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_an b/phsource/vwl_fr/r_an old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_e b/phsource/vwl_fr/r_e old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_i b/phsource/vwl_fr/r_i old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_n b/phsource/vwl_fr/r_n old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_o b/phsource/vwl_fr/r_o old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_u b/phsource/vwl_fr/r_u old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/r_y b/phsource/vwl_fr/r_y old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ra b/phsource/vwl_fr/ra old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/raa b/phsource/vwl_fr/raa old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/re b/phsource/vwl_fr/re old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/re2 b/phsource/vwl_fr/re2 old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ree b/phsource/vwl_fr/ree old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ri b/phsource/vwl_fr/ri old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/rj b/phsource/vwl_fr/rj old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ro b/phsource/vwl_fr/ro old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/roo b/phsource/vwl_fr/roo old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/rr b/phsource/vwl_fr/rr old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ru b/phsource/vwl_fr/ru old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/rw b/phsource/vwl_fr/rw old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/ry b/phsource/vwl_fr/ry old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/tr b/phsource/vwl_fr/tr old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/trr b/phsource/vwl_fr/trr old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/u2r b/phsource/vwl_fr/u2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_fr/y2r b/phsource/vwl_fr/y2r old mode 100755 new mode 100644 diff --git a/phsource/vwl_hi/aa_9 b/phsource/vwl_hi/aa_9 new file mode 100644 index 00000000..212858d4 Binary files /dev/null and b/phsource/vwl_hi/aa_9 differ diff --git a/phsource/vwl_sv/r.wav b/phsource/vwl_sv/r.wav old mode 100755 new mode 100644 diff --git a/phsource/vwl_sv/r_sv b/phsource/vwl_sv/r_sv old mode 100755 new mode 100644 diff --git a/phsource/vwl_sv/r_sv2 b/phsource/vwl_sv/r_sv2 old mode 100755 new mode 100644 diff --git a/phsource/vwl_tn/@ b/phsource/vwl_tn/@ new file mode 100644 index 00000000..2f5f49cc Binary files /dev/null and b/phsource/vwl_tn/@ differ diff --git a/phsource/vwl_tn/I b/phsource/vwl_tn/I new file mode 100644 index 00000000..fceba2c6 Binary files /dev/null and b/phsource/vwl_tn/I differ diff --git a/phsource/vwl_tn/r@ b/phsource/vwl_tn/r@ new file mode 100644 index 00000000..5658a022 Binary files /dev/null and b/phsource/vwl_tn/r@ differ diff --git a/phsource/vwl_tn/rx.wav b/phsource/vwl_tn/rx.wav new file mode 100644 index 00000000..bbee12c7 Binary files /dev/null and b/phsource/vwl_tn/rx.wav differ diff --git a/phsource/vwl_zh/aang b/phsource/vwl_zh/aang old mode 100755 new mode 100644 diff --git a/phsource/x/g3.wav b/phsource/x/g3.wav old mode 100755 new mode 100644 diff --git a/platforms/big_endian/Makefile b/platforms/big_endian/Makefile index 36f0ca11..a81d82a9 100644 --- a/platforms/big_endian/Makefile +++ b/platforms/big_endian/Makefile @@ -1,6 +1,6 @@ CC = gcc -CFLAGS += -g -Wall +CFLAGS += -g3 -Wall -O0 all: espeak-phoneme-data diff --git a/platforms/big_endian/README b/platforms/big_endian/README index 5f5d4381..7889b414 100644 --- a/platforms/big_endian/README +++ b/platforms/big_endian/README @@ -16,7 +16,3 @@ the phoneme data. If it is not present here, find it in the espeak-data directo NOTE: The format of espeak-data/phondata changed in eSpeak version 1.43. The utility has been modified for this. [jonsd] - ---- -To contact the author of these utilities, please send an e-mail to - diff --git a/platforms/riscos/cpp/speak_riscos b/platforms/riscos/cpp/speak_riscos index 80a432f9..78ed6eb1 100644 --- a/platforms/riscos/cpp/speak_riscos +++ b/platforms/riscos/cpp/speak_riscos @@ -57,12 +57,14 @@ extern void RiscosOpenSound(); extern int WcmdqUsed(); extern void FreePhData(); extern void FreeDictionary(); +extern void Write4Bytes(FILE *f, int value); extern int wcmdq_head; extern int wcmdq_tail; extern int current_source_index; FILE *f_text; +FILE *f_wave = NULL; int (* uri_callback)(int, const char *, const char *) = NULL; int (* phoneme_callback)(const char *) = NULL; @@ -74,6 +76,7 @@ char textbuffile[L_tmpnam]; int sample_rate_index; // current value int current_voice_num=0; int n_voice_files = 0; +int n_voice_variant_files = 0; // output sound buffer, 2 bytes per sample static unsigned short SoundBuf[4096]; @@ -82,7 +85,9 @@ static int callback_inhibit = 0; static int more_text=0; #define N_VOICE_NAMES 60 -static char *voice_names[40]; +#define N_VOICE_VARIANT_NAMES 30 +static char *voice_names[N_VOICE_NAMES]; +static char *voice_variant_names[N_VOICE_VARIANT_NAMES]; #define N_STATIC_BUF 8000 static char static_buf[N_STATIC_BUF]; @@ -108,7 +113,7 @@ static const char *help_text = "-p \n" "\t Pitch adjustment, 0 to 99, default is 50\n" "-s \n" -"\t Speed in words per minute 80 to 370, default is 170\n" +"\t Speed in words per minute 80 to 390, default is 170\n" "-v \n" "\t Use voice file of this name from espeak-data/voices\n" "-w \n" @@ -125,9 +130,9 @@ static const char *help_text = "--punct=\"\"\n" "\t Speak the names of punctuation characters during speaking. If\n" "\t = is omitted, all punctuation is spoken.\n" -//"--voices=\n" -//"\t List the available voices for the specified language.\n" -//"\t If is omitted, then list all voices.\n" +"--voices=\n" +"\t List the available voices for the specified language.\n" +"\t If is omitted, then list all voices.\n" "-k \n" "\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" "\t higher values = a pitch increase (try -k20).\n"; @@ -167,6 +172,7 @@ int GetFileLength(const char *filename) void ReadVoiceNames2(char *directory) {//================================== int len; + int path_len; int *type; char *p; _kernel_swi_regs regs; @@ -182,6 +188,8 @@ void ReadVoiceNames2(char *directory) regs.r[5] = sizeof(buf); regs.r[6] = 0; + path_len = strlen(directory); + while(regs.r[3] > 0) { error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ @@ -200,11 +208,25 @@ void ReadVoiceNames2(char *directory) } else { - p = Alloc(len+1); + p = (char *)malloc(len+1); strcpy(p,&buf[20]); - voice_names[n_voice_files++] = p; - if(n_voice_files >= (N_VOICE_NAMES-1)) - break; + + if(strcmp(&directory[path_len-3],".!v")==0) + { + if(n_voice_variant_files >= (N_VOICE_VARIANT_NAMES-1)) + continue; + voice_variant_names[n_voice_variant_files++] = p; + } + else + { + if(n_voice_files >= (N_VOICE_NAMES-1)) + continue; + voice_names[n_voice_files++] = p; + if(strcmp(p,"en")==0) + { + voice_names[n_voice_files++] = "en+f2"; + } + } } } } @@ -214,13 +236,15 @@ void ReadVoiceNames() {//=================== char directory[sizeof(path_home)+10]; - for(n_voice_files=0; n_voice_files= 0) && (voice_num != current_voice_num) && (voice_num < N_VOICE_NAMES)) { @@ -465,7 +568,6 @@ void set_say_options(int reg2, int reg3) option_linelength = 0; option_phonemes = 0; option_waveout = 0; - option_harmonic1 = 8; option_multibyte = 0; // auto option_capitals = 0; option_punctuation = 0; @@ -477,10 +579,13 @@ void set_say_options(int reg2, int reg3) void jsd_swi_functions(int *r) /****************************/ { + espeak_VOICE voice_select; + switch(r[0]) { case 0: /* major version */ - r[0] = 3; + r[0] = 4; + r[1] = 331; break; case 1: /* register user */ @@ -499,6 +604,7 @@ void jsd_swi_functions(int *r) case 5: /* get table of voice names */ r[0] = (int)voice_names; + r[1] = (int)voice_variant_names; break; case 6: /* update voice data, r1 = voice_number */ @@ -514,6 +620,15 @@ void jsd_swi_functions(int *r) // init_voice((char *)r[1]); break; + case 8: + // list voices, r[1] contains optional language name (or "variant") + voice_select.languages = (char *)r[1]; + voice_select.age = 0; + voice_select.gender = 0; + voice_select.name = NULL; + r[0] = (int)espeak_ListVoices(&voice_select); + break; + default: r[0] = 0; r[1] = 0; @@ -629,6 +744,72 @@ void PitchAdjust(int pitch_adjustment) +void DisplayVoices(FILE *f_out, char *language) +{//============================================ + int ix; + const char *p; + int len; + int count; + int scores = 0; + const espeak_VOICE *v; + const char *lang_name; + char age_buf[12]; + const espeak_VOICE **voices; + espeak_VOICE voice_select; + + static char genders[4] = {' ','M','F',' '}; + + if(language[0] == '=') + { + // display only voices for the specified language, in order of priority + voice_select.languages = &language[1]; + voice_select.age = 0; + voice_select.gender = 0; + voice_select.name = NULL; + voices = espeak_ListVoices(&voice_select); + scores = 1; + } + else + { + voices = espeak_ListVoices(NULL); + } + + fprintf(f_out,"Pty Language Age/Gender VoiceName File Other Langs\n"); + + for(ix=0; (v = voices[ix]) != NULL; ix++) + { + count = 0; + p = v->languages; + while(*p != 0) + { + len = strlen(p+1); + lang_name = p+1; + + if(v->age == 0) + strcpy(age_buf," "); + else + sprintf(age_buf,"%3d",v->age); + + if(count==0) + { + fprintf(f_out,"%2d %-12s%s%c %-17s %-11s ", + p[0],lang_name,age_buf,genders[v->gender],v->name,v->identifier); + } + else + { + fprintf(f_out,"(%s %d)",lang_name,p[0]); + } + count++; + p += len+2; + } +// if(scores) +// fprintf(f_out,"%3d ",v->score); + fputc('\n',f_out); + } +} // end of DisplayVoices + + + char *param_string(char **argp) {//============================ char *p; @@ -686,7 +867,6 @@ void command_line(char *arg_string, int wait) option_phonemes = 0; option_waveout = 0; option_quiet = 0; - option_harmonic1 = 8; option_multibyte = 0; // auto option_capitals = 0; option_punctuation = 0; @@ -776,7 +956,13 @@ void command_line(char *arg_string, int wait) strncpy0(command,param_string(&p),sizeof(command)); if(memcmp(command,"compile=",8)==0) { - CompileDictionary(NULL,&command[8],NULL,NULL); + CompileDictionary(NULL,&command[8],NULL,NULL,0); + return; + } + else + if(memcmp(command,"voices",6)==0) + { + DisplayVoices(stdout,&command[6]); return; } else @@ -1075,7 +1261,7 @@ void terminate_module(void) { RiscosCloseSound(); RemoveCallback(); - delete translator; + DeleteTranslator(translator); FreePhData(); } /* end of terminate_module */ diff --git a/platforms/riscos/o/cmhgfile b/platforms/riscos/o/cmhgfile index 68deed6e..ace01af7 100644 Binary files a/platforms/riscos/o/cmhgfile and b/platforms/riscos/o/cmhgfile differ diff --git a/platforms/riscos/s/cmhgfile b/platforms/riscos/s/cmhgfile index 8c3f8ad9..ba4640af 100644 --- a/platforms/riscos/s/cmhgfile +++ b/platforms/riscos/s/cmhgfile @@ -3,7 +3,7 @@ initialisation-code: user_init title-string: Speak -help-string: Speak 3.30 Text to Speech (32 bit) +help-string: Speak 3.40 Text to Speech (32 bit) swi-chunk-base-number: &4ad80 swi-handler-code: swi_handler diff --git a/platforms/windows/Readme.txt b/platforms/windows/Readme.txt new file mode 100644 index 00000000..c418e2ba --- /dev/null +++ b/platforms/windows/Readme.txt @@ -0,0 +1,56 @@ +eSpeak is a compact, multi-language, open source +text-to-speech synthesizer. + +This version is a SAPI5 compatible Windows speech engine +which should work with screen readers such as Jaws, +NVDA, and Window-Eyes. + +There is also a version of eSpeak which can be run as a +command-line program. This is in eSpeak\command-line. +Read docs\commands.html for details. + + + +Voices and Languages +==================== + +The available Voices can be seen as files in the directory + espeak-edit/voices. + +To change which eSpeak Voices are available through +Windows, re-run the installer and specify up to six +Voice files which you want to use. + +The tone of a Voice can be modified by adding a variant +name after the Voice name, eg: + pt+f3 + +The available variants are: +male: +m1 +m2 +m3 +m4 +m5 +female: +f1 +f2 +f3 +f4 +other effects: +croak +wisper + +These variants are defined by text files in + espeak-edit/voices/!v + + +Updates +======= + +The eSpeak project homepage is at: + http://espeak.sourceforge.net/ + +Comments, corrections, and other feedback and assistance +is sought from native speakers of the various languages +because I've no idea how they are supposed to sound :-) + +To make changes to pronunciation rules and exceptions, +or to change the sounds of phonemes, or just to experiment +with speech synthesis, download the "espeakedit" program. + + +License +======= + +This software is licencsed under the GNU General Public License +version3. See file: License.txt. diff --git a/platforms/windows/espeakedit/PAStaticWMME.lib b/platforms/windows/espeakedit/PAStaticWMME.lib old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/ReadMe.txt b/platforms/windows/espeakedit/ReadMe.txt old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/espeakedit.dsp b/platforms/windows/espeakedit/espeakedit.dsp old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/espeakedit.dsw b/platforms/windows/espeakedit/espeakedit.dsw old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/espeakedit.opt b/platforms/windows/espeakedit/espeakedit.opt old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/espeakedit.plg b/platforms/windows/espeakedit/espeakedit.plg old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/mondrian.icns b/platforms/windows/espeakedit/mondrian.icns old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/mondros2.ico b/platforms/windows/espeakedit/mondros2.ico old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/sample.ico b/platforms/windows/espeakedit/sample.ico new file mode 100644 index 00000000..435cca24 Binary files /dev/null and b/platforms/windows/espeakedit/sample.ico differ diff --git a/platforms/windows/espeakedit/sample.rc b/platforms/windows/espeakedit/sample.rc new file mode 100644 index 00000000..2896503f --- /dev/null +++ b/platforms/windows/espeakedit/sample.rc @@ -0,0 +1,32 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: samples/samples.rc +// Purpose: a standard Win32 .rc file for the wxWindows samples +// Author: Vadim Zeitlin +// Modified by: +// Created: 04.08.03 +// RCS-ID: $Id: sample.rc,v 1.2 2003/08/14 14:08:53 VS Exp $ +// Copyright: (c) 2003 Vadim Zeitlin +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// this minimal resource file is all what is needed for most of the wxWindows +// samples + +// note that the icon used by the Explorer (i.e. the programs icon) is the +// first icon in the executable and the icons are sorted both by their order +// (Win9x) and by alphabetically (!) (NT), so put this icon first and give it +// a name starting with "a" +aaaaaaaa ICON "sample.ico" + +// this icon is used with wxFrame::SetIcon() +sample ICON "sample.ico" + +// set this to 1 if you don't want to use manifest resource (manifest resource +// is needed to enable visual styles on Windows XP - see docs/msw/winxp.txt +// for more information) +#define wxUSE_NO_MANIFEST 0 + +// this is not always needed but doesn't hurt (except making the executable +// very slightly larger): this file contains the standard icons, cursors, ... +#include "wx/msw/wx.rc" + diff --git a/platforms/windows/espeakedit/src/StdAfx.h b/platforms/windows/espeakedit/src/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/src/speech.h b/platforms/windows/espeakedit/src/speech.h old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/src/stdint.h b/platforms/windows/espeakedit/src/stdint.h old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/src_copy/StdAfx.h b/platforms/windows/espeakedit/src_copy/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/espeakedit/src_copy/speech.h b/platforms/windows/espeakedit/src_copy/speech.h old mode 100755 new mode 100644 diff --git a/platforms/windows/make_espeak.iss b/platforms/windows/make_espeak.iss old mode 100755 new mode 100644 index 4537832f..0b6c28d4 --- a/platforms/windows/make_espeak.iss +++ b/platforms/windows/make_espeak.iss @@ -2,7 +2,7 @@ [Setup] AppName=eSpeak -AppVerName=eSpeak version 1.45.05 +AppVerName=eSpeak version 1.46.08 AppCopyright=Licensed under GNU General Public License version 3. (See file License.txt for details). WindowVisible=yes @@ -116,9 +116,9 @@ begin Result := 'en'; // Translation from microsoft codes to language codes - // Used to set default voices for inatallation. + // Used to set default voices for installation. case lang_main of - //$02: Result := 'bg'; + $02: Result := 'bg'; $03: Result := 'ca'; $04: Result := 'zh'; $05: Result := 'cs'; @@ -155,6 +155,7 @@ begin $36: Result := 'af'; $39: Result := 'hi'; //$3a: Result := 'mt'; + //$3f: Result := 'kk'; $41: Result := 'sw'; $49: Result := 'ta'; $4b: Result := 'kn'; @@ -226,6 +227,7 @@ begin 'is': value := $40f; 'it': value := $410; 'ka': value := $437; + 'kk': value := $43f; 'kn': value := $44b; 'ko': value := $412; 'lv': value := $426; diff --git a/platforms/windows/make_espeakedit.iss b/platforms/windows/make_espeakedit.iss old mode 100755 new mode 100644 index 581a8c5d..19d31f59 --- a/platforms/windows/make_espeakedit.iss +++ b/platforms/windows/make_espeakedit.iss @@ -1,7 +1,7 @@ [Setup] AppName=eSpeakEdit -AppVerName=eSpeakEdit version 1.45.05 +AppVerName=eSpeakEdit version 1.46.01 DefaultDirName={pf}\eSpeak DefaultGroupName=eSpeak OutputBaseFilename=setup_espeakedit diff --git a/platforms/windows/windows_cmd/!ReadMe.txt b/platforms/windows/windows_cmd/!ReadMe.txt old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/PAStaticWMME.lib b/platforms/windows/windows_cmd/PAStaticWMME.lib old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/StdAfx.cpp b/platforms/windows/windows_cmd/StdAfx.cpp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/StdAfx.h b/platforms/windows/windows_cmd/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/espeak.dsp b/platforms/windows/windows_cmd/espeak.dsp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/espeak.dsw b/platforms/windows/windows_cmd/espeak.dsw old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/src/speech.h b/platforms/windows/windows_cmd/src/speech.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_cmd/src/stdint.h b/platforms/windows/windows_cmd/src/stdint.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/StdAfx.cpp b/platforms/windows/windows_dll/StdAfx.cpp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/StdAfx.h b/platforms/windows/windows_dll/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/espeak.dsp b/platforms/windows/windows_dll/espeak.dsp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/espeak.dsw b/platforms/windows/windows_dll/espeak.dsw old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/src/StdAfx.h b/platforms/windows/windows_dll/src/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/src/speak_lib.h b/platforms/windows/windows_dll/src/speak_lib.h index 7eb464b6..96c16e3b 100644 --- a/platforms/windows/windows_dll/src/speak_lib.h +++ b/platforms/windows/windows_dll/src/speak_lib.h @@ -165,7 +165,7 @@ typedef enum { #ifdef __cplusplus extern "C" #endif -int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); +ESPEAK_API int espeak_Initialize(espeak_AUDIO_OUTPUT output, int buflength, const char *path, int options); /* Must be called before any synthesis functions are called. output: the audio data can either be played by eSpeak or passed back by the SynthCallback function. diff --git a/platforms/windows/windows_dll/src/speech.h b/platforms/windows/windows_dll/src/speech.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_dll/src/stdint.h b/platforms/windows/windows_dll/src/stdint.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/TtsEng.aps b/platforms/windows/windows_sapi/TtsEng.aps old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/TtsEng.h b/platforms/windows/windows_sapi/TtsEng.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/TtsEng.tlb b/platforms/windows/windows_sapi/TtsEng.tlb old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/TtsEng_i.c b/platforms/windows/windows_sapi/TtsEng_i.c old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/resource.h b/platforms/windows/windows_sapi/resource.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/sapi.lib b/platforms/windows/windows_sapi/sapi.lib old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/src/StdAfx.h b/platforms/windows/windows_sapi/src/StdAfx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/src/speech.h b/platforms/windows/windows_sapi/src/speech.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/src/stdint.h b/platforms/windows/windows_sapi/src/stdint.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/stdafx.cpp b/platforms/windows/windows_sapi/stdafx.cpp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/stdafx.h b/platforms/windows/windows_sapi/stdafx.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.cpp b/platforms/windows/windows_sapi/ttseng.cpp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.def b/platforms/windows/windows_sapi/ttseng.def old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.dsp b/platforms/windows/windows_sapi/ttseng.dsp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.dsw b/platforms/windows/windows_sapi/ttseng.dsw old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.idl b/platforms/windows/windows_sapi/ttseng.idl old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttseng.rc b/platforms/windows/windows_sapi/ttseng.rc old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttsengobj.cpp b/platforms/windows/windows_sapi/ttsengobj.cpp old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttsengobj.h b/platforms/windows/windows_sapi/ttsengobj.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttsengobj.rgs b/platforms/windows/windows_sapi/ttsengobj.rgs old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/ttsengver.h b/platforms/windows/windows_sapi/ttsengver.h old mode 100755 new mode 100644 diff --git a/platforms/windows/windows_sapi/version.rc2 b/platforms/windows/windows_sapi/version.rc2 old mode 100755 new mode 100644 diff --git a/platforms/windowsMobile/Info.txt b/platforms/windowsMobile/Info.txt new file mode 100644 index 00000000..fea84ae1 --- /dev/null +++ b/platforms/windowsMobile/Info.txt @@ -0,0 +1,54 @@ +From: http://sourceforge.net/forum/message.php?msg_id=6511989 +//=========================================================== + +RE: ESpeak for Windows Mobile 6? +By: Silas S. Brown (ssb22) - 2009-02-24 10:35 + On Ubuntu 8 there is a package called pocketpc-g++. + +# apt-get install pocketpc-g++ + +Then download eSpeak sources, do "cd src", and make the following changes: +[jonsd NOTE: These changes are now included in eSpeak 1.40.13 and later] + +1. In readclause.cpp, put #ifndef WINCE and #endif around const int wcslen(const wchar_t *str). This is because we will need the wchar functions but we will NOT need that particular one which is already provided by the WinCE library (I don't know why that one is and the others aren't). + +2. In voices.cpp, where it says "dir = opendir(path))", put (char*) before "path" (in WinCE the parameter is not declared as const char* even though it should be, and the cast is needed to get it to compile.) + + +Now type this command: + +make speak CXX=arm-wince-pe-g++ USE_AUDIO="-DNEED_GETOPT -DNEED_WCHAR_FUNCTIONS -DWINCE" LIB_AUDIO= + +(there is nothing after the LIB_AUDIO= parameter) + +This will give you a binary called "speak" which you can copy to the Windows Mobile device. You will also need to set up an espeak-data directory, and compile the dictsource on the device. +[jonsd NOTE: It's OK to use the espeak-data from the standard eSpeak, you don't need to compile it on the Windows Mobile device.] + +Of course the result will not be able to produce any sound, only write it to a file. But that should be good enough for use in other programs, as long as the file does not get too big. + + + +From: http://sourceforge.net/forum/message.php?msg_id=6512189 +//=========================================================== + +By the way, Ubuntu also has a package called pocketpc-cab which can be used to make CAB files that will extract on the PocketPC. + +# apt-get install pocketpc-cab + +For example, to put src/speak onto /bin, and dictsource/ and espeak-data/ directories onto the root directory of the PocketPC, do: + +echo src/speak /bin > espeak-files +find dictsource espeak-data -type f | grep -v /mb | sed -e 's,\(.*\)/[^/]*$,& /\1,' >> espeak-files +pocketpc-cab -p JonD -a eSpeak espeak-files espeak.cab + +Then bluetooth espeak.cab across and you're done (except for running it with the right arguments including data path, compiling dictsource, etc). This is more convenient than trying to copy across the individual files if you don't have ActiveSync or whatever. It should also make for a more convenient distribution. + + +From and email from Silas Brown +//============================= + +By default, GNU C++ for PocketPC compiles code to generate a debug trace file; if you want to turn this off, try running this command on the "speak" binary after compiling: + +python -c 'd=open("speak","rb").read().replace("/temp/wcetrace.log","/notexist/tracelog") ; open("speak","wb").write(d)' + + diff --git a/src/Makefile b/src/Makefile index cc3e105e..a4418432 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,11 +7,11 @@ BINDIR=$(PREFIX)/bin INCDIR=$(PREFIX)/include/espeak LIBDIR=$(PREFIX)/lib -RELEASE = 1.45 -BIN_NAME = speak -BIN2_NAME = espeak -LIB_NAME = libespeak.so -STATIC_LIB_NAME = libespeak.a +RELEASE = 1.46 +SPEAK = speak +ESPEAK = espeak +LIBESPEAK = libespeak.so +STATIC_LIBESPEAK = libespeak.a LIB_VERSION = 1 LIBTAG = $(LIB_VERSION).$(RELEASE) @@ -70,66 +70,63 @@ endif endif endif -speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \ - readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ - synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ - tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp +common_SOURCES = compiledict.cpp dictionary.cpp intonation.cpp \ + klatt.cpp mbrowrap.cpp numbers.cpp readclause.cpp \ + phonemelist.cpp setlengths.cpp sonic.cpp \ + synthdata.cpp synthesize.cpp synth_mbrola.cpp \ + translate.cpp tr_languages.cpp voices.cpp wavegen.cpp -libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \ - readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \ - synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \ - tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \ - espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp +CXXFLAGS=-O2 -Wall -c -SRCS1=$(speak_SOURCES) -OBJS1=$(patsubst %.cpp,%.o,$(SRCS1)) -LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS) - -SRCS2=$(libespeak_SOURCES) -OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2)) -LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread - -SRCS3 = espeak.cpp -OBJS3=$(patsubst %.cpp,%.o,$(SRCS3)) -LIBS3=-lstdc++ -L . -lespeak - -CXXFLAGS=-O2 - - -all: $(BIN_NAME) $(LIB_NAME) $(STATIC_LIB_NAME) $(BIN2_NAME) +CPPFLAGS = -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\" .cpp.o: - $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -pedantic -I. -c -fno-exceptions $< - -$(BIN_NAME): $(OBJS1) - $(CXX) $(LDFLAGS) -o $@ $(OBJS1) $(LIBS1) - -$(BIN2_NAME): $(OBJS3) $(LIB_NAME) - $(CXX) $(LDFLAGS) -o $@ $(OBJS3) $(LIBS3) + # Making $@ + $(CXX) $(CXXFLAGS) $(USE_AUDIO) -I. $(CPPFLAGS) $< +all: $(SPEAK) $(LIBESPEAK) $(STATIC_LIBESPEAK) $(ESPEAK) +speak_SOURCES = speak.cpp $(common_SOURCES) +speak_OBJS = $(patsubst %.cpp,%.o,$(speak_SOURCES)) +speak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS) +$(SPEAK): $(speak_OBJS) + # Making $(SPEAK) + $(CXX) $(LDFLAGS) $(speak_OBJS) $(speak_LIBS) -o $@ +libespeak_SOURCES = speak_lib.cpp $(common_SOURCES) \ + espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp +libespeak_OBJS = $(patsubst %.cpp,x_%.o,$(libespeak_SOURCES)) +libespeak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread +$(LIBESPEAK): $(libespeak_OBJS) + # Making $(LIBESPEAK) + $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIBESPEAK).$(LIB_VERSION) -o $@ \ + $(libespeak_OBJS) $(libespeak_LIBS) + mv $(LIBESPEAK) $(LIBESPEAK).$(LIBTAG) + $(LN_SF) $(LIBESPEAK).$(LIBTAG) $(LIBESPEAK).$(LIB_VERSION) + $(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(LIBESPEAK) x_%.o: %.cpp - $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \ - -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o + $(CXX) $(CXXFLAGS) $(USE_AUDIO) -fpic -fvisibility=hidden \ + -I. -D LIBRARY $(CPPFLAGS) $< -o x_$*.o -$(LIB_NAME): $(OBJS2) - $(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIB_NAME).$(LIB_VERSION) -o $@ \ - $(OBJS2) $(LIBS2) - mv $(LIB_NAME) $(LIB_NAME).$(LIBTAG) - $(LN_SF) $(LIB_NAME).$(LIBTAG) $(LIB_NAME).$(LIB_VERSION) - $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(LIB_NAME) +$(STATIC_LIBESPEAK): $(libespeak_OBJS) + # Making $(STATIC_LIBESPEAK) + $(AR) cqs $(STATIC_LIBESPEAK) $(libespeak_OBJS) -$(STATIC_LIB_NAME): $(OBJS2) - $(AR) cqs $(STATIC_LIB_NAME) $(OBJS2) +espeak_SOURCES = espeak.cpp +espeak_OBJS = $(patsubst %.cpp,%.o,$(espeak_SOURCES)) +espeak_LIBS = -lstdc++ -L . -lespeak +$(ESPEAK): $(espeak_OBJS) $(LIBESPEAK) + # Making $(ESPEAK) + $(CXX) $(LDFLAGS) $(espeak_LIBS) $(espeak_OBJS) -o $@ clean: rm -f *.o *.a *~ distclean: clean - rm -f $(BIN_NAME) - rm -f $(BIN2_NAME) - rm -f $(LIB_NAME)* + rm -f $(SPEAK) + rm -f $(ESPEAK) + rm -f $(LIBESPEAK)* + rm -f $(STATIC_LIBESPEAK) install: all # Create directories @@ -139,13 +136,13 @@ install: all $(MKDIR) $(DESTDIR)$(INCDIR) $(MKDIR) $(DESTDIR)$(DATADIR) # Install espeak executable - $(INSTALL) -m 755 $(BIN2_NAME) $(DESTDIR)$(BINDIR) + $(INSTALL) -m 755 $(ESPEAK) $(DESTDIR)$(BINDIR) # Install shared library - $(INSTALL) -m 755 $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR) + $(INSTALL) -m 755 $(LIBESPEAK).$(LIBTAG) $(DESTDIR)$(LIBDIR) # Install static library - $(INSTALL) -m 755 $(STATIC_LIB_NAME) $(DESTDIR)$(LIBDIR) - $(LN_SF) $(LIB_NAME).$(LIBTAG) $(DESTDIR)$(LIBDIR)/$(LIB_NAME).$(LIB_VERSION) - $(LN_SF) $(LIB_NAME).$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/$(LIB_NAME) + $(INSTALL) -m 755 $(STATIC_LIBESPEAK) $(DESTDIR)$(LIBDIR) + $(LN_SF) $(LIBESPEAK).$(LIBTAG) $(DESTDIR)$(LIBDIR)/$(LIBESPEAK).$(LIB_VERSION) + $(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBESPEAK) # Install development headers $(INSTALL) -pm 644 speak_lib.h $(DESTDIR)$(INCDIR) # Install data files diff --git a/src/compiledata.cpp b/src/compiledata.cpp index 32add637..e84767ab 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -44,6 +44,7 @@ extern void FindPhonemesUsed(void); extern void DisplayErrorFile(const char *fname); extern int utf8_out(unsigned int c, char *buf); +extern void DrawEnvelopes(); char path_source[sizeof(path_home)+20]; @@ -3503,9 +3504,9 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references CompileReport(); report_dict = CompileAllDictionaries(); -#ifdef deleted +//#ifdef deleted DrawEnvelopes(); -#endif +//#endif if(gui_flag) { diff --git a/src/compiledict.cpp b/src/compiledict.cpp index a4b56661..31fffa44 100644 --- a/src/compiledict.cpp +++ b/src/compiledict.cpp @@ -879,6 +879,18 @@ static int group3_ix; +int isHexDigit(int c) +{ + if((c >= '0') && (c <= '9')) + return(c - '0'); + if((c >= 'a') && (c <= 'f')) + return(c - 'a' + 10); + if((c >= 'A') && (c <= 'F')) + return(c - 'A' + 10); + return(-1); +} + + static void copy_rule_string(char *string, int &state) {//=================================================== // state 0: conditional, 1=pre, 2=match, 3=post, 4=phonemes @@ -889,9 +901,11 @@ static void copy_rule_string(char *string, int &state) int ix; int len; char c; + int c2, c3; int sxflags; int value; int literal; + int hexdigit_input = 0; MNEM_TAB *mr; if(string[0] == 0) return; @@ -911,18 +925,38 @@ static void copy_rule_string(char *string, int &state) { literal = 0; c = *p++; + if((c == '0') && (p[0] == 'x') && (isHexDigit(p[1]) >= 0) && (isHexDigit(p[2]) >= 0)) + { + hexdigit_input = 1; + c = p[1]; + p+= 2; + } if(c == '\\') { c = *p++; // treat next character literally +//#ifdef deleted if((c >= '0') && (c <= '3') && (p[0] >= '0') && (p[0] <= '7') && (p[1] >= '0') && (p[1] <= '7')) { // character code given by 3 digit octal value; c = (c-'0')*64 + (p[0]-'0')*8 + (p[1]-'0'); p += 2; } +//endif literal = 1; } - + if(hexdigit_input) + { + if(((c2 = isHexDigit(c)) >= 0) && ((c3 = isHexDigit(p[0])) >= 0)) + { + c = c2 * 16 + c3; + literal = 1; + p++; + } + else + { + hexdigit_input = 0; + } + } if((state==1) || (state==3)) { // replace special characters (note: 'E' is reserved for a replaced silent 'e') diff --git a/src/espeak.cpp b/src/espeak.cpp index b9add838..aa49195d 100644 --- a/src/espeak.cpp +++ b/src/espeak.cpp @@ -313,6 +313,17 @@ static int SynthCallback(short *wav, int numsamples, espeak_EVENT *events) } +static void PrintVersion() +{//======================= + const char *version; + const char *path_data; + espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 0, NULL, espeakINITIALIZE_DONT_EXIT); + version = espeak_Info(&path_data); + printf("eSpeak text-to-speech: %s Data at: %s\n", version, path_data); +} + + + #ifdef NEED_GETOPT struct option { char *name; @@ -352,6 +363,7 @@ int main (int argc, char **argv) {"phonout", required_argument, 0, 0x108}, {"pho", no_argument, 0, 0x109}, {"ipa", no_argument, 0, 0x10a}, + {"version", no_argument, 0, 0x10b}, {0, 0, 0, 0} }; @@ -473,15 +485,10 @@ int main (int argc, char **argv) break; case 'h': - { - const char *version; - const char *path_data; - espeak_Initialize(AUDIO_OUTPUT_SYNCHRONOUS, 0, data_path, espeakINITIALIZE_DONT_EXIT); - version = espeak_Info(&path_data); - printf("\n"); - printf("eSpeak text-to-speech: %s Data at: %s\n%s", version, path_data, help_text); - exit(0); - } + printf("\n"); + PrintVersion(); + printf("%s", help_text); + exit(0); break; case 'k': @@ -599,6 +606,10 @@ int main (int argc, char **argv) option_phonemes = 3; break; + case 0x10b: // -version + PrintVersion(); + exit(0); + default: exit(0); } diff --git a/src/fifo.cpp b/src/fifo.cpp index 39e314d6..bf9cc83f 100644 --- a/src/fifo.cpp +++ b/src/fifo.cpp @@ -60,7 +60,7 @@ static void* say_thread(void*); static espeak_ERROR push(t_espeak_command* the_command); static t_espeak_command* pop(); -static void init(); +static void init(int process_parameters); static int node_counter=0; enum {MAX_NODE_COUNTER=400, INACTIVITY_TIMEOUT=50, // in ms, check that the stream is inactive @@ -75,7 +75,7 @@ void fifo_init() // security pthread_mutex_init( &my_mutex, (const pthread_mutexattr_t *)NULL); - init(); + init(0); assert(-1 != sem_init(&my_sem_start_is_required, 0, 0)); assert(-1 != sem_init(&my_sem_stop_is_acknowledged, 0, 0)); @@ -457,7 +457,7 @@ static void* say_thread(void*) { // no mutex required since the stop command is synchronous // and waiting for my_sem_stop_is_acknowledged - init(); + init(1); // purge start semaphore SHOW_TIME("say_thread > purge my_sem_start_is_required\n"); @@ -569,14 +569,24 @@ static t_espeak_command* pop() } -static void init() +static void init(int process_parameters) { - ENTER("fifo > init"); - while (delete_espeak_command( pop() )) - {} - node_counter = 0; + // Changed by Tyler Spivey 30.Nov.2011 + t_espeak_command *c = NULL; + ENTER("fifo > init"); + c = pop(); + while (c != NULL) { + if (process_parameters && (c->type == ET_PARAMETER || c->type == ET_VOICE_NAME || c->type == ET_VOICE_SPEC)) + { + process_espeak_command(c); + } + delete_espeak_command(c); + c = pop(); + } + node_counter = 0; } + //> //a = 1.0 - rp->b - rp->c; - /* Now convert to antiresonator coefficients (a'=1/a, b'=b/a, c'=c/a) */ /* If f == 0 then rp->a gets set to 0 which makes a'=1/a set a', b' and c' to * INF, causing an audible sound spike when triggered (e.g. apiration with the * nasal register set to f=0, bw=0). diff --git a/src/main.h b/src/main.h old mode 100755 new mode 100644 diff --git a/src/numbers.cpp b/src/numbers.cpp index 16aad777..65c07bcd 100644 --- a/src/numbers.cpp +++ b/src/numbers.cpp @@ -1862,15 +1862,19 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned case NUM_DFRACTION_1: // italian, say "hundredths" if leading zero case NUM_DFRACTION_5: // hungarian, always say "tenths" etc. + case NUM_DFRACTION_6: // kazakh, always say "tenths" etc, before the decimal fraction LookupNum3(tr, atoi(&word[n_digits]), ph_buf, 0,0,0); - if((word[n_digits]=='0') || (decimal_mode == NUM_DFRACTION_5)) + if((word[n_digits]=='0') || (decimal_mode != NUM_DFRACTION_1)) { // decimal part has leading zeros, so add a "hundredths" or "thousandths" suffix sprintf(string,"_0Z%d",decimal_count); if(Lookup(tr, string, buf1) == 0) break; // revert to speaking single digits - strcat(ph_buf,buf1); + if(decimal_mode == NUM_DFRACTION_6) + strcat(ph_out, buf1); + else + strcat(ph_buf, buf1); } strcat(ph_out,ph_buf); n_digits += decimal_count; diff --git a/src/portaudio.h b/src/portaudio.h index 2ab8e02a..24121e0f 100644 --- a/src/portaudio.h +++ b/src/portaudio.h @@ -1,466 +1,6 @@ -// NOTE: Copy this file to portaudio.h in order to compile with V18 portaudio +#if defined(PORTAUDIO_18) +# include "portaudio18.h" +#else +# include "portaudio19.h" +#endif - -#ifndef PORT_AUDIO_H -#define PORT_AUDIO_H - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * $Id: portaudio.h,v 1.5 2002/03/26 18:04:22 philburk Exp $ - * PortAudio Portable Real-Time Audio Library - * PortAudio API Header File - * Latest version available at: http://www.audiomulch.com/portaudio/ - * - * Copyright (c) 1999-2000 Ross Bencina and Phil Burk - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (the "Software"), to deal in the Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * Any person wishing to distribute modifications to the Software is - * requested to send the modifications to the original developer so that - * they can be incorporated into the canonical version. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -typedef int PaError; -typedef enum { - paNoError = 0, - - paHostError = -10000, - paInvalidChannelCount, - paInvalidSampleRate, - paInvalidDeviceId, - paInvalidFlag, - paSampleFormatNotSupported, - paBadIODeviceCombination, - paInsufficientMemory, - paBufferTooBig, - paBufferTooSmall, - paNullCallback, - paBadStreamPtr, - paTimedOut, - paInternalError, - paDeviceUnavailable -} PaErrorNum; - -/* - Pa_Initialize() is the library initialisation function - call this before - using the library. - -*/ - -PaError Pa_Initialize( void ); - -/* - Pa_Terminate() is the library termination function - call this after - using the library. - -*/ - -PaError Pa_Terminate( void ); - -/* - Pa_GetHostError() returns a host specific error code. - This can be called after receiving a PortAudio error code of paHostError. - -*/ - -long Pa_GetHostError( void ); - -/* - Pa_GetErrorText() translates the supplied PortAudio error number - into a human readable message. - -*/ - -const char *Pa_GetErrorText( PaError errnum ); - -/* - Sample formats - - These are formats used to pass sound data between the callback and the - stream. Each device has a "native" format which may be used when optimum - efficiency or control over conversion is required. - - Formats marked "always available" are supported (emulated) by all - PortAudio implementations. - - The floating point representation (paFloat32) uses +1.0 and -1.0 as the - maximum and minimum respectively. - - paUInt8 is an unsigned 8 bit format where 128 is considered "ground" - -*/ - -typedef unsigned long PaSampleFormat; -#define paFloat32 ((PaSampleFormat) (1<<0)) /*always available*/ -#define paInt16 ((PaSampleFormat) (1<<1)) /*always available*/ -#define paInt32 ((PaSampleFormat) (1<<2)) /*always available*/ -#define paInt24 ((PaSampleFormat) (1<<3)) -#define paPackedInt24 ((PaSampleFormat) (1<<4)) -#define paInt8 ((PaSampleFormat) (1<<5)) -#define paUInt8 ((PaSampleFormat) (1<<6)) -#define paCustomFormat ((PaSampleFormat) (1<<16)) - -/* - Device enumeration mechanism. - - Device ids range from 0 to Pa_CountDevices()-1. - - Devices may support input, output or both. - -*/ - -typedef int PaDeviceID; -#define paNoDevice -1 - -int Pa_CountDevices( void ); - -typedef struct -{ - int structVersion; - const char *name; - int maxInputChannels; - int maxOutputChannels; - /* Number of discrete rates, or -1 if range supported. */ - int numSampleRates; - /* Array of supported sample rates, or {min,max} if range supported. */ - const double *sampleRates; - PaSampleFormat nativeSampleFormats; -} -PaDeviceInfo; - -/* - Pa_GetDefaultInputDeviceID(), Pa_GetDefaultOutputDeviceID() return the - default device ids for input and output respectively, or paNoDevice if - no device is available. - The result can be passed to Pa_OpenStream(). - - On the PC, the user can specify a default device by - setting an environment variable. For example, to use device #1. - - set PA_RECOMMENDED_OUTPUT_DEVICE=1 - - The user should first determine the available device ids by using - the supplied application "pa_devs". - -*/ - -PaDeviceID Pa_GetDefaultInputDeviceID( void ); -PaDeviceID Pa_GetDefaultOutputDeviceID( void ); - - - -/* - Pa_GetDeviceInfo() returns a pointer to an immutable PaDeviceInfo structure - for the device specified. - If the device parameter is out of range the function returns NULL. - - PortAudio manages the memory referenced by the returned pointer, the client - must not manipulate or free the memory. The pointer is only guaranteed to be - valid between calls to Pa_Initialize() and Pa_Terminate(). - -*/ - -const PaDeviceInfo* Pa_GetDeviceInfo( PaDeviceID device ); - -/* - PaTimestamp is used to represent a continuous sample clock with arbitrary - start time that can be used for syncronization. The type is used for the - outTime argument to the PortAudioCallback and as the result of Pa_StreamTime() - -*/ - -typedef double PaTimestamp; - -/* - PortAudioCallback is implemented by PortAudio clients. - - inputBuffer and outputBuffer are arrays of interleaved samples, - the format, packing and number of channels used by the buffers are - determined by parameters to Pa_OpenStream() (see below). - - framesPerBuffer is the number of sample frames to be processed by the callback. - - outTime is the time in samples when the buffer(s) processed by - this callback will begin being played at the audio output. - See also Pa_StreamTime() - - userData is the value of a user supplied pointer passed to Pa_OpenStream() - intended for storing synthesis data etc. - - return value: - The callback can return a non-zero value to stop the stream. This may be - useful in applications such as soundfile players where a specific duration - of output is required. However, it is not necessary to utilise this mechanism - as StopStream() will also terminate the stream. A callback returning a - non-zero value must fill the entire outputBuffer. - - NOTE: None of the other stream functions may be called from within the - callback function except for Pa_GetCPULoad(). - -*/ - -typedef int (PortAudioCallback)( - void *inputBuffer, void *outputBuffer, - unsigned long framesPerBuffer, - PaTimestamp outTime, void *userData ); - - -/* - Stream flags - - These flags may be supplied (ored together) in the streamFlags argument to - the Pa_OpenStream() function. - -*/ - -#define paNoFlag (0) -#define paClipOff (1<<0) /* disable default clipping of out of range samples */ -#define paDitherOff (1<<1) /* disable default dithering */ -#define paPlatformSpecificFlags (0x00010000) -typedef unsigned long PaStreamFlags; - -/* - A single PortAudioStream provides multiple channels of real-time - input and output audio streaming to a client application. - Pointers to PortAudioStream objects are passed between PortAudio functions. -*/ - -typedef void PortAudioStream; -#define PaStream PortAudioStream - -/* - Pa_OpenStream() opens a stream for either input, output or both. - - stream is the address of a PortAudioStream pointer which will receive - a pointer to the newly opened stream. - - inputDevice is the id of the device used for input (see PaDeviceID above.) - inputDevice may be paNoDevice to indicate that an input device is not required. - - numInputChannels is the number of channels of sound to be delivered to the - callback. It can range from 1 to the value of maxInputChannels in the - PaDeviceInfo record for the device specified by the inputDevice parameter. - If inputDevice is paNoDevice numInputChannels is ignored. - - inputSampleFormat is the sample format of inputBuffer provided to the callback - function. inputSampleFormat may be any of the formats described by the - PaSampleFormat enumeration (see above). PortAudio guarantees support for - the device's native formats (nativeSampleFormats in the device info record) - and additionally 16 and 32 bit integer and 32 bit floating point formats. - Support for other formats is implementation defined. - - inputDriverInfo is a pointer to an optional driver specific data structure - containing additional information for device setup or stream processing. - inputDriverInfo is never required for correct operation. If not used - inputDriverInfo should be NULL. - - outputDevice is the id of the device used for output (see PaDeviceID above.) - outputDevice may be paNoDevice to indicate that an output device is not required. - - numOutputChannels is the number of channels of sound to be supplied by the - callback. See the definition of numInputChannels above for more details. - - outputSampleFormat is the sample format of the outputBuffer filled by the - callback function. See the definition of inputSampleFormat above for more - details. - - outputDriverInfo is a pointer to an optional driver specific data structure - containing additional information for device setup or stream processing. - outputDriverInfo is never required for correct operation. If not used - outputDriverInfo should be NULL. - - sampleRate is the desired sampleRate. For full-duplex streams it is the - sample rate for both input and output - - framesPerBuffer is the length in sample frames of all internal sample buffers - used for communication with platform specific audio routines. Wherever - possible this corresponds to the framesPerBuffer parameter passed to the - callback function. - - numberOfBuffers is the number of buffers used for multibuffered communication - with the platform specific audio routines. If you pass zero, then an optimum - value will be chosen for you internally. This parameter is provided only - as a guide - and does not imply that an implementation must use multibuffered - i/o when reliable double buffering is available (such as SndPlayDoubleBuffer() - on the Macintosh.) - - streamFlags may contain a combination of flags ORed together. - These flags modify the behaviour of the streaming process. Some flags may only - be relevant to certain buffer formats. - - callback is a pointer to a client supplied function that is responsible - for processing and filling input and output buffers (see above for details.) - - userData is a client supplied pointer which is passed to the callback - function. It could for example, contain a pointer to instance data necessary - for processing the audio buffers. - - return value: - Upon success Pa_OpenStream() returns PaNoError and places a pointer to a - valid PortAudioStream in the stream argument. The stream is inactive (stopped). - If a call to Pa_OpenStream() fails a non-zero error code is returned (see - PaError above) and the value of stream is invalid. - -*/ - -PaError Pa_OpenStream( PortAudioStream** stream, - PaDeviceID inputDevice, - int numInputChannels, - PaSampleFormat inputSampleFormat, - void *inputDriverInfo, - PaDeviceID outputDevice, - int numOutputChannels, - PaSampleFormat outputSampleFormat, - void *outputDriverInfo, - double sampleRate, - unsigned long framesPerBuffer, - unsigned long numberOfBuffers, - PaStreamFlags streamFlags, - PortAudioCallback *callback, - void *userData ); - - -/* - Pa_OpenDefaultStream() is a simplified version of Pa_OpenStream() that opens - the default input and/or output devices. Most parameters have identical meaning - to their Pa_OpenStream() counterparts, with the following exceptions: - - If either numInputChannels or numOutputChannels is 0 the respective device - is not opened. This has the same effect as passing paNoDevice in the device - arguments to Pa_OpenStream(). - - sampleFormat applies to both the input and output buffers. - -*/ - -PaError Pa_OpenDefaultStream( PortAudioStream** stream, - int numInputChannels, - int numOutputChannels, - PaSampleFormat sampleFormat, - double sampleRate, - unsigned long framesPerBuffer, - unsigned long numberOfBuffers, - PortAudioCallback *callback, - void *userData ); - -/* - Pa_CloseStream() closes an audio stream, flushing any pending buffers. - -*/ - -PaError Pa_CloseStream( PortAudioStream* ); - -/* - Pa_StartStream() and Pa_StopStream() begin and terminate audio processing. - Pa_StopStream() waits until all pending audio buffers have been played. - Pa_AbortStream() stops playing immediately without waiting for pending - buffers to complete. - -*/ - -PaError Pa_StartStream( PortAudioStream *stream ); - -PaError Pa_StopStream( PortAudioStream *stream ); - -PaError Pa_AbortStream( PortAudioStream *stream ); - -/* - Pa_StreamActive() returns one (1) when the stream is active (ie playing - or recording audio), zero (0) when not playing, or a negative error number - if the stream is invalid. - The stream is active between calls to Pa_StartStream() and Pa_StopStream(), - but may also become inactive if the callback returns a non-zero value. - In the latter case, the stream is considered inactive after the last - buffer has finished playing. - -*/ - -PaError Pa_StreamActive( PortAudioStream *stream ); - -/* - Pa_StreamTime() returns the current output time in samples for the stream. - This time may be used as a time reference (for example synchronizing audio to - MIDI). - -*/ - -PaTimestamp Pa_StreamTime( PortAudioStream *stream ); - -/* - Pa_GetCPULoad() returns the CPU Load for the stream. - The "CPU Load" is a fraction of total CPU time consumed by the stream's - audio processing routines including, but not limited to the client supplied - callback. - A value of 0.5 would imply that PortAudio and the sound generating - callback was consuming roughly 50% of the available CPU time. - This function may be called from the callback function or the application. - -*/ - -double Pa_GetCPULoad( PortAudioStream* stream ); - -/* - Pa_GetMinNumBuffers() returns the minimum number of buffers required by - the current host based on minimum latency. - On the PC, for the DirectSound implementation, latency can be optionally set - by user by setting an environment variable. - For example, to set latency to 200 msec, put: - - set PA_MIN_LATENCY_MSEC=200 - - in the AUTOEXEC.BAT file and reboot. - If the environment variable is not set, then the latency will be determined - based on the OS. Windows NT has higher latency than Win95. - -*/ - -int Pa_GetMinNumBuffers( int framesPerBuffer, double sampleRate ); - -/* - Pa_Sleep() puts the caller to sleep for at least 'msec' milliseconds. - You may sleep longer than the requested time so don't rely on this for - accurate musical timing. - - Pa_Sleep() is provided as a convenience for authors of portable code (such as - the tests and examples in the PortAudio distribution.) - -*/ - -void Pa_Sleep( long msec ); - -/* - Pa_GetSampleSize() returns the size in bytes of a single sample in the - supplied PaSampleFormat, or paSampleFormatNotSupported if the format is - no supported. - -*/ - -PaError Pa_GetSampleSize( PaSampleFormat format ); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* PORT_AUDIO_H */ diff --git a/src/setlengths.cpp b/src/setlengths.cpp index 519688cb..a36948eb 100644 --- a/src/setlengths.cpp +++ b/src/setlengths.cpp @@ -715,14 +715,14 @@ if(stress <= 1) if(stress >= 7) { // tonic syllable, include a constant component so it doesn't decrease directly with speed - length_mod += 20; + length_mod += tr->langopts.lengthen_tonic; if(emphasized) - length_mod += 10; + length_mod += (tr->langopts.lengthen_tonic/2); } else if(emphasized) { - length_mod += 20; + length_mod += tr->langopts.lengthen_tonic; } if((len = tr->stress_lengths[stress]) == 0) @@ -739,7 +739,8 @@ if(stress <= 1) } } - if(end_of_clause == 2) + + if((end_of_clause == 2) && !(tr->langopts.stress_flags & S_NO_EOC_LENGTHEN)) { // this is the last syllable in the clause, lengthen it - more for short vowels len = (p->ph->std_length * 2); diff --git a/src/speak.cpp b/src/speak.cpp index e74208f4..deccfbf7 100644 --- a/src/speak.cpp +++ b/src/speak.cpp @@ -444,6 +444,8 @@ static void StopSpeak(int unused) signal(SIGINT,StopSpeak); } // end of StopSpeak() + + #ifdef NEED_GETOPT struct option { char *name; @@ -483,6 +485,7 @@ int main (int argc, char **argv) {"phonout", required_argument, 0, 0x108}, {"pho", no_argument, 0, 0x109}, {"ipa", no_argument, 0, 0x10a}, + {"version", no_argument, 0, 0x10b}, {0, 0, 0, 0} }; @@ -601,7 +604,6 @@ int main (int argc, char **argv) init_path(argv[0],data_path); printf("\nspeak text-to-speech: %s Data at: %s\n%s",version_string,path_home,help_text); exit(0); - break; case 'k': option_capitals = atoi(optarg2); @@ -722,6 +724,11 @@ int main (int argc, char **argv) option_phonemes = 3; break; + case 0x10b: // --version + init_path(argv[0],data_path); + printf("speak text-to-speech: %s Data at: %s\n",version_string,path_home); + exit(0); + default: exit(0); } diff --git a/src/speak_riscos.cpp b/src/speak_riscos.cpp deleted file mode 100644 index 78ed6eb1..00000000 --- a/src/speak_riscos.cpp +++ /dev/null @@ -1,1318 +0,0 @@ - -/*************************************************************************** - * Copyright (C) 2005 to 2007 by Jonathan Duddington * - * email: jonsd@users.sourceforge.net * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write see: * - * . * - ***************************************************************************/ - -#define USE_MODULE - -#include -#include -#include -#include -#include -#include "kernel.h" - -#include "speech.h" -#include "speak_lib.h" -#include "phoneme.h" -#include "synthesize.h" -#include "voice.h" -#include "translate.h" - -#define os_X 0x20000 - -// interface to the assembler section -extern "C" { -extern void DMA_Handler(void); - - -// used from the cmhgfile -extern _kernel_oserror *user_init(char *cmd_fail, int podule_base, void *pw); -extern _kernel_oserror *swi_handler(int swi_no, int *r, void *pw); -extern _kernel_oserror *command_handler(char *arg_string, int argc, int cmd_no, void *pw); -extern int callback_handler(_kernel_swi_regs *r, void *pw); -extern int callback_entry(_kernel_swi_regs *r, void *pw); -extern int sound_handler(_kernel_swi_regs *r, void *pw); -extern int sound_entry(_kernel_swi_regs *r, void *pw); - -} - -extern int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume); -extern void RiscosOpenSound(); -extern int WcmdqUsed(); -extern void FreePhData(); -extern void FreeDictionary(); -extern void Write4Bytes(FILE *f, int value); - -extern int wcmdq_head; -extern int wcmdq_tail; -extern int current_source_index; - -FILE *f_text; -FILE *f_wave = NULL; -int (* uri_callback)(int, const char *, const char *) = NULL; -int (* phoneme_callback)(const char *) = NULL; - -int amp = 8; // default - -char path_home[N_PATH_HOME] = ""; -char wavefile[120]; -char textbuffile[L_tmpnam]; -int sample_rate_index; // current value -int current_voice_num=0; -int n_voice_files = 0; -int n_voice_variant_files = 0; - -// output sound buffer, 2 bytes per sample -static unsigned short SoundBuf[4096]; -static void *module_data; -static int callback_inhibit = 0; -static int more_text=0; - -#define N_VOICE_NAMES 60 -#define N_VOICE_VARIANT_NAMES 30 -static char *voice_names[N_VOICE_NAMES]; -static char *voice_variant_names[N_VOICE_VARIANT_NAMES]; - -#define N_STATIC_BUF 8000 -static char static_buf[N_STATIC_BUF]; -static _kernel_oserror errblk; - - - -USHORT voice_pcnt[N_PEAKS+1][3]; - -static const char *help_text = -"\nspeak [options] [\"\"]\n\n" -"-f Text file to speak\n" -//"--stdin Read text input from stdin instead of a file\n\n" -"If neither -f nor --stdin, are spoken, or if none then text is\n" -"spoken from stdin, each line separately.\n\n" -"-a \n" -"\t Amplitude, 0 to 200, default is 100\n" -"-g \n" -"\t Word gap. Pause between words, units of 10mS at the default speed\n" -"-l \n" -"\t Line length. If not zero (which is the default), consider\n" -"\t lines less than this length as end-of-clause\n" -"-p \n" -"\t Pitch adjustment, 0 to 99, default is 50\n" -"-s \n" -"\t Speed in words per minute 80 to 390, default is 170\n" -"-v \n" -"\t Use voice file of this name from espeak-data/voices\n" -"-w \n" -"\t Write output to this WAV file, rather than speaking it directly\n" -"-b\t Input text is 8-bit encoding\n" -"-m\t Interpret SSML markup, and ignore other < > tags\n" -"-q\t Quiet, don't produce any speech (may be useful with -x)\n" -"-x\t Write phoneme mnemonics to stdout\n" -"-X\t Write phonemes mnemonics and translation trace to stdout\n" -//"--stdout Write speech output to stdout\n" -"--compile=\n" -"\t Compile the pronunciation rules and dictionary in the current\n" -"\t directory. = is optional and specifies which language\n" -"--punct=\"\"\n" -"\t Speak the names of punctuation characters during speaking. If\n" -"\t = is omitted, all punctuation is spoken.\n" -"--voices=\n" -"\t List the available voices for the specified language.\n" -"\t If is omitted, then list all voices.\n" -"-k \n" -"\t Indicate capital letters with: 1=sound, 2=the word \"capitals\",\n" -"\t higher values = a pitch increase (try -k20).\n"; - - -int GetFileLength(const char *filename) -{//==================================== - int length=0; - int type; - _kernel_swi_regs regs; - _kernel_oserror *error; - - regs.r[0] = 5; - regs.r[1] = (int)filename; - regs.r[2] = 0; - regs.r[3] = 0; - regs.r[4] = 0; - regs.r[5] = 0; - - error = _kernel_swi(0x20008,®s,®s); - if(error) - return(0); - - type = regs.r[0]; - length = regs.r[4]; - - if(type==2) - return(-2); // a directory - if((type!=1) && (type!=3)) - return(0); /* not a file */ - - return(length); -} /* end of GetFileLength */ - - - -void ReadVoiceNames2(char *directory) -{//================================== - int len; - int path_len; - int *type; - char *p; - _kernel_swi_regs regs; - _kernel_oserror *error; - char buf[80]; - char directory2[sizeof(path_home)+100]; - - regs.r[0] = 10; - regs.r[1] = (int)directory; - regs.r[2] = (int)buf; - regs.r[3] = 1; - regs.r[4] = 0; - regs.r[5] = sizeof(buf); - regs.r[6] = 0; - - path_len = strlen(directory); - - while(regs.r[3] > 0) - { - error = _kernel_swi(0x0c+os_X,®s,®s); /* OS_GBPB 10, read directory entries */ - if((error != NULL) || (regs.r[3] == 0)) - { - break; - } - type = (int *)(&buf[16]); - len = strlen(&buf[20]); - - if(*type == 2) - { - // a sub-directory - sprintf(directory2,"%s.%s",directory,&buf[20]); - ReadVoiceNames2(directory2); - } - else - { - p = (char *)malloc(len+1); - strcpy(p,&buf[20]); - - if(strcmp(&directory[path_len-3],".!v")==0) - { - if(n_voice_variant_files >= (N_VOICE_VARIANT_NAMES-1)) - continue; - voice_variant_names[n_voice_variant_files++] = p; - } - else - { - if(n_voice_files >= (N_VOICE_NAMES-1)) - continue; - voice_names[n_voice_files++] = p; - if(strcmp(p,"en")==0) - { - voice_names[n_voice_files++] = "en+f2"; - } - } - } - } -} - - -void ReadVoiceNames() -{//=================== - char directory[sizeof(path_home)+10]; - - n_voice_files = 0; - n_voice_variant_files = 0; - - sprintf(directory,"%s.voices",path_home); - - ReadVoiceNames2(directory); - - voice_names[n_voice_files] = NULL; - voice_variant_names[n_voice_variant_files] = NULL; -} - - -#ifdef USE_MODULE -char *Alloc(int size) -/*******************/ -{ // version of malloc() for use in RISC_OS module -_kernel_swi_regs regs; - - regs.r[0] = 6; - regs.r[3] = size; - _kernel_swi(0x1e, ®s, ®s); /* OS_Module 6 claim memory */ - - return(char *)regs.r[2]; -} /* end of module_malloc */ - - - -void Free(void *ptr) -/*******************/ -{ // version of free() for use in RISC_OS module -_kernel_swi_regs regs; - - if(ptr == NULL) - return; - - regs.r[0] = 7; - regs.r[2] = (int)(ptr); - _kernel_swi(0x1e, ®s, ®s); /* OS_Module 7 free memory */ -} /* end of Free */ - -#else - -char *Alloc(int size) -{//================== - char *p; - if((p = (char *)malloc(size)) == NULL) - fprintf(stderr,"Can't allocate memory\n"); - return(p); -} - -void Free(void **ptr) -{//================= - if(ptr != NULL) - { - free(ptr); - } -} -#endif - - - - -static int OpenWaveFile(const char *path, int rate) -//================================================= -{ - // Set the length of 0x7fffffff for --stdout - // This will be changed to the correct length for -w (write to file) - static unsigned char wave_hdr[44] = { - 'R','I','F','F',0,0,0,0,'W','A','V','E','f','m','t',' ', - 0x10,0,0,0,1,0,1,0, 9,0x3d,0,0,0x12,0x7a,0,0, - 2,0,0x10,0,'d','a','t','a', 0xff,0xff,0xff,0x7f}; - - if(path == NULL) - return(2); - - if(strcmp(path,"stdout")==0) - f_wave = stdout; - else - f_wave = fopen(path,"wb"); - - if(f_wave != NULL) - { - fwrite(wave_hdr,1,24,f_wave); - Write4Bytes(f_wave,rate); - Write4Bytes(f_wave,rate * 2); - fwrite(&wave_hdr[32],1,12,f_wave); - return(0); - } - return(1); -} // end of OpenWaveFile - - - - -static void CloseWaveFile(int rate) -//================================= -{ - unsigned int pos; - - if((f_wave == NULL) || (f_wave == stdout)) - return; - - fflush(f_wave); - pos = ftell(f_wave); - - fseek(f_wave,4,SEEK_SET); - Write4Bytes(f_wave,pos - 8); - - fseek(f_wave,40,SEEK_SET); - Write4Bytes(f_wave,pos - 44); - - - fclose(f_wave); - f_wave = NULL; - -} // end of CloseWaveFile - - - - -void MarkerEvent(int type, unsigned int char_position, int value, unsigned char *out_ptr) -{//====================================================================================== -// Do nothing in the command-line version. -} // end of MarkerEvent - - -static int WavegenFile(void) -{//========================= - int finished; - unsigned char wav_outbuf[1024]; - - out_ptr = out_start = wav_outbuf; - out_end = wav_outbuf + sizeof(wav_outbuf); - - finished = WavegenFill(0); - - if(f_wave != NULL) - { - fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave); - } - return(finished); -} // end of WavegenFile - - - - -void FillSoundBuf(int size) -{//======================== -// Fill the buffer with output sound - -// size is number of samples*4 - - size = size; - if(size > sizeof(SoundBuf)) - size = sizeof(SoundBuf); - - out_ptr = (unsigned char *)(&SoundBuf[0]); - out_end = (unsigned char *)(&SoundBuf[size]); - WavegenFill(1); -} - - - -int initialise(void) -{//================= - sprintf(path_home,"%s.espeak-data",""); - if(GetFileLength(path_home) != -2) - { - // not found, try the 10 character version of the directory name - sprintf(path_home,"%s.espeak-dat",""); - } - if(GetFileLength(path_home) != -2) - { - // still can't find data directory - sprintf(errblk.errmess,"Speak: Can't find data directory: '%s'\n",path_home); - return(-1); - } - - WavegenInit(22050,0); - LoadPhData(); - SetVoiceStack(NULL); - SynthesizeInit(); - return(0); -} - - - -void speak_text_string(char *data, int terminator, int len, int wait, int voice_num) -/**********************************************************************************/ -/* 'wait' indictes wait until speaking is finished before returning */ -{ - int c; - int ix; - static static_length=0; - static int user_token=0; /* increment for each call of translate() */ - _kernel_swi_regs regs; - - regs.r[0] = (int)callback_entry; - regs.r[1] = (int)module_data; - _kernel_swi(0x5f, ®s, ®s); - - option_endpause = 1; - - if((voice_num >= 0) && (voice_num != current_voice_num) && (voice_num < N_VOICE_NAMES)) - { - SetVoiceByName(voice_names[voice_num]); - WavegenSetVoice(voice); - } - current_voice_num = voice_num; - - /* don't count CR as terminator if length is specified */ - if(len > 0) terminator = 0; - - ix = 0; - if(more_text == 0) - static_length = 0; - else - { - strcat(&static_buf[static_length]," : "); - static_length+=3; - } - - if(terminator == 0) - { - while(((c = data[ix++]) != 0) && (static_length < N_STATIC_BUF-4)) - { - static_buf[static_length++] = c; - if(ix == len) - break; - } - } - else - { - while(((c = data[ix++]) != '\r') && (c != '\n') && (c != 0) && (static_length < N_STATIC_BUF-3)) - { - static_buf[static_length++] = c; - if(ix == len) - break; - } - } - static_buf[static_length] = 0; - - if(option_waveout==0) - { - if(more_text == 0) - { - InitText(0); - RiscosOpenSound(); - more_text = SpeakNextClause(NULL,(void *)static_buf,0); - } - - while(wait) - { - if((more_text==0) && (wcmdq_head == wcmdq_tail)) - break; - - //we need to block to allow the callback handler to run - regs.r[0] = 129; // wait for key press - regs.r[1] = 10; - regs.r[2] = 0; - _kernel_swi(0x06, ®s, ®s); // OS_Byte - } - } - else - { - more_text = 0; - SpeakNextClause(NULL,(void *)static_buf,0); - - for(;;) - { - if(WavegenFile() != 0) - break; // finished, wavegen command queue is empty - - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - SpeakNextClause(NULL,NULL,1); - } - - CloseWaveFile(samplerate); - } - -} /* end of speak_text_string */ - - - - -void speak_file(char *fname) -{//========================= - FILE *f_in; - char buf[120]; - - f_in = fopen(fname,"r"); - if(f_in == NULL) - { - fprintf(stderr,"Can't read file: '%s'",fname); - return; - } - more_text = 1; - - if(option_waveout == 0) - { - RiscosOpenSound(); - SpeakNextClause(f_in,NULL,0); - } - else - { - more_text = 0; - SpeakNextClause(f_in,NULL,0); - - for(;;) - { - if(WavegenFile() != 0) - break; // finished, wavegen command queue is empty - - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - SpeakNextClause(NULL,NULL,1); - } - - CloseWaveFile(samplerate); - } -} - - - -void set_say_options(int reg2, int reg3) -/**************************************/ -/* Sets options from information in 'say' SWI */ -/* R3 bits 0-7 stress indicator character - bit 8 inhibit unpronouncable check */ -{ - option_linelength = 0; - option_phonemes = 0; - option_waveout = 0; - option_multibyte = 0; // auto - option_capitals = 0; - option_punctuation = 0; - option_punctlist[0] = 0; -} /* end of set_say_options */ - - - -void jsd_swi_functions(int *r) -/****************************/ -{ - espeak_VOICE voice_select; - - switch(r[0]) - { - case 0: /* major version */ - r[0] = 4; - r[1] = 331; - break; - - case 1: /* register user */ - break; - - case 2: /* deregister user */ - break; - - case 3: -// r[0] = (int)speech_to_phonemes((char *)r[1]); - break; - - case 4: -// r[0] = reload_word_dict(NULL); - break; - - case 5: /* get table of voice names */ - r[0] = (int)voice_names; - r[1] = (int)voice_variant_names; - break; - - case 6: /* update voice data, r1 = voice_number */ - if(r[1] < N_VOICE_NAMES) - { - SetVoiceByName(voice_names[r[1]]); - current_voice_num = r[1]; - WavegenSetVoice(voice); - } - break; - - case 7: /* load voice data */ -// init_voice((char *)r[1]); - break; - - case 8: - // list voices, r[1] contains optional language name (or "variant") - voice_select.languages = (char *)r[1]; - voice_select.age = 0; - voice_select.gender = 0; - voice_select.name = NULL; - r[0] = (int)espeak_ListVoices(&voice_select); - break; - - default: - r[0] = 0; - r[1] = 0; - break; - } -} /* end of jsd_swi_functions */ - - - - -_kernel_oserror *swi_handler(int swi_no, int *r, void *pw) -/*********************************************************/ -{ - int value; - int q_length; - int speed; - int amp; - value = r[0]; - - switch(swi_no) - { - - case 0: // ready ? - // returns the index into the source text of the currently speaking word - if(current_source_index > 0) - r[1] = current_source_index-1; - else - r[1] = current_source_index; /* source index */ - r[2] = 0; /* source tag */ - r[3] = 0; /* for future expansion */ - r[4] = 0; - r[5] = 0; - - if(wcmdq_head == wcmdq_tail) - { - r[0] = -1; /* ready, or nearly */ - } - else - r[0] = 0; - break; - - case 1: /* restore old sound channel. DO NOTHING */ - break; - - case 2: /* miscellaneous functions */ - jsd_swi_functions(r); - break; - - case 3: /* speak text */ -// _kernel_irqs_on(); - set_say_options(r[2],r[3]); - speak_text_string((char *)r[0],'\r',r[1],0,r[2]); - break; - - case 4: /* speak text and wait */ -// _kernel_irqs_on(); /* enable interrupts */ - set_say_options(r[2],r[3]); - speak_text_string((char *)r[0],'\r',r[1],1,r[2]); - break; - - case 5: /* stop speaking */ - SpeakNextClause(NULL,NULL,2); - more_text = 0; - break; - - case 7: /* pitch */ - // not implemented - break; - - case 8: /* speed */ - speed = (value * 160)/140; - SetParameter(espeakRATE,speed,0); - break; - - case 9: /* word_gap */ - SetParameter(espeakWORDGAP,value,0); - break; - - case 10: /* pitch_range */ - // not implemented - break; - - case 12: /* reset */ - // not implemented - break; - - case 13: /* volume */ - amp = (value*45)/100; - SetParameter(espeakVOLUME,amp,0); - WavegenSetVoice(voice); - break; - } - return(NULL); -} /* end of swi_handler */ - - - -void PitchAdjust(int pitch_adjustment) -{//=================================== - int ix, factor; - - extern unsigned char pitch_adjust_tab[MAX_PITCH_VALUE+1]; - - voice->pitch_base = (voice->pitch_base * pitch_adjust_tab[pitch_adjustment])/128; - - // adjust formants to give better results for a different voice pitch - factor = 256 + (25 * (pitch_adjustment - 50))/50; - for(ix=0; ix<=5; ix++) - { - voice->freq[ix] = (voice->freq2[ix] * factor)/256; - } -} // end of PitchAdjustment - - - -void DisplayVoices(FILE *f_out, char *language) -{//============================================ - int ix; - const char *p; - int len; - int count; - int scores = 0; - const espeak_VOICE *v; - const char *lang_name; - char age_buf[12]; - const espeak_VOICE **voices; - espeak_VOICE voice_select; - - static char genders[4] = {' ','M','F',' '}; - - if(language[0] == '=') - { - // display only voices for the specified language, in order of priority - voice_select.languages = &language[1]; - voice_select.age = 0; - voice_select.gender = 0; - voice_select.name = NULL; - voices = espeak_ListVoices(&voice_select); - scores = 1; - } - else - { - voices = espeak_ListVoices(NULL); - } - - fprintf(f_out,"Pty Language Age/Gender VoiceName File Other Langs\n"); - - for(ix=0; (v = voices[ix]) != NULL; ix++) - { - count = 0; - p = v->languages; - while(*p != 0) - { - len = strlen(p+1); - lang_name = p+1; - - if(v->age == 0) - strcpy(age_buf," "); - else - sprintf(age_buf,"%3d",v->age); - - if(count==0) - { - fprintf(f_out,"%2d %-12s%s%c %-17s %-11s ", - p[0],lang_name,age_buf,genders[v->gender],v->name,v->identifier); - } - else - { - fprintf(f_out,"(%s %d)",lang_name,p[0]); - } - count++; - p += len+2; - } -// if(scores) -// fprintf(f_out,"%3d ",v->score); - fputc('\n',f_out); - } -} // end of DisplayVoices - - - -char *param_string(char **argp) -{//============================ - char *p; - int ix=0; - static char buf[80]; - - p = *argp; - while(*p == ' ') p++; - while(!isspace(*p)) - buf[ix++] = *p++; - buf[ix]=0; - - *argp = p; - return(buf); -} - -int param_number(char **argp) -{//========================== - int value; - char *p; - - p = *argp; - while(*p == ' ') p++; - - value = atoi(p); - while(!isspace(*p)) p++; - *argp = p; - return(value); -} - -void command_line(char *arg_string, int wait) -{//========================================== - - int option_index = 0; - int c; - int value; - int speed; - int amp; - int wordgap; - int speaking = 0; - int flag_stdin = 0; - int flag_compile = 0; - int error; - int pitch_adjustment = 50; - char filename[80]; - char voicename[40]; - char command[80]; - char *p; - int ix; - - voicename[0] = 0; - wavefile[0] = 0; - filename[0] = 0; - option_linelength = 0; - option_phonemes = 0; - option_waveout = 0; - option_quiet = 0; - option_multibyte = 0; // auto - option_capitals = 0; - option_punctuation = 0; - option_punctlist[0] = 0; - - f_trans = stdout; - - p = arg_string; - - for(;;) - { - while(*p==' ') p++; // skip spaces - if(*p == '\r') break; // end of line - - if(*p == '-') - { - // a command line argument - p++; - switch(*p++) - { - case 'b': - option_multibyte = espeakCHARS_8BIT; - break; - - case 'h': - printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); - return; - - case 'k': - option_capitals = param_number(&p); - SetParameter(espeakCAPITALS,option_capitals,0); - break; - - case 'x': - option_phonemes = 1; - break; - - case 'X': - option_phonemes = 2; - break; - - case 'm': - option_ssml = 1; - break; - - case 'p': - pitch_adjustment = param_number(&p); - break; - - case 'q': - option_quiet = 1; - break; - - case 'f': - strncpy0(filename,param_string(&p),sizeof(filename)); - break; - - case 'l': - option_linelength = param_number(&p); - break; - - case 'a': - amp = param_number(&p); - SetParameter(espeakVOLUME,amp,0); - break; - - case 's': - speed = param_number(&p); - SetParameter(espeakRATE,speed,0); - break; - - case 'g': - wordgap = param_number(&p); - SetParameter(espeakWORDGAP,wordgap,0); - break; - - case 'v': - strncpy0(voicename,param_string(&p),sizeof(voicename)); - break; - - case 'w': - option_waveout=1; - strncpy0(wavefile,param_string(&p),sizeof(wavefile)); - break; - - case '-': - strncpy0(command,param_string(&p),sizeof(command)); - if(memcmp(command,"compile=",8)==0) - { - CompileDictionary(NULL,&command[8],NULL,NULL,0); - return; - } - else - if(memcmp(command,"voices",6)==0) - { - DisplayVoices(stdout,&command[6]); - return; - } - else - if(strcmp(command,"help")==0) - { - printf("\nspeak text-to-speech: %s\n%s",version_string,help_text); - return; - } - else - if(memcmp(command,"punct",5)==0) - { - option_punctuation = 1; - if((command[5]=='=') && (command[6]=='"')) - { - ix = 0; - while((ix < N_PUNCTLIST) && ((option_punctlist[ix] = command[ix+7]) != 0)) ix++; - option_punctlist[N_PUNCTLIST-1] = 0; - option_punctuation = 2; - } - SetParameter(espeakPUNCTUATION,option_punctuation,0); - } - else - { - printf("Command not recognised\n"); - } - break; - - default: - printf("Command not recognised\n"); - break; - } - - } - else - { - break; - } - } - - SetVoiceByName(voicename); - - if((filename[0]==0) && (p[0]=='\r')) - { - // nothing to speak - if(option_quiet) - { - SpeakNextClause(NULL,NULL,2); // stop speaking - more_text = 0; - } - } - - if(option_waveout || option_quiet) - { - // write speech to a WAV file - if(option_quiet) - { - OpenWaveFile(NULL,samplerate); - option_waveout = 2; - } - else - { - if(OpenWaveFile(wavefile,samplerate) != 0) - { - fprintf(stderr,"Can't write to output file '%s'\n'",wavefile); - return; - } - } - } - - if(pitch_adjustment != 50) - { - PitchAdjust(pitch_adjustment); - } - WavegenSetVoice(voice); - - if(filename[0]==0) - speak_text_string(p,'\r',0,wait,-1); - else - speak_file(filename); -} - - - -_kernel_oserror *command_handler(char *arg_string, int argc, int cmd_no, void *pw) -/********************************************************************************/ -{ - switch(cmd_no) - { - case 0: /* Say */ - command_line(arg_string,0); // for compatibility with speak V2 - break; - - case 1: /* Sayw ] */ - command_line(arg_string,0); - break; - - } - return(NULL); -} /* end of cmd_handler */ - - -// sound handler data -int current_sound_handler=0; -int prev_sound_handler=0; -int prev_sound_data=0; -int prev_sound_rate=13; -int sound_handler_changed=0; - - -void RiscosCloseSound() -{//==================== -_kernel_swi_regs regs; - if((sound_handler_changed) && (prev_sound_handler != (int)DMA_Handler)) - { - // check whether current handler is ours - regs.r[0]=0; - _kernel_swi(0x40145,®s,®s); - if(regs.r[1] == (int)DMA_Handler) - { - regs.r[0]=1; - regs.r[1]=prev_sound_handler; - regs.r[2]=prev_sound_data; - _kernel_swi(0x40145,®s,®s); // Sound LinearHandler 1 - - // reset to the previous sample rate - regs.r[0]=3; - regs.r[1]=prev_sound_rate; - _kernel_swi(0x40146,®s,®s); // Sound_SampleRate 3 - - current_sound_handler = prev_sound_handler; - sound_handler_changed = 0; - } - } -} // end of RiscosCloseSound - - - -void RiscosOpenSound() -{//=================== - _kernel_swi_regs regs; - - if(current_sound_handler != (int)DMA_Handler) - { - // register the sound handler - regs.r[0]=1; - regs.r[1]=(int)DMA_Handler; - regs.r[2]=(int)module_data; - _kernel_swi(0x40145,®s,®s); // Sound_LinearHandler 1 - prev_sound_handler = regs.r[1]; - prev_sound_data = regs.r[2]; - - // set the sample rate - regs.r[0]=3; - regs.r[1]=sample_rate_index; - regs.r[2]=0; - _kernel_swi(0x40146,®s,®s); // Sound_SampleRate - prev_sound_rate = regs.r[1]; - - current_sound_handler = (int)DMA_Handler; - sound_handler_changed = 1; - } -} // end of RiscosOpenSound - - - - - -int callback_handler(_kernel_swi_regs *r, void *pw) -/*************************************************/ -{ - if(Generate(phoneme_list,&n_phoneme_list,1)==0) - { - more_text = SpeakNextClause(NULL,NULL,1); - } - - if((WcmdqUsed() == 0) && (more_text == 0)) - { - RiscosCloseSound(); - } - callback_inhibit = 0; - - return(1); -} /* end of callback_handler */ - - - -int sound_handler(_kernel_swi_regs *r, void *pw) -/**********************************************/ -{ - int n_queue; - int size; - int *dma_buf; - int x; - int ix; - - module_data = (int *)pw; - dma_buf = (int *)r->r[1]; - size = (r->r[2] - r->r[1])/4; - FillSoundBuf(size); - - for(ix=0; ixr[0] = 0; - if(callback_inhibit == 0) - { - // set a callback either: - // - queue is low and there is more text to be processed - // - queue is empty and no more text, so callback handler will remove the sound handler - if(((n_queue < 20) && (more_text != 0)) || - ((n_queue==0) && (more_text == 0))) - { - callback_inhibit = 1; - r->r[0] = 1; - r->r[1] = (int)pw; - } - } - return(1); -} - - - - -int InitSound16(int sample_rate) -/******************************/ -/* Find sample rate index */ -{ - int current_rate_index; // current value - - int sound_mode; - int sound_config; - int srate; - int n_srix; - int ix; - _kernel_swi_regs regs; - _kernel_oserror *error; - - sound_mode = 0; - regs.r[0] = 0; - error = _kernel_swi(0x40144+os_X,®s,®s); - sound_mode = regs.r[0]; - sound_config = regs.r[1]; - - if((error == NULL) && (sound_mode == 1)) - { - /* 16 bit sound, find sample rate index */ - regs.r[0] = 0; - regs.r[1] = 0; - _kernel_swi(0x40146,®s,®s); - n_srix = regs.r[1]; - - regs.r[0] = 1; - regs.r[1] = 0; - _kernel_swi(0x40146,®s,®s); - current_rate_index = regs.r[1]; // current sample rate index - srate = regs.r[2]; - for(ix=1; ix<=n_srix; ix++) - { - regs.r[0] = 2; - regs.r[1] = ix; - _kernel_swi(0x40146,®s,®s); - srate = regs.r[2]; - if(srate >= (sample_rate*1024)) - { - return(ix); - } - } - } - return(14); // this was the index for 22050 -} // end of InitSound16 - - - -void RemoveCallback() -/*******************/ -{ - _kernel_swi_regs regs; - - regs.r[0] = (int)callback_entry; - regs.r[1] = (int)module_data; - _kernel_swi(0x5f, ®s, ®s); -} - - -void terminate_module(void) -/*************************/ -{ - RiscosCloseSound(); - RemoveCallback(); - DeleteTranslator(translator); - FreePhData(); -} /* end of terminate_module */ - - -void kill_module(void) -/********************/ -{ - _kernel_swi_regs regs; - regs.r[0]=4; - regs.r[1]=(int)"Speak"; - _kernel_swi(0x1e,®s,®s); /* RMKill */ -} - - -_kernel_oserror *user_init(char *cmd_fail, int podule_base, void *pw) -/*******************************************************************/ -{ - _kernel_swi_regs regs; - _kernel_oserror *error; - int param; - - // It seems that the wctype functions don't work until the locale has been set - // to something other than the default "C". Then, not only Latin1 but also the - // other characters give the correct results with iswalpha() etc. - - static char *locale = "ISO8859-1"; - setlocale(LC_CTYPE,locale); - - module_data = pw; - - sample_rate_index = InitSound16(22050); - - if(initialise() < 0) - { - // exit module, errblk.errmess is set by initialise() - errblk.errnum = 0x101; - return(&errblk); - } - - ReadVoiceNames(); - SetVoiceByName("default"); - - for(param=0; paramlangopts),0,sizeof(tr->langopts)); tr->langopts.max_lengthmod = 500; + tr->langopts.lengthen_tonic = 20; tr->langopts.stress_rule = STRESSPOSN_2R; tr->langopts.unstressed_wd1 = 1; @@ -274,11 +275,13 @@ static const unsigned int replace_cyrillic_latin[] = 0x45c,0x107, 0}; // ѓ ѕ ќ + +static const unsigned char ru_vowels[] = {0x10,0x15,0x31,0x18,0x1e,0x23,0x2b,0x2d,0x2e,0x2f, 0xb9,0xc9,0x91,0x8f,0x36,0}; //also kazakh +static const unsigned char ru_consonants[] = {0x11,0x12,0x13,0x14,0x16,0x17,0x19,0x1a,0x1b,0x1c,0x1d,0x1f,0x20,0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2c, 0x73,0x7b,0x83,0x9b,0}; + static void SetCyrillicLetters(Translator *tr) {//=========================================== // character codes offset by 0x420 - static const char ru_vowels[] = {0x10,0x15,0x31,0x18,0x1e,0x23,0x2b,0x2d,0x2e,0x2f,0}; - static const char ru_consonants[] = {0x11,0x12,0x13,0x14,0x16,0x17,0x19,0x1a,0x1b,0x1c,0x1d,0x1f,0x20,0x21,0x22,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2c,0}; static const char ru_soft[] = {0x2c,0x19,0x27,0x29,0}; // letter group B [k ts; s;] static const char ru_hard[] = {0x2a,0x16,0x26,0x28,0}; // letter group H [S Z ts] static const char ru_nothard[] = {0x11,0x12,0x13,0x14,0x17,0x19,0x1a,0x1b,0x1c,0x1d,0x1f,0x20,0x21,0x22,0x24,0x25,0x27,0x29,0x2c,0}; @@ -291,14 +294,14 @@ static void SetCyrillicLetters(Translator *tr) tr->letter_bits_offset = OFFSET_CYRILLIC; memset(tr->letter_bits,0,sizeof(tr->letter_bits)); - SetLetterBits(tr,LETTERGP_A,ru_vowels); + SetLetterBits(tr,LETTERGP_A,(char *)ru_vowels); SetLetterBits(tr,1,ru_soft); - SetLetterBits(tr,2,ru_consonants); + SetLetterBits(tr,2,(char *)ru_consonants); SetLetterBits(tr,3,ru_hard); SetLetterBits(tr,4,ru_nothard); SetLetterBits(tr,5,ru_voiced); SetLetterBits(tr,6,ru_ivowels); - SetLetterBits(tr,LETTERGP_VOWEL2,ru_vowels); + SetLetterBits(tr,LETTERGP_VOWEL2,(char *)ru_vowels); } // end of SetCyrillicLetters @@ -893,6 +896,30 @@ SetLengthMods(tr,3); // all equal } break; + case L('k','k'): // Kazakh + { + static const unsigned char stress_amps_tr[8] = {18,16, 20,21, 20,21, 21,20 }; + static const short stress_lengths_tr[8] = {190,180, 230,230, 0,0, 250,250}; + + tr->letter_bits_offset = OFFSET_CYRILLIC; + memset(tr->letter_bits,0,sizeof(tr->letter_bits)); + SetLetterBits(tr,LETTERGP_A,(char *)ru_vowels); + SetLetterBits(tr,LETTERGP_C,(char *)ru_consonants); + SetLetterBits(tr,LETTERGP_VOWEL2,(char *)ru_vowels); + + SetupTranslator(tr,stress_lengths_tr,stress_amps_tr); + + tr->langopts.stress_rule = 7; // stress on the last syllable, before any explicitly unstressed syllable + tr->langopts.stress_flags = S_NO_AUTO_2 + S_NO_EOC_LENGTHEN; //no automatic secondary stress, don't lengthen at end-of-clause + tr->langopts.lengthen_tonic = 0; + tr->langopts.param[LOPT_SUFFIX] = 1; + + tr->langopts.numbers = NUM_OMIT_1_HUNDRED | NUM_DFRACTION_6 ; + tr->langopts.max_initial_consonants = 2; +SetLengthMods(tr,3); // all equal + } + break; + case L('k','o'): // Korean, TEST { static const char ko_ivowels[] = {0x63,0x64,0x67,0x68,0x6d,0x72,0x74,0x75,0}; // y and i vowels diff --git a/src/translate.cpp b/src/translate.cpp index 731a9e5a..3ac2de4b 100644 --- a/src/translate.cpp +++ b/src/translate.cpp @@ -334,16 +334,16 @@ static unsigned char length_mods_en0[100] = { static unsigned char length_mods_equal[100] = { /* a , t s n d z r N <- next */ - 110,110,110,110,110,110,110,110,110, 110, /* a <- next2 */ - 110,110,110,110,110,110,110,110,110, 110, /* , */ - 110,110,110,110,110,110,110,110,110, 110, /* t */ - 110,110,110,110,110,110,110,110,110, 110, /* s */ - 110,110,110,110,110,110,110,110,110, 110, /* n */ - 110,110,110,110,110,110,110,110,110, 110, /* d */ - 110,110,110,110,110,110,110,110,110, 110, /* z */ - 110,110,110,110,110,110,110,110,110, 110, /* r */ - 110,110,110,110,110,110,110,110,110, 110, /* N */ - 110,110,110,110,110,110,110,110,110, 110 }; // SPARE + 110,120,100,110,110,110,110,110,110, 110, /* a <- next2 */ + 110,120,100,110,110,110,110,110,110, 110, /* , */ + 110,120,100,110,100,110,110,110,100, 110, /* t */ + 110,120,100,110,110,110,110,110,110, 110, /* s */ + 110,120,100,110,110,110,110,110,110, 110, /* n */ + 110,120,100,110,110,110,110,110,110, 110, /* d */ + 110,120,100,110,110,110,110,110,110, 110, /* z */ + 110,120,100,110,110,110,110,110,110, 110, /* r */ + 110,120,100,110,110,110,110,110,110, 110, /* N */ + 110,120,100,110,110,110,110,110,110, 110 }; // SPARE static unsigned char *length_mod_tabs[6] = { diff --git a/src/translate.h b/src/translate.h index 49d8f013..0f0a9826 100644 --- a/src/translate.h +++ b/src/translate.h @@ -355,6 +355,7 @@ typedef struct { #define S_INITIAL_2 0x2000 #define S_NO_AUTO_DIM 0x10000 #define S_HYPEN_UNSTRESS 0x100000 +#define S_NO_EOC_LENGTHEN 0x200000 // bit0=don't stress monosyllables, except at end of clause // bit1=don't set diminished stress, // bit2=mark unstressed final syllables as diminished @@ -373,6 +374,7 @@ typedef struct { // bit18= don't lengthen short vowels more than long vowels at end-of-clause // bit19=stress on final syllable if it has a long vowel, but previous syllable has a short vowel // bit20= hyphenated words, 2nd part is unstressed +// bit21= don't lengthen vowels at end-of-clause int stress_flags; int unstressed_wd1; // stress for $u word of 1 syllable @@ -398,6 +400,7 @@ typedef struct { #define NUM_DFRACTION_3 0x6000 #define NUM_DFRACTION_4 0x8000 #define NUM_DFRACTION_5 0xa000 +#define NUM_DFRACTION_6 0xc000 #define NUM_ORDINAL_DOT 0x10000 #define NUM_NOPAUSE 0x20000 #define NUM_AND_HUNDRED 0x40000 @@ -476,7 +479,8 @@ typedef struct { const unsigned int *replace_chars; // characters to be substitutes const char *ascii_language; // switch to this language for Latin characters int max_lengthmod; - int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character + int lengthen_tonic; // lengthen the tonic syllable + int suffix_add_e; // replace a suffix (which has the SUFX_E flag) with this character } LANGUAGE_OPTIONS; diff --git a/src/wave_pulse.cpp b/src/wave_pulse.cpp index 64e15376..a5db6389 100644 --- a/src/wave_pulse.cpp +++ b/src/wave_pulse.cpp @@ -745,19 +745,32 @@ size_t wave_write(void* theHandler, char* theMono16BitsWaveBuffer, size_t theSiz int wave_close(void* theHandler) { SHOW_TIME("wave_close > ENTER"); + static int aStopStreamCount = 0; - int a_status = pthread_mutex_lock(&pulse_mutex); - if (a_status) { - SHOW("Error: pulse_mutex lock=%d (%s)\n", a_status, __FUNCTION__); - return PULSE_ERROR; - } - - drain(); + // Avoid race condition by making sure this function only + // gets called once at a time + aStopStreamCount++; + if (aStopStreamCount != 1) + { + SHOW_TIME("wave_close > LEAVE (stopStreamCount)"); + return 0; + } - pthread_mutex_unlock(&pulse_mutex); - SHOW_TIME("wave_close (ret)"); + int a_status = pthread_mutex_lock(&pulse_mutex); + if (a_status) + { + SHOW("Error: pulse_mutex lock=%d (%s)\n", a_status, __FUNCTION__); + aStopStreamCount = 0; // last action + return PULSE_ERROR; + } - return PULSE_OK; + drain(); + + pthread_mutex_unlock(&pulse_mutex); + SHOW_TIME("wave_close (ret)"); + + aStopStreamCount = 0; // last action + return PULSE_OK; } //>