Звуковият синтезатор "ГЛАС 1.0" (22.4.2004)

От Тодор "Тош" Арнаудов, 22.4.2004

Въведение

Доц. Георги Тотков от ПУ представи СЛОГ 1.0 - Система за лингвистично осигуряване на говора - пред първокурсниците от специалност Информатика в началото на курса по "Основи на компютърната информатика" през 2003 г. Всички бяхме впечатлени - изговорът се разбираше, и беше интересен начин за запознаване с преподаватля; нещо в говоренето на машината обаче дразнеше слуха и много от нас дори се усмихваха на "прескачането" между звуците.

Стана ми любопитно и забавно, защото бях прилагал номера с налепянето на записи в "детските си игри"; знаех че този начин не може да доведе до качествен - непрекъснат - звук и каква е причината така записан говор да "з-в-у-ч-и н-а-к-ъ-с-а-н-о".

"Синтезно отклонение"

Английският термин за говорещи машини е "Speech Synthesizers", или "Синтезатори на реч".

Какво значи синтезатор?

Според стария Тълковник речник, изд. "Наука и изкуство" 1970 г., който имам под ръка:

Синтез(а) (гр. synthesis) (...) 4. Образуване на една цялост от нейните съставки или съединяване на отделни по-прости единства в по-сложни образувания; съединяване на части; обобщаване; извод. 5. езиков. Последният етап от машинен превод, при който въз основа на предварително обработена информация се изгражда фразата на езика. 6. езиков. Процес на образуване на звукова реч чрез специални акустически устройства.

Според обобщените значения (забележително е, че има синтезатор на реч в речник от 1970 г.) синтезаторът е нещо, което съединява по-прости части, за да получи по-сложни.

Колко прости обаче трябва да бъдат "простите" части на звука, за да се получи качествена сложна част - звукозапис?

"Историческо" отклонение

Първият си "синтезатор на звук" проектирах десет години преди "Глас"; в трети клас, след като съпругът на една учителка по музика бе донесъл музикален синтезатор, за да ни покаже какви чудесии могат да се правят с него.

Беше изумително преживяване, което ме накара да си задам въпроса по какъв начин би могло да се направи подобно устрйство. Бях много горд, че се сетих, макар че знаех че идеята, която ми хрумна беше "трудно осъществима":

Към всеки клавиш на синтезатора да се свърже малък магнетофон със запис на звука, който трябва да звучи при натискане на съответния клавиш, направен на безконечна лента; при натискане на клавиша да се включва магнетофона и да звучи записът, който е направен върху него.

Няколко години по-късно успях да реализирам "изобретението" в последователен вид, като записах "ръчен синтезатор на реч" за касетофон: на една касета се записват звуците, както са от азбуката: продължително изговорени "а-а-а-а-а", "б-б-б-б-б", "в-в-в-в-в", "г-г-г-г" и т.н. (липсваха "дз" и "дж"); след това тези откъси, един по един, се презаписват на друга лента чрез търпеливо сръчно боравене с копчетата.

Получаваше се говор и няма как иначе: като се залепят парчета от говор, се получава... поредица от парчета говор; говорът, създаден по този начин е насечен; инертността на механиката допълнително оставяше празнини между отделните записи; части от предходните записи се изтриваха при запис на следващата; и на всеки е ясно, че "а-а-а-а", "б-б-б-б" и т.н. не звучат по същия начин, както ако са в непрекъснат поток на речта.

Както открих сега - паузите между звуците на речта дразнят слуха повече отколкото непрекъснат звук, макар и с леко "извънземно" звучене. Звукът на говора трябва да бъде непрекъснат и паузи, при изговор на свързана поредица от фонеми, да има само при шумовете; амплитудата на тоналните фонеми не бива да спада до стойности близо до нула и да заглъхва по средата на думата.

Паузата преди да се чуе шум произлиза от устройството на говорния апарат; тя е нужна и защото шумовете имат много по-малка звукова енергия от гласните и ако няма пауза, те не могат да се чуят.

Как тогава работят "истинските" - качествените - синтезатори на човешка реч? Как работят "истинските" електронни музикални синтезатори, в които записите не са направени на множество от безконечни магнитни ленти? Как работят истинските акустични музикални синтезатори - музикални инструменти? Защо при "истинските" инструменти няма "прескачане", а звуците плавно преливат един в друг?

