VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ



Podobné dokumenty
IDENTIFIKACE ŘEČOVÉ AKTIVITY V RUŠENÉM ŘEČOVÉM SIGNÁLU

Analýza chování algoritmu MSAF při zpracování řeči v bojových prostředcích

ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE

SYNTÉZA AUDIO SIGNÁLŮ

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

Vyhláška k předmětu Semestrální projekt 2 (BB2M, KB2M)

VLIV GEOMETRICKÉ DISPERZE

v Praze mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9

STUDIUM HLADINOVÉHO ELEKTROSTATICKÉHO

Řízení pohybu stanice v simulačním prostředí OPNET Modeler podle mapového podkladu

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

PŘEVODNÍK SNÍMAČE SIL NA USB PRO ZOBRAZENÍ V PC DSCUSB. KRÁTKÁ PŘÍRUČKA PRO OBSLUHU A KONFIGURACI Revize červenec 2014

Kepstrální analýza řečového signálu

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MĚŘENÍ VODIVOSTI KAPALIN BAKALÁŘSKÁ PRÁCE

Systémy digitálního vodotisku. Digital Watermarking Systems

Stabilita v procesním průmyslu

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

Parametrické přístupy k filtraci ultrazvukových signálů

MODERNÍ SMĚROVÉ ZPŮSOBY REPREZENTACE OBRAZŮ

2. Číslicová filtrace

Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace

ZÁKLADNÍ METODY REFLEKTOMETRIE

Laserový skenovací systém LORS vývoj a testování přesnosti

Jan Černocký ÚPGM FIT VUT Brno, FIT VUT Brno

3. D/A a A/D převodníky

Monitorování vývoje meteo situace nad ČR pomocí GPS meteorologie

1 Měření na Wilsonově expanzní komoře

Quantization of acoustic low level signals. David Bursík, Miroslav Lukeš

Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

STANOVENÍ CHARAKTERU SEGMENTU ŘEČI S VYUŽITÍM REÁLNÉHO KEPSTRA

EKONOMICKÉ DŮSLEDKY SJEDNOCENÍ NĚMECKA

2. RBF neuronové sítě

R-5602 DYNBAL_V1 - SOFTWARE PRO VYHODNOCENÍ DYNAMICKÉ NEVÝVAHY V JEDNÉ ROVINĚ ING. JAN CAGÁŇ ING. JINDŘICH ROSA

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

DIAGNOSTICS OF A HYDRAULIC PUMP STATUS USING ACOUSTIC EMISSION

2 Spojité modely rozhodování

KONFIGURACE SILNIČNÍCH KŘIŽOVATEK

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

Digitalizace signálu (obraz, zvuk)

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Přednáška v rámci PhD. Studia

INFORMACE NRL č. 12/2002 Magnetická pole v okolí vodičů protékaných elektrickým proudem s frekvencí 50 Hz. I. Úvod

ADA Semestrální práce. Harmonické modelování signálů

OCHRANA VOJENSKÝCH OBJEKTŮ PROTI ÚČINKŮM VÝKONOVÝCH ELEKTROMAGNETICKÝCH POLÍ, SIMULACE EMC FILTRŮ

VYHLÁŠKA o způsobu stanovení pokrytí signálem zemského rozhlasového vysílání šířeného ve vybraných kmitočtových pásmech Vymezení pojmů


Využití volně dostupných simulátorů pole v elektromagnetické kompatibilitě

Volba zobrazení (Direct Current, Scaling) - FFT 1D, FFT 2D

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Anténní řada 2x2 pro přenos digitálního TV signálu v pásmu 4,4 až 5 GHz

Reference 10. Předpokládejme stavový popis spojitého, respektive diskrétního systému

Využití matematického zpracování údajů o množstvi plynnovzdušné směsi získaných z monitoringu odplyňovacích vrtů

2 Základy práce v matematickém programu Sage

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Technisches Lexikon (cz.) 16/10/14

DIGITÁLNÍ KOMUNIKACE S OPTICKÝMI VLÁKNY. Digitální signál bude rekonstruován přijímačem a přiváděn do audio zesilovače.

Uživatelem řízená navigace v univerzitním informačním systému

7. ODE a SIMULINK. Nejprve velmi jednoduchý příklad s numerických řešením. Řešme rovnici

Anténní systém pro DVB-T

8. Posloupnosti, vektory a matice

7. Analýza pohybu a stupňů volnosti robotické paže

Konfigurace řídicího systému technikou Hardware In The Loop

ELEKTŘINA A MAGNETIZMUS

Zvuk a jeho vlastnosti

Studentská tvůrčí a odborná činnost STOČ 2015

6. Střídavý proud Sinusových průběh

1. ÚVOD 2. MAGNETOMETRY 2.1. PRINCIP MAGNETOMETRŮ 2009/

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

Model helikoptéry H1

KNIHOVNA MODELŮ TECHNOLOGICKÝCH PROCESŮ

Mechatronické systémy s krokovými motory

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

Západočeská univerzita. Lineární systémy 2

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

ÚVOD DO PROBLEMATIKY PIV

TZB - VZDUCHOTECHNIKA

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

MRAR-L. Družicové navigační systémy. Č. úlohy 4 ZADÁNÍ ROZBOR

Alfanumerické displeje

Úvod do praxe stínového řečníka. Proces vytváření řeči

Návod k obsluze Bakalářská práce Autor Vedoucí práce Škola Obor Webový systém pro konfiguraci disperzního modelu

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

PM generátory s různým počtem pólů a typem vinutí pro použití v manipulační technice

Informačné a automatizačné technológie v riadení kvality produkcie Vernár, PŘENOS DAT PO NÍZKONAPĚŤOVÉ ROZVODNÉ SÍTI

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Projekt implementace Balanced Scorecard na FaME UTB ve Zlíně. Lenka Pálková

plynu, Měření Poissonovy konstanty vzduchu

Soukromá vyšší odborná škola podnikatelská, s. r. o.

Cyklické změny v dynamice sluneční konvektivní zóny

SEIZMICKÝ EFEKT ŽELEZNIČNÍ DOPRAVY ÚVODNÍ STUDIE

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

NEXIS 32 rel Generátor fází výstavby TDA mikro

(n, m) (n, p) (p, m) (n, m)

Program pro zobrazení černobílých snímků v nepravých barvách

Studentská tvůrčí činnost. O letu volejbalového míče při podání

SIMULACE INDUKČNÍHO OHŘEVU

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS SEGMENTACE ŘEČI DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR Bc. LADISLAV KAŠPAR BRNO 2015

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS SEGMENTACE ŘEČI SPEECH SEGMENTATION DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. LADISLAV KAŠPAR Ing. PETR SYSEL, Ph.D. BRNO 2015

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Diplomová práce magisterský navazující studijní obor Telekomunikační a informační technika Student: Bc. Ladislav Kašpar ID: 125241 Ročník: 2 Akademický rok: 2014/2015 NÁZEV TÉMATU: Segmentace řeči POKYNY PRO VYPRACOVÁNÍ: Prostudujte metody automatické segmentace řeči na fonémy, dále prostudujte metody vektorové kvantizace. V prostředí Matlab implementujte základ algoritmu automatické segmentace řeči využívající vektorovou kvantizaci. Při implementaci se snažte o snadnou rozšiřitelnost a znovupoužitelnost vytvořených skriptů, např. využitím objektů. Zhodnoťte úspěšnost segmentace. DOPORUČENÁ LITERATURA: [1] Psutka, J.; Müller, L.; Matoušek, J.; Radová, V. Mluvíme s počítačem česky. 1. vydání. Praha: Academia, 2006. 752 s. ISBN 80-200-1309-1 [2] Deller, J. R.; Hansen, J. H. L.; Proakis, J. G. Discrete-Time Processing of Speech Signals. New York: IEEE Press, 2000. ISBN 0-7803-5386-2 [3] MATLAB - začínáme se signály. Praha: BEN, 2006. 1. vydání. ISBN 80-7300-200-0 Termín zadání: 9.2.2015 Termín odevzdání: 26.5.2015 Vedoucí práce: Ing. Petr Sysel, Ph.D. Konzultanti diplomové práce: doc. Ing. Jiří Mišurec, CSc. Předseda oborové rady UPOZORNĚNÍ: Autor diplomové práce nesmí při vytváření diplomové práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.