Градивните частици на звука

Понятието "фонема", или дори по-прецизното "алофон", е далеч от същността на истинските градивни частици на звука, който говорния апарат поражда, както нотите не са градивни частици на звукозаписите, което наричаме музика, въпреки че се смята, че записваме музиката с ноти.

Неточността е в това, че и нотите, и алофоните, не означават записи на звуци. Дори със стотици или хиляди записи на реални звуци от речта (495 алофона в СЛОГ) не може да се създаде плавна реч просто със слепване, защото на местата на слепване винаги ще се получава "прескачане".

Езикът и нотите в музиката са заповеди за управление на устройства, които пораждат поток от взаимодействащи си, а не отделни звуци. Човек може да говори и без да пише и да обобщи понятието "фонема"; и да свири (особено ако го прави със собствения си глас), без да обобщи понятието "нота" и да записва музиката на друг носител освен своята "мозъчна памет" за управление на движенията, чрез които свири.

Устройството, на което се дърпа струната или се натиска клавишът, всъщност "съдържа музиката"; неговото действие - поведението му, след като въведем данните, че искаме да изсвири желан тон - описва звука с необходимата разделителна способност на възприятието, така че да го възприемем като музика във всеки момент от възприятието; по-високата разделителна способност на възприятието отговаря на по-прецизно описание на трептенията: с по-висока честота, с по-висока точност на амплитудната характеристика; така че всеки миг от звукозаписа, който слушаме, и който можем да чуем (е с честота в обхвата на слуха ни), да можем да наречем "музика".

Какво се чува между две ноти/фонеми, които прозвучават последователно на една и съща струна/дял на говорен апарат? Между двете фонеми има област от възприятието, в която звукът не е нито на едната нота/фонема, нито на другата, а е съчетание от двата звука.

Музикалният звук не е еднозначно съответен на нотите, с които е описан; говорният апарат също е музикален инструмент, - съвкупност от трептящи системи - за който текстовете са "ноти"; тези "ноти" не са звукозаписи на фонеми, записани на безконечна лента, а заповеди за "свирене". Нотите нареждат на изпълнителя да въздейства на музикалния инструмент, а текстът нарежда на говорителя как да въздейства на говорния си апарат.

Заповедите към говорния апарат биха могли да бъдат от вида:

- стягане/отпускане на гласните струни<
- движение на езика
- отваряне/затваряне на устата
- движение на лицевите мускули
- подаване на енергия (въздух) с различчно налягане (поток)
- намиране на пътища между две състояниия на говорния апарат и постепенно движение по тях чрез стягане, движение на езика и т.н., което синтезаторът може сам да изчисли; състоянита да бъдат многомерни: измерение за гласните струни; измерение за челюстта; измерение за езика; измерение за белите дробове

Важни особености на действителните звукопораждащи устройства е, че действат непрекъснато, защото са инертни; говорният апарат издава звуци през цялото време, докато има енергия - подава се въздух или се движи който и да е мускул, част от него. Говорният апарат има нужда от време, за да сработи, когато налягането на издишвания въздух нараства и челюстта потегля, и от време за да престане да работи, когато подаването на въздух спира и частите на говорния апарат минават от работно в спокойно състояние.

Говорният апарат има нужда от време за преминаване от едно положение в друго, като в междинните положения продължава да издава звук.

"Съвършената говореща машина" би използвала подобен на гореописания модел за пораждане на звук, и би могла да пее, шепти, мяука, кудкудяка и т.н. Когато стигне до паузи, нейното устройство ще я кара да звучи "правилно", без да е необходимо да се описва всичко.

Такъв модел забранява издаването на неестествени звуци и насичане, защото за да стигне от едно място в пространството на състоянията си до друго, машината ще е длъжна да премине през междинните; ако машината е пяла един тон, а пожелае да слезе на по-нисък, то тя ще даде заповед за отпускане на гласните си струни; тази заповед, от своя страна, ще бъде разложена от гласните струни на много заповеди, действащи за кратко време, които ще отпускат струните постепенно, като на всяка стъпка начинът им на звучене ще се променя; промяната ще бъде постепенна, а не рязка.

Трябва да се симулира вдишване и издишване, което за говорещата машина ще представлява подаване на енергия към трептящите системи; в действителните системи е забранено на енергийният поток да "скача", така че той ще трябва да бъде длъжен да променя стойността си достатъчно плавно, като се натрупва и изпразва, подобно на заряд на кондензатор.

Звуците, зададени за изговаряне от такава говореща машина, ще представляват съвкупности от крайни състояния на устата, скорост на движение в пространството на състоянията на говорния апарат; сили на въздействие върху гласните струни между крайните състояния.

Междинните моменти, които при говореща машина, създадена в стила на гореописаната, се пораждат от самосебе си.

Например състояние "отворено А" на такъв синтезатор ще означава, че устата и езика са заели позицията, в която, ако се подаде енергия - въздух - ще прозвучи звук, който наричаме "отворено а". Алофон "Д" значи да си прехапем езика и да не дишаме; ако подадем енергия и държим устата си в това положение, се чува "беззвучно" шумене; ако подадем енергия и в същото време променим състоянието на говорния апарат към такова, което отговаря на изговор на гласна, ще чуем "звучно д"; "звучното д" е преходът между беззвучното "д" и гласната, когато шумовата съставка на "звука на прехапания език" получава енергиен тласък, появява се тонална съставка на "д" и започва да сработва следващата гласна; като границата между "звучното д" и гласната, която следва, не е рязка.

Устройство на "Глас 1.0"

"Глас 1.0" е далеч от пълния целеви модел, описан по-горе.

"Глас 1.0" беше създаден набързо, без в него да бъдат осъществени всички идеи, с цел да "проработи" и да покаже идеите на автора за това как да се направи качествена говореща машина.

Макар че все още е далеч от крайната цел обаче, "Глас" е първият български синтезатор на реч - поне доколкото е известно на неговия автор - в който е осъществена, макар опростено, идеята за използване на гласни струни, вместо на записи на звуци; в "Глас 1.0" се използват звукозаписи за създаване на модел на гласна струна, а не записване на нейно конкретно трептение в продължителен отрязък от време, както е направено в останалите български говорещи машини.

Макар и на ранен етап в разработката на тази насока, говоренето в "Глас 1.0" е построено не от поредица от алофони, - поредица от натискания на копчетата на много магнетофони, на които са записани изговорени звуци - които след това просто да се слепят; в "Глас" на алофоните се гледа като поредица от действия на говорен апарат, зададен чрез трептящи системи; чрез "гласна струна" и "шумящи части", макар опростени.

По този начин е необходимо да се зададат само крайните положения: модел на гласни струни, които при захранване с енергия извеждат чист звук. Гласните струни в "Глас 1.0" са зададени със запис на един период на условна периодична функция (виж по-долу).

В тази версия не е построен енергиен модел на говорния апарат, който да влияе на амплитудната характеристика по време на говоренето и да променя свойствата на гласните струни.

В тази версия не са описани и симулирани свойства на гласните струни, свързани с промяната на честотните им характеристики по време на подаването и освобождаването на енергия, което да предизвика "треперене на гласа", каквото има в реалния говор.

В тази версия гласните струни са записани в "замръзнало" състоние, което се "стопява" и "огъва" по време на преходите, когато гласната струна трябва да престане да издава един тонален звук, - записван например с фонемата "а" - и да започне да издава друг тонален звук - например този, който се записва с фонемата "о".

Класификация на звуците от запис на реч в синтезатора "Глас"

1. Тишина
2. Шум
3. Тон
4. Преходи между тишина, шум и тон.

Тишина е област, в която амплитудата (енергията) на сигнала е под избрано прагово ниво, без значение от честотата и периодичността му. Област с тишина (пауза) има когато говорният апарат е изключен.

Шум е област, в която честотата на сигнала е над избрано прагово ниво и/или липсва периодичност в границите на основните честоти на гласните струни при говор; честотната област на гласните струни на автора на "Глас" бе от 149 Хц (неударено "Е") до 189 Хц (ударено "У") //111 Хц., носов звук "М"

Шумът представлява спектър от честоти; шумът не се извежда от гласните струни, затова той се обработва по различен начин от тях. В "Глас 1.0" шумът се задава като реален запис. При по-добро изпълнение шумът би трябвало да се зададе с честотен спектър и "случаен закон", по който честотите от този спектър да взимат надмощие в получавания на изхода звук.