ABSTRAKT Ve své diplomové práci se věnuji problému segmentace řeči. Tato práce obsahuje základní teorie k tomuto tématu. Teorie je zaměřena na výpočet parametrů, které jsou v praktické části použity jak v segmentované části signálu, tak i v celé části signálu. Hlavní parametry pro program implementovaný v jazyce Matlab využívám segmentaci signálu, vstupní energii a střední průchod nulou, které jsou následně zpracovány algoritmem k means. KLÍČOVÁ SLOVA Segmentace řeči, k means, fonémy, hranice fonémů. ABSTRACT My diploma thesis is devoted to the problem of segmentation of speech. It includes the basic theory on this topic. The theory focuses on the calculation of parameters for segmentation of speech that are used in the practical part. An application for segmentation of speech has been written in Matlab. It uses techniques as segmentation of the signal, energy of the signal and zero crossing function. These parameters are used as input for the algorithm k means. KEYWORDS Speech segmentation, k means, phonemes, border of phonemes. KAŠPAR, Ladislav Segmentace řeči: diplomová práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, 2015. 41 s. Vedoucí práce byl Ing. Petr Sysel, Ph.D.

PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma Segmentace řeči jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této diplomové práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení S 11 a následujících autorského zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. Brno................................................. (podpis autora)

PODĚKOVÁNÍ Rád bych poděkoval vedoucímu diplomové práce panu Ing. Petru Syslovi, Ph.D. za odborné vedení, konzultace, trpělivost a podnětné návrhy k práci. Brno................................................. (podpis autora)

Faculty of Electrical Engineering and Communication Brno University of Technology Purkynova 118, CZ-61200 Brno Czech Republic http://www.six.feec.vutbr.cz PODĚKOVÁNÍ Výzkum popsaný v této diplomové práci byl realizován v laboratořích podpořených z projektu SIX; registrační číslo CZ.1.05/2.1.00/03.0072, operační program Výzkum a vývoj pro inovace. Brno................................................. (podpis autora)

OBSAH Úvod 10 1 Analýza řečového signálu 11 1.1 Vytváření a vlastnosti mluvené řeči................... 11 1.1.1 Vytváření řeči........................... 11 1.1.2 Vlastnosti řeči........................... 12 1.2 Analýza řeči................................ 13 1.2.1 Segmentace signálu........................ 13 1.2.2 Příznaky v časové oblasti..................... 14 1.2.3 Příznaky ve frekvenční oblasti.................. 15 1.3 Vektorová kvantizace........................... 18 1.3.1 Uplatnění vektorové kvantizace při segmentaci řeči na fonémy 18 1.3.2 Vektorový kvantizér........................ 19 2 Práce s objekty 21 2.1 Objektové programování......................... 21 2.1.1 Třída................................ 21 2.1.2 Objekt............................... 22 2.2 Práce v Matlabu............................. 22 2.2.1 Načtení vstupního signálu.................... 22 2.2.2 Subsref............................... 24 2.2.3 Přetížení standardních funkce.................. 25 2.2.4 Třídy odvozené od rodičovské třídy............... 26 2.2.5 Hlavní skript worker.m...................... 29 3 Závěr 36 Literatura 37 Seznam symbolů, veličin a zkratek 39 A Příloha 41 A.1 Obsah DVD Segmentace řeči...................... 41

SEZNAM OBRÁZKŮ 1.1 Lidský hlasový trakt.[4].......................... 11 1.2 Ukázka segmentace signálu s překrytím sousedních segmentů..... 14 1.3 Příklad průběhu krátkodobé energie signálu slova pozor....... 15 1.4 Příklad průběhu středního počtu průchodu nulou signálu, při vyslovení slova pozor............................. 16 1.5 Blokové schéma kepstrální analýzy.................... 16 1.6 Blokový model vytváření řeči s lineárním číslicovým filtrem...... 17 1.7 Rozdělení 2D prostoru vzorků na oblasti kolem referenčních bodů... 18 1.8 Vytvoření shlukových oblastí z příznaků náležící fonémům a vytvoření centrálních (refenrenčních) bodů..................... 20 2.1 Vývojový diagram testování zadaného signálu ke zpracování...... 23 2.2 Otevření wav souboru typu RIFF (vlevo) a NIST (vpravo) v textovém editoru................................. 23 2.3 Vývojový diagram skriptu Subsref.m pro třídu mysignal....... 24 2.4 Časový průběh vstupního signálu vykreslený pomocí plot.m ve třídě mysignal.................................. 25 2.5 Časový průběh vstupní energie signálu vykreslený pomocí plot.m ve třídě myenergy............................... 26 2.6 Časový průběh středního průchodu nulou vstupního signálu vykreslený pomocí plot.m ve třídě myzcf.................... 27 2.7 Časový průběh vstupního signálu (modrý), středního průchodu nulou (zelený) a krátkodobé energie vstupního signálu (červená) vykreslený pomocí plot.m ve třídě myzcf...................... 27 2.8 Spektogram vstupního signálu z databáze TIMIT SX403.WAV... 28 2.9 Grafické znázornění referenčních bodů (o) ve shlucích pro čtyři fonémy pomocí plot.m ve třídě mykmeans.................... 29 2.10 Obsah jednotlivých souborů databáze TIMIT pro nahrávku SX403.. 30 2.11 Vývojový diagram pro spustitelný skript worker.m........... 32 2.12 Hodnoty pro vlastnost phn nahrávky s textem deset......... 32 2.13 Vykreslení originálních (černých) a vypočtených (zelených) hranic phn nahrávky SX403.WAV.......................... 33 2.14 Číselné vyhodnocení detekování hranic phn nahrávky SX403.WAV. 33 2.15 Vykreslení originálních (černých) a vypočtených (zelených) hranic phn nahrávky SX403.WAV s aplikací eliminace.............. 34 2.16 Číselné vyhodnocení detekování hranic phn nahrávky SX403.WAV s aplikací eliminace............................. 34

SEZNAM TABULEK 2.1 Vlastnosti třídy mysignal......................... 21 2.2 Možnosti naplnění vlastností třídy mysignal pomocí skriptu myread.m. 23 2.3 Možnosti práce se signálem třídy mysignal pomocí skriptu Subsref.m. 24 2.4 Význam souborů databáze TIMIT.................... 30 2.5 Náhodně zvolená NIST z databáze TIMIT s tolerancí = 0.05..... 35 A.1 Přiložené soubory v Matlabu....................... 41

ÚVOD Tato práce se zaměřuje na využití objektů při segmentaci řeči na fonémy s pomocí vektorové kvantizace v programu Matlab. Jako zdroj vstupních signálů je použita databáze TIMIT, které je věnována část kapitoly 2.2.5. Část 1.1.1 se zaměřuje na vznikání lidského hlasu, využitím orgánu, které v primární fázi plní odlišné úlohy (dýchání, příjem potravy). Význam jazyka a písma je popsán v kapitole 1.1.2. V této části najdeme podkapitolu, která opodstatňuje co, proč a jak by mělo při zkoumání řeči býti zaznamenáno, ale také se zde nachází podkapitola vysvětlující proč při záměně jednoho fonému není devastující vliv na srozumitelnost nutností, ale na příjemnosti řeči se záměna projeví. Sledování hranic mezi fonémy pomocí krátkodobé analýzy je popsáno v kapitole 1.2. Princip segmentace, volba překrytí a velikost segmentu je popsána v části 1.2.1. Část 1.2.2 se věnuje výpočtu příznaků v časové oblasti. Tato část má dvě podkapitoly. Tyto podkapitoly se zabývají krátkodobou energií a funkcí středního průchodu nulovou úrovní. Na tyto příznaky navazují příznaky z frekvenční oblasti, které jsou popsány v kapitole 1.2.3 a to především kepstrální analýza a lineární prediktivní analýza. Vektorová kvantizace je popsána v následující části s označením 1.3. Kapitola 1.3.1 naznačuje uplatnění vektorové kvantizace při segmentaci signálu (řeči) na fonémy. Je zde popsána i tvorba centrálních (referenčních) bodů. Popis vektorového kvantizéru je nastíněn v kapitole 1.3.2, kde je využito funkce k-means v Matlabu. Princip a základní vlastnosti objektově orientovaného programování je nastíněn v části 2.1. Kapitola 2.2 je zaměřena na realizaci vlastních bloků pro tuto práci. Nejprve je vstupní signál zpracován postupem, který je uveden v části 2.2.1, který je možno následně zobrazit pomocí přetížení standardní funkce plot (2.2.3). Možnosti, které máme při práci se signálem na vstupu jsou zaznamenány v části 2.2.2. Kapitola 2.2.4 umožňuje náhled na na odvozené třídy od rodičovské třídy mysignal. Tato část obsahuje jak uplatnění jednotlivých tříd, tak také jejich výstupy. Kapitola 2.2.5 popisuje princip a ovládání hlavního, spustitelného skriptu této práce. Najdeme v této části informace i o databázi TIMIT, postupu při vyhodnocování hranic, ale především výsledek celkové detekce originálních hranic fonémů pomocí hranic vypočtených. 10

1 ANALÝZA ŘEČOVÉHO SIGNÁLU 1.1 Vytváření a vlastnosti mluvené řeči 1.1.1 Vytváření řeči V lidském těle jsou skupiny orgánů, které umožňují vytvoření řeči. Tyto orgány se nazývají řečové či artikulační orgány. Primární funkce těchto orgánů jsou ale jiné (dýchání, přijímání potravy, cítění). Hlasový trakt je složen ze tří hlavních částí: artikulační, dechové a hlasové. U dospělého muže je hlasový trakt od rtů až k hrtanu přibližně 17 cm dlouhý, při příčném řezu se plocha mění od nuly k 20 cm 2. Hlasové ústrojí je umístěno v hrtanu, který je s plícemi propojen pomocí průdušnice. Obr. 1.1: Lidský hlasový trakt.[4] Hlavní částí celého ústrojí jsou hlasivky, které se nacházejí v hrtanové dutině, jak je vidět na obrázku 1.1. Jsou mezi štítnou chrupavkou a hlasivkovými chrupavkami. Hlasivková štěrbina, která je mezi hlasivkami, je během mlčení odkryta, tudíž jí prochází vzduch. Mluvením se proud vzduchu dostává k hlasivkám, které tímto přivede do pohybu (kmitání) a tím vznikne základ lidského hlasu. To, jak rychle hlasivky kmitají je rozdílné pro muže, ženu i dítě podle věku.[9],[4] 11

1.1.2 Vlastnosti řeči Pojmem jazyk se označuje schopnost vyjádřit svoje myšlenky. Tato schopnost se realizuje buď graficky (např. obrázkem nebo písmem latinka, azbuka) nebo akusticky (řečí). Tyto formy: psaná (písmo) a mluvená (řeč) se považují za rovnocenné, i když každá z nich má své výhody a nevýhody. Mluvená řeč se přenáší jako akustická vlna komunikačním kanálem. Informace jsou ukryty v akustickém signálu. Lingvistická informace nejdůležitější protože vyjadřuje význam myšlenky. Specifické informace informace o mluvčím (barva hlasu, rytmus řeči, intonace, emocionální stav řečníka a anomálie vady řeči. Při zpracovávání pomocí počítačové technologie má velký význam mluvená podoba řeči. Je zde nutné získaný zvukový signál co nejlépe vyjádřit pomocí akustických a fonetických reprezentací. Velký důraz by měl být kladen na zaznamenání co a jak bylo řečeno.[9] Fonetika a fonetické abecedy Procesem vytváření řeči se zabývá fonetika. Tato věda hodnotí nejen způsob tvoření řeči, ale i charakter výsledného zvuku a jeho sluchové hodnocení. Hláska, nebo-li fon, je ve fonetice označován jako základní jednotka. Fonetická reprezentace řeči se zapisuje do hranatých závorek. Foneticky podobné (neodlišitelné) zvuky jsou reprezentovány právě pomocí hlásek. Odlišitelné zvuky každého jazyka tvoří pro daný jazyk fonetický inventář. Existují různé druhy fonetických inventářů, záleží z jakou podrobností se na ně díváme nejčastěji se pracuje na úrovni hlásek. Fonetické inventáře se nazývají fonetické abecedy, pomocí kterých je možné zachytit a následně zapsat promluvu. [9] Fonetické abecedy. IPA (International Phonetic Alphabet ) standard pro všechny světové jazyky, nezávislá na jazyce s úplnou soustavou fonetických značek. SAMPA (Speech Assesment Methods Phonetic Alphabet) vyvinuta speciálně pro zápis promluvy v počítači, kódová IPA do ASCII. ZČFA (Zjednodušená Česká Fonetická Abeceda) symboly, které nejsou v české abecedě jsou převzaty z IPA, dobrá čitelnost, vhodná pro rozbor české mluvené řeči, není vhodná pro zpracování počítačem. ČFA (Česká Fonetická Abeceda) pro zápis české promluvy počítačem, symboly z více znaků. 12

Foném Fonolofie se zajímá o funkci, postavení a vztahy mezi zvuky v rámci jednoho jazyka. Ve fonologii je základní jednotkou foném. Fonémy se v každém jazyce vyskytují v množinách, kde je každý foném jedinečný. Jednotlivé fonémy se využívají v jazycích s různou pravidelností. Foném je abstraktní lingvistická jednotka, nepředstavuje přímo žádný zvukový segment, ale konfiguraci hlasového traktu a lingvistické charakteristiky. Vlastní zvuk vzniká při artikulaci fonému. I přes to, že každému fonému odpovídá nějaké jiné rozpoložení řečových orgánů, tak při vlastní řeči dochází k řadě modifikací fonému, které jsou dány ovlivňováním od okolních fonémů, ale také jsou dány částečným stupněm volnosti při vyslovení daného fonému. Z těchto důvodů je více zvuků pro jeden stejný foném. Zvuky s fonetickými podobnými vlastnostmi se nazývají hláska. Pokud bude opakovaně vyslovovat jeden foném stejný řečník pořád dokola, tak se při akustické realizaci může ukázat, že má daný foném více akustických podob. V případě záměny jednoho fonému za jiný by to nemělo mít vliv na srozumitelnost, ale pouze na příjemnost řeči.[9] 1.2 Analýza řeči Z metod pro výpočet krátkodobé analýzy řeči se určují příznaky, pomocí kterých je nadále možné sledovat jejich průběh a také jejich vliv na samotnou řeč. Proto je důležité dosáhnout takových kvalit hodnot příznaků, aby tyto příznaky co nejlépe popisovaly průběh a vlastnosti signálu. Určení hranic mezi fonémy se provádí pomocí sledování hodnot příznaků, které se skokově mění na hranicích fonémů a uvnitř každého fonému by měla být co nejvíce konstantní. 1.2.1 Segmentace signálu Pro všechny metody krátkodobé analýzy probíhají veškeré výpočty příznaků jen v krátkých časových úsecích vytvořených z daného signálu (řeči). K tomuto postupu se přistoupilo z toho důvodu, aby se využívaly konstantní hodnoty příznaků, které jsou konstantní jen na krátkém úseku. Délka těchto segmentů ovlivňuje nejen výpočty metod pro krátkodobou analýzu, ale také i celý proces segmentace signálu, proto je nutná vhodná volba délky časových úseků. Aby bylo možné zpracovat i ty nejkratší fonémy musí být délka segmentů dostatečně malá. Pro každý výpočet příznaku se může délka lišit. Nejčastěji se volí velikost segmentu v intervalu od 10 ms do 35 ms. V této práci je jako výchozí nastavena velikost segmentu na 20 ms. Při segmentaci se téměř vždy využívá možnosti překrytí segmentů, čímž je docíleno lepšího vyrovnání počítaných průběhů parametrů signálu, toto překrytí je jako výchozí 13

nastaveno na 50 %. Řečový signál je rozdělen tedy do úseků o velikosti N vzorků, jak je vidět na obr.1.2. Každý následující úsek je překryt o M vzorků, kde M < N. Nejprve se tedy provede se signálem proces segmentace a následně je pro každý přepočtený segment vypočten příznak dané krátkodobé analýzy.[9] Obr. 1.2: Ukázka segmentace signálu s překrytím sousedních segmentů. 1.2.2 Příznaky v časové oblasti Zpracování v časové oblasti umožňuje vycházet přímo z hodnot vzorků signálu. Příznaky získané z časové oblasti jsou většinou méně náročné na výpočet. Použitím jedné metody by znamenalo pro mnohé fonémy, že hodnota příznaků zůstane stejná či se jen velmi málo změní. Bylo by obtížné určit hranice všech fonémů, proto je potřeba použít více různých metod zpracování v časové oblasti společně s nimi metody zpracování ve frekvenční oblasti. Do metod zpracování signálu v časové oblasti patří například krátkodobá energie (1.1) a krátkodobá střední hodnota průchodu signálu nulovou úrovní (1.4). Krátkodobá energie V metodách krátkodobé analýzy v časové oblasti se vyskytuje váhová posloupnost neboli tzv. okénko ω[n]. Tímto okénkem se váží vzorky s[k]. Okénko má za cíl omezit vliv nespojitosti na krajích způsobené vyseknutím segmentu z dlouhého signálu. Nejčastěji se využívá pravoúhlého a Hammingova okénka. 14

Obr. 1.3: Příklad průběhu krátkodobé energie signálu slova pozor. Krátkodobá energie signálu je definována vztahem E n = [s[k]ω[n k]] 2, (1.1) k= kde s[k] je vzorkem signálu v čase k a ω[n] zastupuje zvolené okénko. Každý vzorek E n obsahuje informaci o hodnotě krátkodobé energie. Funkce středního počtu průchodu nulou Výhodou této metody je absolutní nezávislost na energii signálu. Krátkodobou hodnotu středního průchodu nulovou úrovní je možné definovat vztahem Z n = sgn[s[k]] sgn[s[]k 1]] ω[n k], (1.2) k= kde ω je okénko zpracovávající signál.[9] 1.2.3 Příznaky ve frekvenční oblasti Mluvená řeč je ve frekvenční oblasti zastupována svým spektrem, velikostí frekvenčních složek. Ve frekvenční oblasti se nejčastěji využívá ke zpracovávání signálů diskrétní Fourierova transformace. Metody výpočtů příznaků ve frekvenční oblasti přinášejí jiné výsledky a je díky nim možné detekovat hranice, které by při použití jen metod z časové oblasti zůstaly nenalezeny. Příkladem pro výpočet příznaků ve frekvenční oblasti je kepstrální analýza, která je zobrazena na obrázku 1.5 a lineární prediktivní analýza, kde její princip je naznačen na obrázku 1.6. 15