Описанието на шума като честотен спектър ще позволи пораждане на звученето на шумовите звуци по време на междинните етапи, между изговор на шум и тон; в тези етапи е необходимо да се поражда "сработване на гласна струна" успоредно със спадане на амплитудата на шума, и двете части да се смесят като два отделни звука.

Тон е област, в която сигналът е периодичен, с устойчива форма на трептението в честотната област на гласните струни за достатъчно дълъг откъс - с определена точност за "устойчивост" - и честотата му е в зададени граници.

Продължителността на тоновете може да се разтяга произволно, поради периодичността им; шумовете в "Глас 1.0" не могат да се разтягат, тъй като не се пораждат с честотен спектър.

Чрез промяна на продължителността на тоновете - промяна на броя на пълните трептения на гласните струни и на продължителността на преходите между два последователни тона - е осъществена възможност за забавено/ускорено говорене, при което тоновете звучат по-дълго/по-кратко.

Преходите са области, в които сигналът изменя честотата и/или амплитудата и/или формата си със скорост и/или по начин над определено прагово ниво; или в които особеностите на сигнала не позволяват той да бъде определен в някой от останалите три класа.

"Глас 1.0" поражда преходи в областите между два тона, като използва модела на състоянието на гласната струна на двата тона - един-единствен период на условна периодична функция, произведена от гласната струна - и коефициент на преход.

Какво представлява преходът в "Глас"

Дадени са две графики на функции, представляващи модел на гласна струна - в общия случай два много кратки записа, с продължителност по-малка от 0.01 с. Да се направи така, че графиката на първата функция да се превърне в графиката на втората функция най-малко за една междинна стъпка; т.е. първата функция да се "изроди" в другата.

Преди да мина на същността на прехода в "Глас", бих искал да отбележа, че начинът напомня за ефекта на плавно превръщане на едно изображение в друго, чрез поставяне на "ключови точки", които определят пътя, през който трябва да мине своеобразната функция на първото изображение, за да стигне до второто изображение, като през този път изображението не е нито първото, нито второто, а смесица, съдържаща особености и на двете. Този ефект изглежда най-добре когато се използват подобни изображения - и в двете изображения да има части, които да могат да бъдат възприети от наблюдателя например като очи, ако превръщането е между лица на хора. По същия начин преходът между звуци е най-"приятен" когато двете функции имат еднаква, или почти еднаква основна честота, и се променят само обертоновете.

Заб. Ефектът на плавно превръщане на едно изображение в друго стана широкоизвестен през 1988 г. чрез филма "Willow".

Не съм правил опити да приложа метода за звуков преход за пораждане на плавни преходи между изображения, но предполагам че резултатът ще бъде интересен за наблюдаване и си заслужава да се опита.

Същността на прехода, при линейна скорост на превръщане (само тя е изпълнена, с цел опростяване на задаването й), е следната:

1. Задава се за колко стъпки - периода на условна променяща се функция - трябва да се извърши превръщането на едната функция в другата и се изчислява стъпка за промяна на периода.

2. На всяка стъпка се изчисляват "разтегнати"/"свити" графики на настоящото междинно състояние на първата и втората функция; ако втората функция има по-голям период от първата, то първата трябва на всяка следваща стъпка да се "разтяга" все повече; а втората трябва в началото да бъде "свита" почти до дължината на периода на първата, а след това да се "разтяга", така че в края на превръщането да бъде самата себе си.

3. Чрез 2. се получават две нови функции с еднакъв период, които се смесват; при смесването се използват два коефициента на влияние, които определят каква част от изходния сигнал да се вземе от всяка от двете функции; коефициентът на влияние на първата функция намалява от 1 до 0 (влиянието й става нулево, когато вече се е превърнала във втората функция), а на втората се увеличава от 0 до 1 (в началото звучи само първата функция).

Примери за преходи между функции.


Нереалистично удължен генериран преход между ударено "а" и ударено "е"; в случая двете функции имат еднакъв период - 158 отчета.


Преход между ударено "а" (период 158 отчета) и честотния спектър на "ч" зададен като периодична функция с период 1724, който звучи като забавящ скоростта си парен двигател

Описание на гласните струни и шумовете