Obr. 1.4: Příklad průběhu středního počtu průchodu nulou signálu, při vyslovení slova pozor. Kepstrální analýza Řečové kmity mohou být modelovány na krátkodobém základě. A to na lineární buzení pro znělou řeč a šumu pro neznělou řeč. Jestliže signál A byl sestaven diskrétní konvolucí řečového signálu s[n] a funkce okénka ω[n]. Vstupem do bloku DFT se na výstupu objeví signál B, který je součinem Fourierovy transformace buzení a impulsní odezvy hlasového ústrojí a je přiveden na blok log.. Z bloku log. vystupuje C, které je součtem transformace odezvy hlasového ústrojí a logaritmů transformace buzení. Díky této metodě je možné ze signálu řeči oddělit parametry buzení a hlasového ústrojí, což je vhodné pro analýzu řeči. Obr. 1.5: Blokové schéma kepstrální analýzy. Proces kepstrální analýzy se skládá z následujících kroků: 1. Diskrétní Fourierovy Transformace (výpočet spektra v segmentu řeči). 2. Logaritmování spekter v segmentech. 16

3. Zpětná Fourierova Transformace. Pro výpočet kepstrální analýzy se používá v programu Matlab definovaná funkce rceps. Funkce rceps má implementován algoritmus y = real(ifft(log fft(x) )). Při hledání hranic fonémů metodou sledování příznaků je vhodné použít jen několik prvních koeficientů získaného kepstra. [9], [10] Lineární prediktivní analýza LPC patří mezi nejefektivnější metody pro analýzu akustických signálů. Možnost zabezpečení odhadu parametrů je půvabem této metody. Model řeči se skládá z generátoru budících funkcí a ze systému s časově proměnným přenosem. Systém je buzen generátorem, který tuto činnost zajišťuje náhodným šumem při vytváření neznělých zvuků a posloupností impulsů při tvorbě zvuků znělých. Q s[n] = a i s[k i] + Gu[k], (1.3) i=1 kde Q je řádem modelu a G je koeficientem zesílení. Přenosová funkce modelu lze pak zapsat jako H[z] = S[z] U[z] = G A[z] = G 1 + Q k=1 a. (1.4) i iz Obrázek 1.6 zachycuje proces modelování. Zesílení G a koeficienty číslicového filtru a i. Pro stanovení a i a G se využívá metoda nejmenších čtverců za předpokladu přibližné stacionarity signálu na daném intervalu. Jestliže není znám člen Gu[k] je v rovnici (1.3) vytvořena chyba predikce. Pomocí koeficientů a i je možný výpočet spektra signálu, které má podobu vyhlazené spektrální obálky původního diskrétního signálu s[k]. [9] Obr. 1.6: Blokový model vytváření řeči s lineárním číslicovým filtrem. 17

1.3 Vektorová kvantizace Pod pojmem kvantizace se myslí aproximace analogové hodnoty vzorku signálu jednou z konečného počtu číselných hodnot. Označení kvantizace skalární se používá, když provádíme kvantizaci jen jednoho signálu, nezávisle na jiných signálech. Pokud je kvantizován celý blok, složený z více signálů, označuje se tento proces jako vektorová kvantizace. Při dalším zpracování hodnot popisující jednotlivé části (segmenty) řečového signálu se vektorová kvantizace uplatňuje velice často. Blok příznaků signálu, získaných pomocí metod krátkodobé analýzy, popsaných v předchozí části. Uplatnění vektorové kvantizace se nachází zejména v potřebách shromažďování většího množství dat (komprese dat), tato práce je zaměřena na možnost použití vektorové kvantizace pro segmentaci řečového signálu na fonémy. Prostor, ve kterém se pracuje s vektorovou kvantizací si můžeme představit jako 2-dimenzionální prostor s konečným počtem bodů, který je rozdělen na mozajku, jak je vidět na obrázku 1.7. [9] Obr. 1.7: Rozdělení 2D prostoru vzorků na oblasti kolem referenčních bodů. 1.3.1 Uplatnění vektorové kvantizace při segmentaci řeči na fonémy Dostatečný rozdíl charakteru hlásek, které se v řečovém signálu nacházejí, umožní transformaci, díky které je možné nalézt hranice mezi fonémy. Aby se celý proces 18

zjednodušil nejprve se řečový signál zpracuje metodami krátkodobé analýzy, kde výsledkem je skupina příznaků charakterizujících segment. Jako transformační metodu lze použít vektorovou kvantizaci, která bude realizovat kroky: Z hodnot příznaků pro segmenty vytvoří jednu závislost, segmenty náležící konkrétnímu fonému budou shodně kvantovány, segmenty, které budou náležet jinému fonému, jsou kvantovány na jiný vektor, vznik centralizovaných buněk s referenčním bodem. Skutečnost je ale jiná. V prostoru odpovídajícímu počtu příznaků se nachází K bodů (K odpovídá počtu fonémů). Body by se měly v tomto prostoru nacházet ve shlukovém rozprostření, kde každý shluk odpovídá bodům jednoho fonému. Tímto utříděním se vytvoří téměř mřížková struktura, jaká je naznačena na obrázku 1.8. Z každé takto vzniklé skupinky příznaků (shluků) se vytvoří jeden centrální bod, referenční bod. Po vytvoření tohoto bodu jsou hodnoty příznaků pro danou oblast (shluk) nahrazeny hodnotou tohoto bodu, což odpovídá vektorové kvantizaci celého vektoru. V ideálním případě je výsledkem vektorové kvantizace křivka, která po dobu trvání jednoho fonému vyznačí oblast, která přísluší danému fonému (okolí referenčního bodu). Při změně fonému se změní i hodnota křivky, aby vyznačila okolí referenčního bodu pro jiný foném. Vektorová kvantizace tedy mění řečový signál na funkci příslušnosti k jednotlivým referenčním bodům a charakterizuje hranici fonémů, kterou je přechod mezi vyznačenými oblasti. Dalším důvodem proč použít vektorovou kvantizaci je, že vektorová kvantizace přistupuje ke shlukům příznaků jako k celku a při výpočtu zohledňuje vzájemné závislosti všech příznaku všech segmentů navzájem mezi sebou. Vzájemná rozdílnost dvou bodů se v tomto prostoru dá vyjádřit jako vzdálenost bodů v prostoru. 1.3.2 Vektorový kvantizér Realizace vektorové kvantizace bude součástí diplomové práce, kde se bude vytvářet vektorový kvantizér. Vektorový kvantizér přiřazuje vstupním vektorům reprodukční vektor (počet úrovní kvantizéru). Pokud je vstupní vektor kvantován (nahrazen kódovým vektorem), tak tato situace povede ke vzniku zkreslení, toto zkreslení se nazývá kvantizační zkreslení J. Toto zkreslení má být co možná nejnižší. MacQueenův algoritmus Segmenty, popsané vektory příznaků, přiřadíme k referenčním bodům, které mají reprezentovat dané segmenty s co nejmenší chybou. Toto by bylo nejvhodnější re- 19

Obr. 1.8: Vytvoření shlukových oblastí z příznaků náležící fonémům a vytvoření centrálních (refenrenčních) bodů. alizovat vyčerpáním všech možných přiřazení. Tímto způsobem by bylo nalezeno minimum funkce celkového zkreslení J, což by vedlo k vytvoření kvantizátoru. Bohužel takovýto postup je v praxi nerealizovatelný, kvůli ohromnému množství kombinací přiřazení. Z toho důvodu je nutné najít nějaký jiný algoritmus, který bude rychle konvergovat k lokálnímu minimu funkce, ale nebude jisté, že nalezne minimum zkreslení J. Jedním vyhovujícím algoritmem je MacQueenův algoritmus, který se také označuje jako k-means. Přiřazuje vektory příznaků popisující segmenty do shluků, které jsou určeny referenčními body, ze kterých jsou tvořeny množiny vektorů. Algoritmus se skládá z těchto bodů: Výběr počátečních referenčních bodů, rozdělení segmentů řeči do shluků, vypočtení pro každý shluk nový referenční bod, pokud celkové zkreslení J pro všechny shluky není pod stanoveným prahem, tak se pokračuje od bodu 2. [9],[11] 20

2 PRÁCE S OBJEKTY 2.1 Objektové programování Aby se při psaní velkých a složitých programů předešlo zbytečným komplikacím vyplývajících z nepřehlednosti kódu, která může být z důvodu velkého množství procedur a funkcí, ale také i z důvodu nesystematického zápisu příkazů, využívá se objektově orientované programování (OOP). Hlavními bloky jsou třída a objekt. 2.1.1 Třída V programování se označuje jako Class. Třída slouží k tomu, aby se do ní nastavily vlastnosti dané třídy. Například objekty třídy mysignal mají vlastnost jméno (name), které má každý vstupní záznam (řeč) jiný záznamy mají jiná jména. Třídu mysignal si v podstatě můžeme představit jako tabulku, která nese záznamy o vzorcích, frekvenci, počtu bitů a jménu konkrétního signálu (záznamu řeči), jak je zobrazeno v tabulce 2.1. Tomu souhrnu se říká zapouzdření. V prostředí Matlab je třída založena vytvořením adresáře, jehož jméno je sestaveno ze znaku @ a názvu třídy. Adresář obsahuje všechny funkce pracující s danou třídou. V této práci jsem od původní třídy mysignal odvodil třídy myenergy, mykmeans, myzcfa mylpc. Tab. 2.1: Vlastnosti třídy mysignal. Označení v programu samples freq bits name wrd phn význam pro skutečnost vzorky vstupního signálu, vzorkovací frekvence vstupního signálu, počet bitů na vzorek vstupního signálu, název vstupního signálu, hranice slova, která obsahuje vstupní signál, hranice jednotlivých fonémů ve vstupním signálu. Použité třídy mysignal Tato třída slouží především k načtení ze souboru a následnému zpracování vstupního signálu. myenergy Zde se převzatý signál rozdělí na jednotlivé segmenty, ze kterých je následně vypočtena energie a tyto hodnoty jsou uloženy do samples. 21

myzcf V této třídě se převzatý signál také rozdělí na jednotlivé segmenty, ze kterých se následně určí střední průchod nulou, tyto hodnoty jsou uloženy do samples. mylpc Tato třída také převzatý signál rozdělí na jednotlivé segmenty, ze kterých následně vypočte LPC koeficienty a uloží je do samples. mykmeans Tato třída má jako vstupní parametr skupinu předchozích příznaků. Z tohoto parametru vypočte pomocí funkce kmeans.m referenční body. 2.1.2 Objekt Konkrétní jedinec dané třídy (mysignal) se označuje jako objekt a je datového typu definovaného třídou. Díky dědičnosti nemusíme pro podobné třídy definovat vlastnosti odděleně pro každou třídu zvlášť, ale stačí je definovat pouze pro jednu a druhá tyto vlastnosti zdědí. Následně pak při potřebě odlišných funkcí stačí připsat potřebné funkce pro odlišné úkony a ostatní funkce se zdědí z rodičovské třídy. Tímto nám zmizí nutnost provádět změny v obou třídách. 2.2 Práce v Matlabu 2.2.1 Načtení vstupního signálu Po spuštění Matlabu si nastavíme vhodný pracovní adresář s vytvořenými skripty. Do Command Window zadáme například s = mysignal(), pro přiřazení vstupního záznamu (signálu) do proměnné s. Po potvrzení se otevře dialogové okno pro výběr testovaného souboru, je přednastaveno zobrazovat v dialogovém okně soubory typu wav, což lze změnit v nabídce Soubory typu. V případě, že dojde k přerušení volby testovacího souboru nastane situace, kdy jsou hodnoty vzorků, frekvence, počtu bitů, názvu, slov a fonémů vyplněny pevně danými hodnotami. Pokud zadávání proběhne bez přerušení, tak se hodnoty vzorků, frekvence, počtu bitů, názvu, slov a fonémů naplní podle parametrů zvoleného souboru, jak je možné vidět v tabulce 2.2. Toto ověřování vstupního signálu je naznačeno vývojovým diagramem, který je možné vidět na obrázku 2.1.[6] Výše popsanou situaci řeší soubor myread.m, který v případě přerušení nastaví pevné hodnoty a v případě zvoleného wav souboru z něj zjistí jeho typ RIFF (reálná nahrávka hlasu, která lze přehrát) nebo NIST (binární soubor, který nelze přehrát). Určení typu je možné z prvních čtyř symbolů (písmen) v daném wav souboru, jak je možné vidět na obrázku 2.2. Pro soubory typu RIFF se využívá v Matlabu funkce wavread.m a pro práci se souborem typu NIST se v tomto programu používá funkce readsph.m, kterou je potřeba do Matlabu doplnit.[1] 22