В "Глас 1.0" се използват няколко равнища на задаване на заповеди за управление на пораждането на звук.

Първото равнище задава наличните гласни струни и шумове.

1 1.wav N
2 2.wav T 5 0.4
3 3.wav N
4 4.wav N
5 5.wav T 7 0.45
6 6.wav N
7 7.wav T 9 0.3
8 8.wav T 5 0.4
9 9-4.wav T 7 0.3
10 10.wav T 7 0.4
11 11.wav T 4 0.9
12 12.wav N
13 13.wav N	
14 14.wav N
15 15.wav N
16 16.wav T 4 0.4
17 17.wav T 6 0.4
18 18.wav N
19 19.wav T 7 0.3
20 20.wav N
21 21.wav T 5 0.4
22 22.wav N
23 23.wav N
24 24.wav N
25 25.wav T 3 0.4
26 26.wav N
27 27.wav N
28 28.wav T 5 0.3
29 29.wav N
30 30.wav N
31 31.wav N
32 32.wav N
33 33.wav T 2 0.3
34 34.wav N
35 35.wav T 3 0.4
36 36.wav T 6 0.4
37 37.wav T 7 0.4
38 38.wav T 8 0.4
39 39.wav T 6 0.4
40 40.wav T 5 0.4
41 41.wav N
42 42.wav N
43 43.wav N
44 44.wav N
45 45.wav N
46 46.wav N
47 47.wav N
48 48.wav N
49 49.wav N
50 5.wav T 5 0.6
51 51.wav T 12 0.3
52 52.wav T 8 0.3
53 53.wav T 6 0.3
54 54.wav T 8 0.3
55 55.wav T 8 0.3
56 56.wav T 8 0.3
57 57.wav N
58 5.wav T 3 0.4
60 41.wav T 1 0.1
61 61.wav T 1 0.1
62 58.wav T 7 0.3
63 59.wav T 7 0.3
64 60.wav T 3 0.3
65 62.wav T 3 0.3
-1
Първото число е име на заповедта при обръщенията към нея от вътрешни функции на синтезатора или при режим на ръчно задаване на заповеди към синтезатора; използва се номер за краткост и простота. Следва име на файл във формат Windows PCM, 16-bit mono; записите трябва да бъдат записани на една и съща честота. За гласовия модел на автора е използвана 22050 Хц.

"Глас 1.0" работи с два вида записи: ШУМ (N, Noise) и ТОН (T, Tone) - гласна струна. При среща на заповед с номер отговарящ на запис "шум", звукозаписът се залепя, по подразбиране, веднъж във вида, в който е записан; между него и съседните звуци не се пораждат преходи, защото този вид преходи са амплитудни, а амплитудните характеристики не са развити в тази версия. Паузите (тишината) са зададени като записи без трептения, в клас шум:

31 31.wav - 882 отчета (0.04 с)
32 32.wav - 2205 (0.1 с)
43 43.wav - 220 отчета (0.01 с)
48 48.wav - "празен запис" (0 с)

Заповедите тип "Тон" - гласни струни - се задават с брой трептения на гласната струна и с коефициент на преход. При изчисляване на преход между два тона, броят на стъпките, за които ще се извърши той, е равен на 1/ средноаритметичното на коеф. на преход на двата тонални записа.

Коефициентите на преход се задават отделно за всяка заповед, но е осигурена възможност да се зададе един и същи коеф. на преход за всички тонални заповеди (макар че по този начин се губи разликата в продължителността на краткото и, използвано в двугласните, спрямо самостоятелните гласни); има възможност да се задава коеф. на умножение на описаните в списъка със заповеди коефициенти на прехода, което променя скоростта на "опъване" на гласните струни между два тона, което звучи като "извиване" на гласа с различна скорост.

Ако желаем, можем да задаваме един и същи звукозапис под много имена (номера), с различни настройки: запис на шум може да се зададе като тон, - особен вид гласна струна - така че да се пораждат звучащи причудливо преходи с него; може един тон да се зададе няколко пъти с различен брой периода и различни коефициенти на прехода. В следващото ниво на описание на заповедите на "Глас 1.0" например е съобразено, че двугласните, записвани "я","ю","ьо","й+гласна" не звучат по същия начин както "ия", "иу", "ио"; частицата "и" в първите е по-кратка, отколкото в самостоятелното "и", затова за тях е описано трептение на същата гласна струна, но по-малък брой пъти.

"Глас" може да бъде използван за свързване на произволни звуци и последващо възпроизвеждане на звуци, въз основа на език за заповеди.

За възпроизвеждане на реч от текст, в каквато насока бе развит синтезаторът, записите, трябва да бъдат извлечени от реч. Няколко десетки записа са достатъчни, за да се поражда разбираема реч от произволни текстове на български. [още не са махнати излишните, а и може да има излишество, за да се експериментира от потребителя]

В първата работна версия на "Глас", която можеше да изговори всички фонеми (без ударения и редукции) от българския, бяха използвани само 47 записа; при това от тях 3 са паузи; има 4 записа на гласни, които след това са извлечени наново като старите не са изтрити; 4 записа на "Д" от които са направени два вида "д". За някои шумови съгласни са правени по два записа: "дълъг" - когато отляво или отдясно на съгласната има пауза или друга шумова съгласна - и "къс" - за останалите случаи; разликата между двете е в паузата преди шума, която при "по-добра воля за пестеливост" би могла да се опише чрез добавяне на пауза вместо с отделен запис, с което да се спестят още няколко записа; ако искаме да използваме и ударени гласни, е необходимо да добавим само още 6 записа: по един за а, е, и, о, у, ъ; редуцираните от ударението гласни [цитат: публикацията за СЛОГ 1.0], които са взети предвид в СЛОГ 1.0, се описват с още 5 записа на модел на гласна струна.

Записите с ударения и редукция са направени в "Глас 1.0", но са използвани само опитно, защото системата няма собствени средства за намиране на мястото на ударението. Работи се по свързване на СЛОГ - с мощните му възможности за откриване на ударенията - и звуковия синтезатор на "Глас".

Извличане на модел на човешки глас

Извличането се извършва с програма за обработка на звук (аз използвах "Cool Edit 96") и микрофон; записите на своя глас правих при честота на дискретизация 22050 Хц при 16 бита на отчет, което обхваща с приемливо качество и най-високите "съскащи" честоти.

Тъй като разработвах програмата "в движение" и в известна степен на шега, и поради малкия брой на необходими гласни струни и шумове, натрупването на звуците се получаваше без да е необходима специална система, освен "пълно изчерпване"; исках да прозвучат думи, за които все още нямах звуци; изговарях думи, в които се съдържат желаните звуци, и от тях извличах записи на шумове (важно е да се запази паузата в началото им), или модели на "гласни струни" - един период от условна периодична функция. Някои фонеми описах с два звука: "Р" е съставено от шум с дължина 714 отчета, след който звучи тон с период 171 отчета; "Д" е съставен в два варианта: с два записа на шум, и със запис на шум и тон; наличието на тон позволява звукът да бъде удължаван и да се поражда преход.

За тоналните звуци, от моя глас извличах условни периодични функции с период между 200 отчета (111 Хц, "М") и 148 отчета (149 Хц, неударено "Е"). Доскоро се разработваше опитна програма, която успяваше автоматично да открива периодични функции в някои случаи [виж приложението, ако е включено].

Извличането става от осцилограмата на записа, като се търси мястото, където условната периодична функция на тона (с честота, при моя глас, 100-200 Хц) има най-устойчива амплитуда - говорният апарат е в най-устойчиво състояние. От там се извлича един-единствен период, който се записва като звуков файл.

За да се провери дали периодът е извлечен точно, размножавах единичния период и го прослушвах; когато периодът не е извлечен точно, се получава паразитно бръмчене или свистене; точно извлечен период звучи чисто.

Разлика в извличането с един-два отчета не е съществена, но е желателно - по определението за периодична функция - левият край на графиката да съвпада по стойност с десния максимално точно (в действителни записи функцията на звука не е строго периодична, математически, а "размито периодична").

Абсолютните стойности на амплитудите в извлечените "гласни струни" са важни, - енергията (амплитудата) на периодичната функция на носовите съгласни "н" и "м" в реални записи на говор например е много по-ниска, отколкото на гласните; но не са критични. В тази версия на "Глас" не е извършено автоматично нормализиране по амплитуда.

Второ равнище на езика за заповеди