Tab. 2.2: Možnosti naplnění vlastností třídy mysignal pomocí skriptu myread.m. Vlastnost třídy wavread.m readsph.m samples vzorky signálu vzorky signálu freq vzorkovací frekvence signálu vzorkovací frekvence signálu bits počet bitů na vzorek pevná hodnota 16 wrd prázdná vlastnost slova a jejich hranice phn prázdná vlastnost fonémy a jejich hranice Vlastnost name je naplněna v obou případech názvem souboru. Obr. 2.1: Vývojový diagram testování zadaného signálu ke zpracování. Obr. 2.2: Otevření wav souboru typu RIFF (vlevo) a NIST (vpravo) v textovém editoru. 23

2.2.2 Subsref Subsref je m-file, který je volán při specifickém použití (referenci) proměnné (např. s). Tento skript porovnává zadané příkazy pro danou odkazovou proměnou s, zadané do kulatých závorek s(příkaz ) nebo za tečku s.příkaz s příkazy nastavenými ve skriptu Subsref.m, jak je vidět na obrázku 2.3. Podle typu příkazu následně provede skript přiřazenou funkci a zobrazí informaci o výsledku operace, jak je zaznamenáno v tabulce 2.3. Při tvorbě tohoto skriptu se vycházelo z dostupného skriptu pro Octave. [7]. Tab. 2.3: Možnosti práce se signálem třídy mysignal pomocí skriptu Subsref.m. Zapsáno do Matlabu Výstup příkazu s(50,1) vypíše se prvek v kanále 1 na pozici 50, s.write uložení pomocí dialogového okna (ve wav), s.read načtení pomocí dialogového okna (ve wav), s.freq vypíše se vzorkovací frekvence signálu, s.samples vypíší se vzorky signálu, s.name vypíše se název signálu, s.bits vypíše se počet bitů na vzorek signálu, s.wrd vypíše se buňkové pole slov a jejich hranic, s.phn vypíše se buňkové pole fonémů a jejich hranice. Obr. 2.3: Vývojový diagram skriptu Subsref.m pro třídu mysignal. 24

2.2.3 Přetížení standardních funkce Pomocí OOP je možné si vytvořit funkci se stejným jménem jako je standardní funkce v Matlabu. V tomto případě jsem přetížil funkci plot a funkci stem, které jsou vytvořeny pro danou třídu (např. mysignal). Tyto funkce byly přetěžovány, aby se podle vzorkovacího kmitočtu a délky signálu automaticky vypočetla časová osa. Aby bylo patrné, která funkce je příkazem plot(s) volána, zda standardní nebo nově vytvořená je v nově vytvořeném plot.m přidán příkaz pro debug. Příkaz má podobu disp(mfilename( class ), /,mfilename), který vrací do příkazového okna Matlabu informaci o tom, že byla volána nová funkce plot. Tyto debugovací výpisy byly ve funkcích zakomentovány, aby nebylo okno Command Window neustále přepisováno, vždy když je zavolána přetížená funkce. Na obrázku 2.4 je vyobrazen časový průběh vstupního záznamu zvuku pomocí přetížené standardní funkce plot. Jako výchozí barva je v této práci nastavena černá. Je možné jí změnit příslušným příkazem např. plot(s, b ); pro modrou barvu. Obr. 2.4: Časový průběh vstupního signálu vykreslený pomocí plot.m ve třídě mysignal. 25

2.2.4 Třídy odvozené od rodičovské třídy Vstupní energie myenergy Během této práce byla vytvořena odvozená třída pro výpočet krátkodobé vstupní energie, ve které je použit kvadratický výpočet (viz 1.1) ze vstupního signálu (s), který je nejprve rozdělen do dílčích segmentů a následně je aplikován výpočet. Dosažené hodnoty energie pro nahrávku zachycující promluvu s textem deset jsou zaneseny v grafu 2.5. Tato třída byla použita v této práci dvakrát. Poprvé se uplatnila v cyklu, kde se vypočítávala vstupní energie pouze pro krátký úsek o velikosti, kterou zadal uživatel. Po opuštění tohoto cyklu se následně použila tato třída na výpočet energie z celého původního signálu. Obr. 2.5: Časový průběh vstupní energie signálu vykreslený pomocí plot.m ve třídě myenergy. Střední hodnota průchodu nulou myzcf Další odvozenou třídou je myzcf, která opět vstupní signál nejprve zpracuje na segmenty a poté pro každý segment vypočte střední hodnotu průchodu nulou. V této třídě je použit výpočet 1.4. Třída byla použita dvakrát, stejně jako myenergy. Průběh středního počtu průchodu nulou na nahrávce obsahující text deset je vyobrazen na grafu 2.6. Na obrázku 2.7 je vyobrazen časový průběh vstupního signálu, který obsahuje promluvu deset a následně je k němu přikreslena jeho vstupní 26

Obr. 2.6: Časový průběh středního průchodu nulou vstupního signálu vykreslený pomocí plot.m ve třídě myzcf. Obr. 2.7: Časový průběh vstupního signálu (modrý), středního průchodu nulou (zelený) a krátkodobé energie vstupního signálu (červená) vykreslený pomocí plot.m ve třídě myzcf. 27

energie vypočtena myenergy a pomocí myzcf nakonec přikreslen i střední průchod nulou. Na tomto obrázku je dobře patrné, že části se znělou hláskou ( e ) mají vysokou hodnotu krátkodobé energie, zatím co část s neznělou hláskou ( s )má vysoké hodnoty průchodu nulou. LPC koeficienty mylpc Odvozenou třídou je i mylpc, která opět před vlastním výpočtem příznaku vstupní signál nejprve zpracuje na segmenty. Tato třída je také použita ve dvou případech. Prvním je výpočet LPC koeficientů pro třídu mykmeans v cyklu, kde velikost úseků ovlivňuje uživatel. Druhým případem, kde je tato třída použita je výpočet LPC koeficientů pro vykreslení spektogramu vstupního signálu. Tento spektogram je na obrázku 2.8. Obr. 2.8: Spektogram vstupního signálu z databáze TIMIT SX403.WAV. Implementace vektorové kvantizace mykmeans Pro práci s vektorovou kvantizací byla odvozena třída mykmeans, kde jak název napovídá je použit MacQueenův algoritmus, známý pod názvem k means (viz. 1.3.2). Tato třída byla také použita dvakrát, poprvé v cyklu pro uživatelem volené části a poté při tvorbě vypočteného signálu, ten je ale typu mykmeans. Při tvorbě vypočteného signálu (sg22 ) se využilo hodnot původního signálu (sg1 ), ale hodnoty fonémů ve vlastnosti phn byly naplněny hodnotami získanými v cyklu, kde se poprvé 28

použila třída mykmeans. Pro výpočet referenčních bodů se této třídě zadávají minimálně dva parametry. První parametr je použit při vykreslování jako osa x a druhý je použit jako osa y. Za tímto účelem jsou doplněny vlastnosti odvozených tříd o vlastnost typ, která stanovuje popisek příslušné osy. Výsledné hodnoty referenčních bodů daných shluků pro záznam s obsahem deset, který má čtyři unikátní fonémy d, e, s a t, je vykreslen na obrázku 2.9. Tato třída obsahuje funkci, která má na starosti stanovení vlastnosti phn.[5] Obr. 2.9: Grafické znázornění referenčních bodů (o) ve shlucích pro čtyři fonémy pomocí plot.m ve třídě mykmeans. 2.2.5 Hlavní skript worker.m Cílem této práce bylo sestavit program, který bude ze zvolené nahrávky formátu NIST z databáze TIMIT vypočítávat příznaky pro jednotlivé segmenty a z nich následně pomocí funkce kmeans.m určí hranice fonémů. Tyto hranice jsou následně vykresleny a porovnány s originálními hranicemi. Originální hranice jsou součástí databáze a byly stanoveny ručně. Součástí je i přepis daného fonému podle abecedy TIMITBET. Hlásky mezi hranicemi se pro vypočtené hodnoty hranic nastavují jako *, protože je nelze rozpoznat. Na závěr funkce porovná vypočtené a originální hranice fonémů a stanoví úspěšnost detekce hranic. 29

Databáze TIMIT Databáze je výsledkem společného úsilí Massachusetts Institute of Technology (MIT) a Texas Instruments (TI ) z roku 1993. TIMIT obsahuje širokopásmové nahrávky 630 mluvčích, kteří mluví osmi hlavními dialekty americké angličtiny a ty jsou zaznamenány v souborech *.wav typu NIST (viz 2.2.1). Využívá se abeceda TIMITBET, která vychází z abecedy ARPAbet. Protože se na zápis používají i takové symboly, které se běžně nepoužívají a počítačově se zpracovávají velmi těžko agentura ARPA (Advanced Research Projects Agency) proto vyvinula fonetickou abecedu ARPAbet, která používá jen znaky ASCII. Tato databáze obsahuje údaje řeči ve třech souborech, kde jejich význam je popsán v tabulce 2.4 a jejich obsah je zobrazen na obrázku 2.10. V této práci se pracuje především se souborem typu *.phn, kde jsou uloženy originální hranice fonémů pro danou nahrávku. Tyto originální hranice se porovnávají s hodnotami hranic vypočtených pomocí skriptu worker.m.[2] [8] Tab. 2.4: Význam souborů databáze TIMIT. Typ souboru *.TXT *.WRD *.PHN Účel souboru Text promluvy a počet vzorků, rozdělení vzorků podle slov, rozdělení vzorků podle fonémů. Obr. 2.10: Obsah jednotlivých souborů databáze TIMIT pro nahrávku SX403. 30

Popis funkce skriptu Tento skript se spustí zapsáním worker do Command Window, kde se následně zobrazí dialogové okno pro výběr vstupního signálu. V tuto chvíli je spuštěn m file myread.m, který vykoná svojí práci dle reakce uživatele, jak je popsáno v kapitole 2.2.1. Po zvolení nahrávky z databáze TIMIT (sg1 ) je uživatel vyzván k zadání velikosti tolerance pro porovnávání hranic fonému (originální x vypočtené). Tato tolerance je zadávána v milisekundách (např. 0.05). Dále je uživatel vyzván k zadání druhé hodnoty a tou je velikost kroku. Zadaná hodnota reprezentuje počet fonémů, podle kterého bude signál segmentován. Velikost kroku volíme např. 5, pro vnitřní cyklus, pomocí kterého se vypočítávají hodnoty příznaků (myenergy, myzcf a mylpc, které následně zpracuje mykmeans) pro dané části vstupního signálu. Nyní jsou vypočteny hodnoty phn. Po dokončení cyklu se znovu vypočítají příznaky, ale tentokrát pro celý vstupní signál. Následně se provede porovnání hodnot originálních hranic s hodnotami hranic vypočtených a upravených velikostí zadané tolerance. Výsledné hodnoty hranic jsou vykresleny do grafu a číselné vyhodnocení je zobrazeno v Command Window. Tento princip zachycuje vývojový diagram 2.11. Dílčí část zpracování hranic Po té, co jsou vypočteny hodnoty příznaků původního vstupního signálu (sg1 ) se vytvoří nový signál sg22 třídy mykmeans a je následně naplněn hodnotami vypočtených phn. V této fázi přichází nově vytvořený signál (sg22 ) do funkce třídy mysignal getphn.m. Tato funkce si z hodnot phn vezme jen číselnou část a znakovou část ( * ) zanedbá, jak je vidět na obrázku 2.12. Po zpracování hodnot ze signálu, co je vstupem funkce getphn.m je zjištěno, z jaké třídy pochází. Při vykreslování se hodnoty hranic originálních, které jsou třídy mysignal vykreslí do spodní části grafu. Hodnoty, které jsou vypočtený a nyní v signálu sg22 třídy mykmeans se vykreslí do horní části grafu. Takto stanovené hranice se přikreslí do grafu, ve kterém je zobrazen vstupní signál, krátkodobá energie a střední průchod nulou (viz obr. 2.13). Jako poslední se spouští funkce evaluation.m, která vyhodnotí správnost detekce originálních hranic. Při tomto vyhodnocování můžou nastat tři stavy: hranice nebyla detekována originální hranice je v oblasti, kde není detekována vypočtená hranice, nesprávně detekovaná hranice originální hranice není v oblasti, kde byla detekována vypočtená hranice, správně detekovaná hranice originální hranice je v oblasti, kde byla detekována vypočtená hranice. Množství nesprávně detekovaných hranic je vyšší, protože hodnoty příznaků (krátkodobá energie, střední průchod nulou a LPC koeficienty), které jsou vypočítávány 31

Obr. 2.11: Vývojový diagram pro spustitelný skript worker.m. Obr. 2.12: Hodnoty pro vlastnost phn nahrávky s textem deset. 32

Obr. 2.13: Vykreslení originálních (černých) a vypočtených (zelených) hranic phn nahrávky SX403.WAV. Obr. 2.14: Číselné vyhodnocení detekování hranic phn nahrávky SX403.WAV. v cyklu pro signál sg22 jsou ovlivňovány vstupními parametry (okénko, posunutí). Tyto příznaky ovlivní mykmeans, která vypočítává vlastnost phn a tím ovlivňuje hranice fonémů. Množství nesprávně detekovaných vypočtených hranic se dá snížit vhodnou eliminací přebytečných vypočtených hranic. Jak je možné vidět porovnáním obrázků neupravovaných vypočtených hranic (obr. 2.13) a obrázku vypočtených hranic(obr. 2.15), které byly upraveny. Úprava hranic byla provedena pomocí skriptu elimination.m, který vypočtené hodnoty hranic fonémů projde a ty, které jsou blízko sebe nahradí pouze jednou hranici. Tato hranice je stanovena z hranic v blízkém okolí, které je nastaveno jako tolerance/3. Tato hodnota byla stanovena tak, aby co nejvíce nesprávně detekovaných hranic potlačila a zároveň aby nevytvářela nedetekované hranice. Ve skriptu getphn.m je možné si zvolit (vhodným odkomentováním/zakomentováním) jak se výsledné porovnání provede. 33

Obr. 2.15: Vykreslení originálních (černých) a vypočtených (zelených) hranic phn nahrávky SX403.WAV s aplikací eliminace. Obr. 2.16: s aplikací eliminace. Číselné vyhodnocení detekování hranic phn nahrávky SX403.WAV Při zjišťování závislosti úspěšné detekce na délce segmentu, respektive na počtu fonémů se pro různě signály výsledné hodnoty detekce lišily a naznačovaly, že jednoznačný trend pro tuto závislost není. Vstupní signály NIST byly voleny náhodně a nastavované hodnoty byly stejné (tab. 2.5). 34