Второ равнище на езика за задаване на заповеди за управление на синтезатора

Списък от вида:

  1 31
- 1 31
( 1 31
) 1 31
" 1 48
: 1 32
. 2 32 32
, 1 31
; 1 32
! 1 32
? 1 32
_ 1 32
а 1 37
б 1 24
в 1 19
г 2 43 26
д 2 14 27
д2 2 14 28
е 1 38
ж 1 35
з 1 34
и 1 5
й 1 58
к 1 23
л 1 40
м 1 17
н 1 36
о 1 39
п 1 22
р 2 12 33
с 1 3
т 1 6
у 1 8
ф 1 47
х 1 15
ц 1 45
ч 1 41
ш 1 13
щ 2 13 6
ъ 1 21
ь 1 43 
ю 2 50 8
я 2 50 37
ьо 2 50 39
йо 2 50 39
дж 1 46
т2 1 4
л2 1 16
Л 1 16
д2 1 27

а2 1 51
а3 1 62
a4 1 63

ъ3 1 62
ъ4 1 63

о3 1 64
о4 1 65


у3 1 64

е2 1 52

ю2 2 50 55
я2 2 50 51

к2 1 29
ъ2 1 56
и2 1 54
о2 1 53
у2 1 55
ц2 2 31 45
ф2 1 44
ч2 1 42
т2 1 4
п2 1 30
ш2 1 1
щ2 2 13 4
хлъц1 1 57
END

Низовете могат да означава произволни звуци; не е задължително буквите, съставени от две фонеми, да бъдат преди това разложени на две букви при обработката на текста; вместо това звученето им се описва - което е по-точно при "я","ю", "ьо", "йо" - с две или повече заповеди за управление на синтезатора, използващи различни "и" с различна продължителност.

На първия ред е зададено "звученето" на интервала, което се чете по по-различен начин. Следват низове, които след това се сортират по дължина, като по-дългите заповеди се проверяват първи.

За всеки низ се задава брой заповеди на синтезатора и номерата на заповедите.

Неизвестните низове от входния текст се пренебрегват.

Входният текст се приравнява към малки букви. Мекото "Л" е зададено два пъти: веднъж като "л2" и веднъж с главна буква; с "л2" се задава задължително меко "л", а с "л" - меко "Л" според българската фонетика; главната буква се добавя след анализ на текста, който първо се приравнява към смалени букви.

а2, е2, и2, о2, у2, ъ2; ю2, я2 са ударени разновидности на гласните; ю2 == й + у2; я2 = й + а2)

к2, с2, т2, ф2, х2, ц2, ч2, ш2, щ2, п2 са "дълги" шумови съгласни - те звучат тогава, когато говорният апарат спира да работи - преди пауза.

За СЛОГ са извлечени:

а3 - "а" на позиция втора пред ударението; и първа след ударението
а4 - "а" на позиция първа пред ударението
ъ3 - "ъ" на позиция втора пред, и първа след ударението (съвпада с а3)
ъ4 - "ъ" на позиция първа пред ударението (съвп. с а4)
о3 - "о" на позиция втора пред, и първа след ударението
о4 - "о" на позиция първа пред ударението
у3 - "о" на позиция първа пред ударението (съвпада с о3)

Трето равнище на езика за заповеди

Третото равнище ще съдържа (не е достроено в момента на писане на това съчинение) заповеди за промяна на настройките на синтезатора по време на изговор и за замяна на едни низове с други при режим на самостоятелна работа(иначе изпълнявани от външен анализатор на текста, като например СЛОГ), без да е необходимо изговорът им да се задава със заповеди за управление от първо равнище (тонове и шумове), както се прави на второ равнище.

[В режим "самостоятелна работа", и ако тези възможности са включени, към момента на писане на съчинението "Глас" извършва следната предварителна обработка на текта: задължително преобразуване главни->малки букви за намаляване на множеството от фонеми; "къси" шумове ->"дълги" преди ограничаващи знаци; заличаване на излишни паузи ("На мен" -> "Намен"); твърдо-меко "Л" (колело -> КоЛело)]

В следваща версия:

- променлив тембър
- "люлеене" на характеристиките на глассните струни по време на трептението им за създаване на реалистичност
- амплитудни характеристики

Тодор Арнаудов, 22.4.2004