Legenda: sd...správně detekované, nd...nedetekované, nds...nesprávně detekované Tab. 2.5: Náhodně zvolená NIST z databáze TIMIT s tolerancí = 0.05. SX403 krok sd nd nsd 3 39 0 29 4 x x x 5 38 1 26 6 38 1 23 7 36 3 26 8 34 5 27 9 36 3 31 10 35 4 25 SA2 krok sd nd nsd 3 31 2 29 4 x x x 5 29 4 27 6 29 4 24 7 29 4 27 8 29 4 30 9 29 4 31 10 33 0 31 SA1 krok sd nd nsd 3 x x x 4 35 5 30 5 x x x 6 x x x 7 35 5 27 8 33 7 24 9 x x x 10 33 7 27 35

3 ZÁVĚR Při realizaci praktické části byla snaha vytvářet jednotlivé části výsledného programu pro automatickou segmentaci řeči pomocí objektů v jazyce Matlab. Tato práce je zaměřena na zpracování vstupního signálu (*.wav typu NIST) z databáze TIMIT. Byly vytvořeny třídy pro výpočty jednotlivých příznaků, které se vypočítávají jak pro celý signál, tak i pro jednotlivé menší části segmenty. Jednotlivé třídy byly zakomponovány do jedné spustitelné třídy worker.m. Třída mysignal zpracovává vstupní signál zvolený uživatelem a následně předává zpracovaný signál dále, kde je cyklicky zpracován dalšími třídami (myenergy výpočet příznaků krátkodobé energie, myzcf výpočet příznaků středního průchodu nulovou úrovní, mylpc výpočet příznaků LPC koeficientů a mykmeans výpočet referenčních bodů a sestavení vypočtených hodnot phn). Následně jsou pomocí funkce getphn.m vyobrazeny výsledné vypočtené hranice spolu s originálními hranicemi a finální funkce evaluation.m vyčíslí správnost těchto detekovaných hranic. Pro vykreslování časových průběhů byly vytvořeny skripty, které ukazují možnost přetížení standardních funkcí v Matlabu, tento skript nese označení shodné se standardní funkcí plot a stem. Pro práci se signálem byl vytvořen skript se jménem Subsref.m, který umožňuje například přístup ke konkrétnímu prvku ve vstupním signálu, výpis hodnoty vzorkovací frekvence, uložení či načtení signálu z počítače, práci s hodnotami polí phn. V diplomové práci je popsán princip vektorové kvantizace, která je realizována ve třídě mykmeans. Při náhodném testování nahrávek za účelem zjištění závislosti úspěšné detekce na délce segmentu se pro různě signály výsledné hodnoty detekce lišily a naznačovaly, že jednoznačný trend pro tuto závislost není. 36

LITERATURA [1] BROOKES, Mike. VOICEBOX is a MATLAB toolbox for speech processing.[online]. 1998 [cit. 15. 4. 2015]. Dostupné z URL: <http://www.cs.cmu. edu/~./mharvill/rats/software_releases/cdf_match_v1/readsph.m>. [2] GAROFOLO, John, et al. TIMIT Acoustic-Phonetic Continuous Speech Corpus LDC93S1.[online]. 1993 [cit. 14. 5. 2015]. Dostupné z URL: <https: //catalog.ldc.upenn.edu/ldc93s1>. [3] HINNER, Jiří. Biometrické metody v bezpečnostní praxi: (1) Třetí pól: Magazín plný pozitivní energie [online]. 2006 [cit. 9. 12. 2014]. Dostupné z URL: <http://3pol.cz/480-biometricke-metody-v-bezpecnostni-praxi-(1)>. [4] E-learningová podpora mezioborové integrace výuky tématu vědomí na UP Olomouc.LUNGOVÁ, Vlasta. KATEDRA ZOOLOGIE A ORNITOLOGIE, PřF UP Olomouc. Stavba a funkce hlasového ústrojí.[online]. 2012 [cit. 7. 12. 2014]. Dostupné z URL: <http://pfyziollfup.upol.cz/castwiki/?p=2661>. [5] MathWorks. MathWorks: Documentation Center.[online]. 1994 2015 [cit. 19. 5. 2015]. Dostupné z URL: <http://www.mathworks.com/help/ stats/kmeans.html>. [6] MathWorks. MathWorks: Documentation Center.[online]. 1994 2015 [cit. 19. 5. 2015]. Dostupné z URL: <http://www.mathworks.com/help/ signal>. [7] EATON, John W.. GNU Octave. GNU Operating System.[online]. 20.3.2015 [cit. 20. 3. 2015]. Dostupné z URL: <https://www.gnu.org/ software/octave/doc/interpreter/object-oriented-programming. html>. [8] LOPES, Carla; PERDIGAO, Fernando. Phone Recognition on the TIMIT Database.[online]. 24.5.2015 [cit. 24. 5. 2015]. Dostupné z URL: <http://cdn.intechopen.com/pdfs/15948/intech-phoneme_ recognition_on_the_timit_database.pdf>. [9] PSUTKA, J.; MÜLER, L.; MATOUŠEK, J.; RADOVÁ, V. Mluvíme s počítačem česky. 1. vyd. Praha: Academia, 2006, 746 s. ISBN 80 200 1309 1. [10] VONDRA, Martin. Kepstrální analýza řečového signálu.[online]. 2001 [cit. 10. 12. 2014]. Dostupné z URL: <http://www.elektrorevue.cz/clanky/ 01048/index.html>. 37

[11] ZAPLATÍLEK, Karel; DOŇAR, Bohuslav. MATLAB: začínáme se signály. 1. vyd. Praha: BEN technická literatura, 2010, 272 s. ISBN 80 730 0200 0. 38

SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK ASCII ARPA ČFA DFT E n IDFT IPA J LPC MIT nd NIST nsd OOP RIFF s(t) SAMPA sd sg1 sg22 TI TIMIT ZČFA American Standard Code for Information Interchange Advanced Research Projects Agency Česká Fonetická Abeceda Diskrétní Fourierova Transformace Discrete Fourier transform Krátkodobá energie signálu Zpětná diskrétní Fourierova transformace Inverse Discrete Fourier Transform International Phonetic Alphabet Kvantizační zkreslení Lineární prediktivní analýza Linear Predictive Coding Massachusetts Institute of Technology Nedetekovaná hranice fonému National Institute of Standards and Technology Neprávně detekovaná hranice fonému Objektově Orientované Programování Resource Interchange File Format Signál spojitý v čase Speech Assesment Methods Phonetic Alphabet Správně detekovaná hranice fonému Vstupní signál obsahující originální hranice fonémů Signál obsahující vypočtené hranice fonémů Texas Instruments Massachusetts Institute of Technology and Texas Instruments Zjednodušená Česká Fonetická Abeceda 39

Z n ω(n) Střední hodnota průchodu nulou Váhová posloupnost okénko 40

A PŘÍLOHA A.1 Obsah DVD Segmentace řeči. Elektronická verze diplomové práce. Vytvořené skripty a soubory tříd v Matlabu (A.1). Databáze TIMIT. Tab. A.1: Přiložené soubory v Matlabu. Název worker.m readsph.m myread.m evaluation.m elimination.m @mysignal @myenergy @myzcf @mylpc @mykmeans Popis Spustitelný soubor. Soubor pro načtení wav typu NIST. Funkce pro otevírání wav. Funkce pro vyčíslení správnosti detekce. Funkce pro eliminaci přebytečných hranic. Adresář pro třídu @mysignal (obsahuje funkce pro danou třídu). Adresář pro třídu @myenergy (obsahuje funkce pro danou třídu). Adresář pro třídu @myzcf (obsahuje funkce pro danou třídu). Adresář pro třídu @mylpc (obsahuje funkce pro danou třídu). Adresář pro třídu @mykmeans (obsahuje funkce pro danou třídu). Kód byl testován ve verzi software MATLAB R2011b. 41