PRACA DYPLOMOWA Inżynierska
|
|
- Andrzej Olejniczak
- 7 lat temu
- Przeglądów:
Transkrypt
1 AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki PRACA DYPLOMOWA Inżynierska Konkatenacyjny syntezator mowy polskiej Concatenative Polish speech synthesis Gęgotek Paulina Korzec Daria Inżynieria Akustyczna (studia międzykierunkowe) Opiekun pracy Dr inż. Jakub Gałka Kraków, rok akademicki 2011/2012
2 Oświadczamy, świadomi odpowiedzialności karnej za poświadczenie nieprawdy, że niniejszą pracę dyplomową wykonaliśmy osobiście i samodzielnie (w zakresie wyszczególnionym we wstępie), i że nie korzystaliśmy ze źródeł innych niż wymienione w pracy.
3 Spis treści 1. Wprowadzenie Opis teoretyczny Rodzaje syntezy mowy Narząd mowy człowieka Fonetyka języka polskiego Klasyfikacja głosek Samogłoski Spółgłoski Główne zjawiska zachodzące w wymowie języka polskiego Koartykulacja Palatalizacja (zmiękczenie) Prozodia w języku polskim Realizacja Baza nagrań sygnałów mowy Corpora Segmentacja nagrań Transkrypcja fonetyczna OrtFon AGH Biblioteka BASS Funkcja kosztu Energia Ton krtaniowy MFCC LPC Metryka Euklidesowa Metryka miejska Grafy struktura danych Wizualizacja grafów za pomocą Graphviz Algorytm Floyda-Warshalla Algorytm Dijkstry
4 SPIS TREŚCI 6 4. Efekty pracy Struktura programu Wywoływanie OrtFona Tworzenie listy fonemów Obliczanie funkcji kosztu Tworzenie grafu Obliczanie najmniejszego kosztu ścieżki Sposób wykorzystania biblioteki Bass Interfejs użytkownika Interfejs graficzny Obsługa programu Ocena syntenzy Wnioski Bibliografia... 43
5 1. Wprowadzenie Celem niniejszej pracy było stworzenie syntezatora mowy polskiej metodą konkatenacji. Metoda ta opiera się na łączeniu jednostek fonetycznych z istniejącej już bazy nagrań mówcy w taki sposób, aby zachowana była prozodia charakterystyczna dla języka polskiego. W tym celu zaimplementowano program syntezujący dowolne polskie słowa, a jakość tej syntezy została oceniona przez subiektywne testy MOS 1 według rekomendacji ITU-T 2 P.800. Autorki pracy wybrały ten temat ze względu na wciąż istniejący problem syntezy mowy na poziomie jak najbardziej zbliżonym do mowy naturalnej. Zrozumiałość wygenerowanych dźwięków nie jest już wyzwaniem, ale wciąż trwają prace nad uwzględnieniem takich właściwości mowy jak intonacja, akcent, wyrażanie emocji. Konkatenacja zdaje się być odpowiednią metodą syntezy do próby rozwiązania tego problemu. Istnieją trzy podstawowe metody realizacji konkatenacyjnej syntezy mowy: łączenie krótkich segmentów fonetycznych (fonemy, difony); łączenia większych segmentów jak trifony, sylaby, całe słowa; łączenie segmentów o różnej długości. Najprostsze wydaje się być sklejanie najmniejszych jednostek mowy, jednak w tym przypadku pojawia się problemem związany z brakiem płynności brzmienia w miejscach konkatenacji, gdyż brzmienie poszczególnych fonemów jest ściśle zależne od sąsiadujących z nimi innych fonemów. Do tej metody stosuje się zatem bazę złożoną z difonów (jednostek akustycznych zaczynających się w połowie pierwszego, a kończących się w połowie drugiego fonemu wyznaczenie środka realizacji głoski może być problematyczne). Wielkość tej bazy zależy od fonotaktyki danego języka i może zawierać ok difonów dla języka polskiego. Synteza tą metodą daje dość dobre efekty mowa jest zrozumiała dla słuchacza, ale nie zachowuje naturalnej prozodii. O wiele lepszym rozwiązaniem wydaje się być użycie większych zlepków słów trifonów, sylab lub nawet całych wyrazów. Pozwala to zachować naturalność przejść między fonemami, jednak baza nagrań drastycznie się zwiększa (w języku polskim można wyróżnić 37 różnych fonemów, ok difonów oraz ponad sylab potrzebnych do utworzenia dowolnego słowa). Taka metoda jest szeroko stosowana zwłaszcza w systemach, które nie posiadają dużego słownika, np. w zegarach podających godzinę. Wybór wyrazów jest tutaj ograniczony, a więc można stworzyć taką bazę nagrań, która będzie zawierać gotowe słowa z zachowaną naturalną intonacją. Opisana synteza jest jednak mało uniwersalna, skuteczna jedynie dla konkretnego zastosowania. Co zrobić w sytuacji, gdy słownik nie jest ograniczony do kilkudziesięciu wyrazów, a zależy nam na uzyska- 1 ang. Mean Opinion Score 2 ang. International Telecommunication Union - Telecommunication Standardization Sector 7
6 8 niu efektu naturalnej mowy ludzkiej? Z pomocą przychodzi stosunkowo niedawno wymyślona metoda selekcji jednostek (w języku polskim nazywana również korpusową). Opiera się na efektywnych algorytmach wyszukiwania jak największych fragmentów bazy nagrań odpowiadających fragmentom syntezowanego tekstu. Pozwala to w dużej mierze na zachowanie naturalnych przejść pomiędzy jednostkami fonetycznymi, gdyż możliwie długie zlepki fonemów pozostają w swoim oryginalnym sąsiedztwie. Oczywiście, jeżeli zależy nam na jak najlepszej prozodii, musimy wykorzystać jak największą bazę nagrań. Z założenia syntezator miał opierać się na gotowej już bazie nagrań mówców, zadaniem autorek było odpowiednie złączenie takich fonemów, aby syntezowana mowa zachowała prozodię. W tym celu należało znaleźć odpowiedni algorytm doboru jednostek fonetycznych. Do transkrypcji fonetycznej z ortograficznej użyto programu OrtFon AGH. Efekt został oceniony subiektywnymi metodami MOS. Praca inżynierska składa się z trzech części. W pierwszej opisano podstawowe zjawiska związane z generowaniem mowy ludzkiej, charakterystykę fonetyki języka polskiego oraz jego prozodii. Przedstawione zostały również pojęcia związane z realizacją syntezy. Następny rozdział zajmuje się dokładnie opisem projektu od strony technicznej - użyte narzędzia oraz problemy napotkane na drodze realizacji. Ostatnia część opisuje otrzymany efekt: budowę wewnętrzną oraz zewnętrzną programu, ocenę otrzymanej syntezy. Na końcu sformułowane zostały wnioski oraz ocena stopnia rozwiązania opisanego problemu.
7 2. Opis teoretyczny 2.1. Rodzaje syntezy mowy Można wyróżnić cztery typy syntezy mowy: - formantową; - artykulacyjną; - konkatenacyjną; - korpusową, będącą modyfikacją metody konkatenacyjnej. 1. Synteza formantowa modelem tego syntezatora są filtry cyfrowe kształtujące charakterystykę częstotliwościową wygenerowanego sygnału, tak by odpowiadała charakterystyce danej głoski, odzwierciedlając jej charakterystyczne formanty. Syntezowana mowa jest niskiej jakości. 2. Synteza artykulacyjna podobnie jak w przypadku syntezy formantowej jest to model oparty na generowaniu mowy za pomocą zbioru reguł. Model ten odzwierciedla działanie ludzkiego toru głosowego. Synteza jest realizowana za pomocą analogowego urządzenia elektromagnetycznego i, ze względu na skomplikowaną budowę tego urządzenia, nie jest praktycznie używana. 3. Synteza konkatenacyjna metoda ta generuje mowę poprzez sklejanie posegmentowanych nagrań głosu lektora. Nagrania są odpowiednio przetworzone i oznaczone, w przygotowanej bazie są wyszukiwane, a następnie modyfikowane i łączone poszczególne segmenty. Segmenty akustyczne mogą stanowić fony, difony, sekwencje fonemów, półsylaby, sylaby. Metoda ta pozwala na dość naturalne zsyntezowanie sygnału mowy przy niewielkim rozmiarze bazy danych. Problem w tej metodzie może natomiast stanowić łączenie fragmentów nagranych w różnych kontekstach (pozycja w zdaniu, typ wypowiedzi) oraz modyfikacja prozodii. 4. Synteza korpusowa opiera się na zasadach takich jak metoda konkatenacyjna, z tą różnicą, że baza nagrań jest dużo większa i zawiera segmenty różnej długości jednocześnie np. difony i sylaby, przy czym każda jednostka jest reprezentowana wielokrotnie. Fragmenty nagrań są dobierane za pomocą funkcji kosztu. Funkcja kosztu oszacowuje, który sposób wygenerowania danej wypowiedzi będzie najbardziej optymalny które fragmenty mają odpowiedni czas trwania oraz odpowiednią intonację Narzad mowy człowieka Budowa narządów mowy pozwala lepiej zrozumieć kwestie związane z powstawaniem artykulacji. 9
8 2.2. Narząd mowy człowieka 10 Narząd mowy składa się z trzech odcinków: 1. Płuca z których wydobywa się powietrze wprawiające w drgania wiązadła głosowe, co w konsekwencji powoduje powstawanie drgań również w kolejnych odcinkach kanału głosowego. Podczas wdechu powiększa się objętość jam opłucnowych, co z kolei powoduje powiększenie objętości pęcherzyków płucnych. Ciśnienie powietrza wewnątrz pęcherzyków spada i w ten sposób, poprzez napływ powietrza z zewnątrz, dochodzi do wyrównywania ciśnień. W trakcie wydechu natomiast zmniejsza się objętość jam opłucnowych, powodując zmniejszenie objętości płuc oraz wzrost ciśnienia w obrębie pęcherzyków płucnych. Powietrze ponownie na zasadzie wyrównywania ciśnień wydostaje się na zewnątrz. Powietrze z płuc przedostaje się do tchawicy, a następnie do krtani. 2. Krtań właściwym generatorem drgań jest krtań. Wewnątrz krtani, położone w jej poprzek, znajdują się dwie pary fałdów utworzonych przez mięśnie i więzadła. Odgrywają one zasadniczą rolę w procesie fonacji. Dolna para fałd to fałdy głosowe, na których brzegu znajdują się więzadła głosowe. Więzadła mogą się od siebie oddalać lub przybliżać. Przestrzeń powstała pomiędzy więzadłami nazywana jest szparą głośni. Do powstania dźwięku niezbędne jest wytworzenie drgań powietrza przechodzącego przez szparę głośni. Drgania te powstają w następujący sposób: podczas wdechu w płucach gromadzi się dostateczna ilość powietrza. Na skutek ruchów mięśni oddechowych powietrze jest wydychane, co wprawia fałdy głosowe w drgania. Fałdy głosowe podczas wydechu ściśle przylegają do siebie, co powoduje wzrost ciśnienia poniżej fałdów, w okolicy podgłośniowej. Gdy ciśnienie przekroczy wartość krytyczną, następuje rozwarcie szpary głośni. Powietrze przepływa przez szparę. Powoduje to spadek ciśnienia podgłośniowego i powrót fałdów głosowych do pierwotnego położenia zwarcia. Naprzemienne cykle rozwierania i zwierania fałdów głosowych powodują powstawanie dźwięku tonu krtaniowego. Charakter tonu krtaniowego jest zależny od właściwości fałdów głosowych: długości, napięcia, elastyczności i masy, a także od charakteru przepływu powietrza. Ton podstawowy zmienia swoją częstotliwość, co jest podstawowym czynnikiem kształtującym intonację wypowiedzi oraz melodię głosu. Intonacja i modulacja głosu umożliwiają identyfikację mówcy. Częstotliwość wibracji dla głosu męskiego wynosi w mowie około Hz, dla głosu żeńskiego około Hz. Więzadła głosowe wibrują podczas wymawiania głosek dźwięcznych. 3. Nasada powstały w wyniku ruchów fałdów głosowych ton krtaniowy posiada określoną wysokość i natężenie, jest jednak słaby i bezbarwny. Dźwięk nabiera odpowiedniej siły i barwy w strukturach leżących powyżej szpary głośni przez wzmocnienie lub osłabienie niektórych składowych tonu krtaniowego powstaje głos artykułowany. Rezonatory nasady to: - jama nosowa; - gardło; - jama ustna.
9 Fonetyka j ezyka polskiego W jamie ustnej znajduja si e narzady ruchome jak j ezyk, wargi, podniebienie mi ekkie oraz nieruchome jak z eby, dziasła, podniebienie twarde. Na skutek ruchów narzadów ruchomych oraz ruchów zwierania i rozwierania szcz ek głos artukułowany jest zamieniany na głoski mowy. Widmo danej głoski dz wi ecznej powstaje jako nałoz enie charakterystyki cz estotliwos ciowej traktu głosowego na widmo tonu krtaniowego. W charakterystyce traktu głosowego maksima reprezentuja rezonanse poszczególnych narzadów. W rezultacie powstaje dla kaz dej głoski odmienne widmo zalez ne od konfiguracji narzadów mowy w chwili artykulacji danej głoski, co umoz liwia jej identyfikacj e. Tworzenie głosu i mowy wymaga współdziałania wszystkich wymienionych wyz ej elementów. Jest kontrolowane przy pomocy słuchu oraz os rodkowego układu nerwowego. Figure 2.1: Narzady mowy człowieka 2.3. Fonetyka j ezyka polskiego Mowa składa si e z szeregu dz wi eków zwanych głoskami. Głoska to najmniejszy element, który daje si e wydzielic w czasie oraz intuicyjnie rozpoznac, bez własnego znaczenia. Głosk e moz na wydzielic w wyrazie poprzez jej stały zestaw cech artykulacyjno-akustycznych Klasyfikacja głosek Kryterium akustyczne podziału głosek Fonetyka akustyczna bada dz wi eki ze wzgl edu na włas ciwos ci fizyczne fal wytwarzanych podczas mówienia. W podziale akustycznym wyróz nia si e: Rezonanty głoski, których przebiegi akustyczne wykazuja regularnos c lub maja przebieg tzw. quasi-periodyczny: /a/, /o/, /u/, / e/, /m/, /n/, /l/, /j/, /w/, /i/,/ y/, /e/, /a/, Głoski plozywne (wybuchowe, plozje) odpowiadaja im krótkie nieregularne przebiegi: /p/, /t/, /k/, /g/, /b/, /d/; P. G egotek, D. Korzec Konkatenacyjny syntezator mowy polskiej
10 2.3. Fonetyka języka polskiego 12 Frykaty składają się z przebiegów nieregularnych zwanych frykcjami: /f/, /s/, /ś/, /sz/; Afrykaty głoski o przebiegu nieregularnym, których frykcje poprzedzone są słabym impulsem: /cz/; Głoski nosowe w ich widmie można zaobserwować silne tłumienie składowych o wyższych częstotliwościach oraz antyformanty około 900 Hz. Samogłoski nosowe w polskim mają realizację dyftongiczną. Otwarcie nosowe nie jest zsynchronizowane z otwarciem ustnym samogłoska nosowa początkowo jest ustna, po czym następuje płynne otwarcie kanału nosowego i przejście do artykulacji nosowej. Może to powodować problemy przy konkatenacyjnej syntezie mowy; Głoski ustne. Kryterium artykulacyjne podziału głosek: Kryterium artykulacyjne określa mechanizmy wytwarzania dźwięków, udział poszczególnych narządów mowy i ich zachowanie podczas procesu wytwarzania mowy. Podstawowym podziałem w tej klasyfikacji jest podział na spółgłoski i samogłoski. Przy wytwarzaniu samogłosek w środkowej części toru głosowego powstaje kanał bez dużych zwężeń. Spółgłoski to głoski z wargową, przedniojęzykową, środkowojęzykową oraz tylnojęzykową artykulacją. Ze względu na zachowanie się więzadeł głosowych głoski dzielimy na dźwięczne i bezdźwięczne. Dźwięczne powstają, gdy zsunięte więzadła głosowe wibrują, wytwarzając ton podstawowy. Bezdźwięczne powstają przy rozsuniętej głośni. Ze względu na stopień zbliżenia narządów mowy wyróżnia się głoski: - otwarte ; - nosowe ; - boczne; - drżące ; - półsamogłoskowe (otwarte niesylabiczne) ; - szczelinowe ; - zwarto-szczelinowe; - zwarto-wybuchowe. Ze względu na miejsce artykulacji głoski dzielimy na: - Dwuwargowe ; - Wargowo-zębowe; - Przedniojęzykowe-zębowe; - Przedniojęzykowe-dziąsłowe; - Środkowojęzykowe; - Tylnojęzykowe (welarne). Wszystkie polskie głoski są głoskami ekspiracyjnymi modyfikacją wydechu.
11 2.3. Fonetyka języka polskiego Samogłoski Wszystkie samogłoski są dźwięczne, o przebiegach prawie regularnych. Dla ich artykulacji ważne są poziome i pionowe ruchy języka. Samogłoski są ośrodkami sylab każda sylaba zawiera jedną samogłoskę. W języku polskim można wyróżnić osiem samogłosek, sześć ustnych: /a/, /u/, /o/, /e/, /y/, /i/ oraz dwie nosowe: /ę/ i /ą/. Samogłoski nosowe są właściwie samogłoskami /e/ i /o/ wymówionymi z nazalizacją. Zachowują swój nosowy charakter tylko, gdy następują po nich frykatywne spółgłoski. W innych przypadkach wymawia się je jako: - /e/ i /o/, jeśli następuje po nich /l/ lub /ł/; - /eł/ i /oł/, jeśli następuje po nich /ś/ lub /ź/; - /e/ i /o/ + nosowe /m/ lub /n/, jeśli następują po nich głoski plosywne lub afrykaty: 1. /p/ lub /b/ /em/ i /om/; 2. /t/, /d/, /c/ lub /dz/ /en/ i /on/; 3. /k/ lub /g/ /en/ i /on/ Spółgłoski Każdą spółgłoskę można jednoznacznie wyróżnić za pomocą trzech cech związanych ze sposobem artykulacji (stopniem zbliżenia narządów mowy), miejscem artykulacji w jamie ustnej oraz drganiami wiązadeł głosowych bądź ich brakiem. Ze względu na sposób artykulacji wyróżniamy spółgłoski półotwarte (sonorne) oraz spółgłoski właściwe. Spółgłoski półotwarte to: otwarte niesylabiczne, boczne, drżące, nosowe. Wyróżniają je przebiegi złożone z drgań regularnych jak u samogłosek oraz naddźwięczność brak bezdźwięcznych odpowiedników. Spółgłoski właściwe (szczelinowe, zwarto-szczelinowe, zwarto-wybuchowe) posiadają bezdźwięczne odpowiedniki. Dodatkową cechą opisu spółgłosek jest ich twardość lub miękkość. Jest to cecha pochodna od miejsca artykulacji: każda spółgłoska środkowojęzykowa jest miękka, pozostałe są twarde. Dwie takie same spółgłoski, gdy występują jedna po drugiej, są wymawiane jako jedna długa spółgłoska, jednak w przypadku dwóch głosek wybuchowych pierwsza jest wymawiana jako krótka przerwa. Spółgłoska /ł/ przeważnie nie jest wymawiana gdy znajduje się między spółgłoskami lub po spółgłosce innej niż /r/. Dla języka polskiego można wyróżnić 37 fonemów (fonemem nazywamy najmniejszy funkcjonalny element systemu językowego rozróżnialny dla użytkownika danego języka i niosący znaczenie). Przedstawione są one w tabeli nr 2.1.
12 2.4. Główne zjawiska zachodzące w wymowie języka polskiego 14 Fonem w alfabecie IPA Litera w alfabecie języka polskiego Fonem w alfabecie IPA Litera w alfabecie języka polskiego Fonem w alfabecie IPA Litera w alfabecie języka polskiego A a j j ù sz O (nosowe) ą k k t t b b l l u u ts c w ł v w tc ć m m 1 y tù cz n n z z d d ñ ń ü ż E e ï n (zapis fonemu N) ý ź E (nosowe) ę O o dz dz f f p p dü dż g g r r dý dź x h s s i i C ś Table 2.1: Fonemy języka polskiego 2.4. Główne zjawiska zachodzace w wymowie języka polskiego Koartykulacja Koartykulacja jest tendencją do łagodzenia kontrastów między głoskami występującymi obok siebie. Zachodzi dla sąsiednich głosek w jednym wyrazie, a także dla wyrazów sąsiednich (jeden wyraz kończy się na spółgłoskę szczelinową lub zwarto-szczelinową, drugi na taką głoskę się zaczyna). Zjawisko to ma wpływ głównie na spółgłoski; jedynymi samogłoskami ulegającymi zjawisku asymilacji są /ą/ i /ę/. Koartykulacja polega na zmianie miejsca artykulacji, czego rezultatem jest zamiana głoski dźwięcznej na bezdźwięczną i odwrotnie, w zależności od głosek sąsiednich. Ma wpływ na głoski, które mają swoje dźwięczne/ bezdźwięczne odpowiedniki. Głoski podlegające zjawisku koartykulacji: dźwięczne: /b/, /d/, /g/, /w/, /z/, /ż/ (/rz/), /ź/, /dz/, /dż/, /dź/; bedźwięczne: /p/, /t/, /k/, /f/, /s/, /sz/, /ś/, /c/, /cz/, /ć/. Głoski dźwięczne nie mające swoich bezdźwięcznych odpowiedników, czyli: /m/, /n/, /ń/, /l/, /ł/, /r/, nie ulegają temu zjawisku. W języku polskim dźwięczne głoski wybuchowe, frykaty oraz afrykaty występujące na końcu słowa, będącego ostatnim słowem zdania lub wypowiadanego pojedynczo, są wypowiadane jako bezdźwięczne. Powoduje to następujące zamiany: /b/ /p/; /d/ /t/; /g/ /k/; /w/ /f/; /z/ /s/; /ż/rz/ /sz/; /ź/ /ś/; /dz/ /c/; /dź/ /ć/. Drugim przypadkiem występowania koartykulacji jest sytuacja, gdy w słowie występuje grupa dwóch lub trzech spółgłosek (plozja, frykata, afrykata), w której występują zarówno głoska dźwięczna
13 2.4. Główne zjawiska zachodzące w wymowie języka polskiego 15 jak i bezdźwięczna. Grupa ta jest wymawiana w całości jako dźwięczna lub bezdźwięczna w zależności od rodzaju ostatniej głoski grupy. Grupy, które ulegają ubezdźwięcznieniu: grupa dwóch głosek: /bk/ /pk/; /wsz/ /fsz/; /zś/ /sś/; /bs/ /ps/; /bch/ /pch/; /bc/ /pc/; /dzk/ /ck/; /wp/ /fp/; /żk/ /szk/; /wc/ /fc/; /zć/ /sć/; grupa trzech głosek: /bsk/ /psk/; /dsk/ /tsk/; /bszcz/ /pszcz/; /dść/ /tsć/; /wsp/ /fsp/; /wszcz/ /fszcz/; /wść/ /fść/; /zdk/ /stk/; /źdźc/ /śćc/; /żdżk/ /szczk/; /wsch/ /fsch/. Grupy, które ulegają udźwięcznieniu: /kż/ /gż/; /śb/ /źb/; /czb/ /dżb/. Wyjątkiem jest sytuacja, gdy na końcu grupy występuje /w/ lub /rz/ (nie dotyczy to głoski /ż/) poprzedzona głoską bezdźwięczną. Wówczas /w/ i /rz/ tracą swoją dźwięczność i zamieniają się w /f/ i /sz/. W tym przypadku następuje asymilacja progresywna. W przypadku koartykulacji międzywyrazowej dźwięczność jest uwarunkowana jakością brzmienia spółgłoski zaczynającej drugi wyraz Palatalizacja (zmiękczenie) W języku polskim wyróżniamy spółgłoski miękkie (środkowojęzykowe) oraz twarde (pozostałe miejsca artykulacji). Spółgłoski środkowojęzykowe są artykułowane za pomocą wyraźnego uniesienia środkowej części języka i zbliżeniu jej do podniebienia twardego, tworząc zwarcie lub szczelinę. Zalicza się do nich: /ś/, /ź/, /ć/, /dź/, /ń/. Stanowią one odrębny dźwięk, nie są miękkimi realizacjami głosek /s/, /z/, /c/, /dz/, /n/. Spółgłoski zmiękczone to przede wszystkim spółgłoski wargowe: /p/, /b/, /f/, /w/, /m/. Wymowa zmiękczonych odpowiedników zachowuje wszystkie cechy artykulacyjne oprócz jednej język nie pozostaje na dnie jamy ustnej, lecz podnosi się i wysklepia ku górze. Artykulacja średniojęzykowaśredniopodniebienna zmienia rezonans spółgłosek wargowych, ale nie dodaje im szmeru. Palatalizacji podlegają także spółgłoski tylnojęzykowe: /k/, /g/, /h/. Posiadają już one artykulację językową, więc w tym przypadku nie jest dodawany nowy ruch artykulacyjny przy użyciu innego narządu, lecz jest modyfikowana artykulacja podstawowa, dodając rezonansu miękkości (poprzez rozszerzenie artykulacji od tyłu ku przodowi). Zmiękczenie przedniojęzykowych: /t/, /d/, /c/ polega na rozszerzeniu artykulacji atakując podniebienie twarde od przodu. Ten rodzaj palatalizacji występuje głównie w wyrazach obcego pochodzenia. Spółgłoski zmiękczone pojawiają się w prawostronnym sąsiedztwie samogłoski /i/, spółgłoski /j/ oraz spółgłosek środkowojęzykowych Prozodia w języku polskim Mianem prozodii określane są brzmieniowe właściwości mowy, takie jak akcent, intonacja i iloczas. Cechy prozodii współwystępują w mowie, mają wpływ na siebie nawzajem. Są zauważalne, gdy zachodzą różnice między danym fragmentem wypowiedzi a fragmentami sąsiednimi (np. między dwoma
14 2.4. Główne zjawiska zachodzące w wymowie języka polskiego 16 sylabami). Mogą wyróżniać ośrodki sylab akcent wyrazowy, iloczas, ton głosu lub całe sylaby akcent zdaniowy, intonacja zdaniowa, tempo mowy, rytm tzw. prozodyczne cechy składniowe. Akcent Akcent nie jest zjawiskiem czysto fonetycznym, ale fonetyczno-składniowym. Uwypukla pewne fragmenty wypowiedzi i ze względu na ich rozmiar wyróżniamy: - akcent wyrazowy dotyczący sylaby; - akcent zdaniowy dotyczący wyrazu. Akcent wyrazowy W języku polskim akcent jest stały pod względem fonetycznym, przeważnie przypada na przedostatnią sylabę wyrazu akcent paroksytoniczny. Może także padać na trzecią sylabę od końca, np.: - w wyrazach obcego pochodzenia zakończonych na -ika/-yka (matematyka, muzyka, panika); - w formach 1. i 2. osoby liczby mnogiej czasu przeszłego (pracowaliście); - w formach 1., 2. i 3. osoby liczby pojedynczej trybu przypuszczającego (poszłabym, poszedłbyś, poszłaby). Na sylabę czwartą od końca pada np. w formach 1. i 2. osoby liczby mnogiej trybu przypuszczającego (zrobilibyście). Czasami występuje również akcent inicjalny dodatkowy akcent na pierwszej sylabie oraz oksytoniczny na ostatniej sylabie (głównie przy wymowie skrótów). Własnego akcentu nie mają zaimki, partykuły oraz przyimki. Dzięki stabilności miejsca występowania akcent wyrazowy pełni funkcję demarkatywną, zapobiegając zacieraniu się granic między wyrazami oraz zachodzeniu jednych na drugie. Terminem niezbędnym do omówienia akcentu wyrazowego jest sylaba. Jest to grupa składająca się z samej samogłoski, samogłoski ze spółgłoskami lub ze spółgłosek zgłoskotwórczych w wyjątkowych przypadkach. Sylaba przeważnie kończy się samogłoską (nie jest to zasadą w przypadku, gdy sylaba znajduje się na końcu słowa). Grupy spółgłosek występujące po samogłosce są przenoszone do następnej sylaby, za wyjątkiem spółgłosek /m/, /n/, /ń/, /l/, /ł/, /j/, które, gdy występuje po nich kolejna spółgłoska, są dołączane do poprzedniej sylaby. W przypadku podwójnej spółgłoski jak np. w słowie wanna, para spółgłosek jest rozdzielana. W języku polskim każda funkcjonalna sylaba posiada samogłoskę. Przeważnie na samogłoskę (ośrodek sylaby) przypada szczyt intensywności w obrębie sylaby. Sylaby należy więc porównywać między sobą pod względem intensywności porównując poziomy samogłosek. Na krańcach sylaby natężenie i donośność dźwięku maleją. Akcentem można nazwać cechę fonetyczną sylaby, która wyróżnia słowa lub grupy słów pod względem morfologicznym lub semantyczno-syntaktycznym. Wyróżniamy cztery typy cech fonetycznych: barwę, wysokość, czas trwania (iloczas), siłę (natężenie). Cechom tym odpowiadają następujące cechy artykulacyjne: ruchy narządów mowy poza okresowymi drganiami wiązadeł głosowych, okresowe drgania wiązadeł głosowych, trwanie artykulacyjnych ruchów narządów mowy (poza wiązadłami głosowymi), wielkość wysiłku mięśniowego przy artykulacji; cechy akustyczne: widmo, częstotliwość podstawowa, czas przebiegu, intensywność; cechy audytoryczne: typ segmentu fonicznego, intonacja, długość trwania segmentu, głośność. Sylaby mogą różnić
15 2.4. Główne zjawiska zachodzące w wymowie języka polskiego 17 się między sobą pod względem wchodzących w ich skład segmentów fonicznych, wysokością przebiegu, długością poszczególnych segmentów, dynamiką. Polski akcent główny oddziaływuje przede wszystkim na sylabę, na którą pada. Spółgłoski sylaby akcentowanej są tylko lekko wzmocnione oraz wydłużone, natomiast wyraźniej zwiększa się energia i iloczas samogłoski, akcent podwyższa ją także intonacyjnie. Samogłoski sylab przedakcentowych są przeważnie słabsze od niej, jeszcze słabsze są samogłoski poakcentowe. Akcent języka polskiego jest głównie akcentem siły tzw. akcent dynamiczny, wzmacniający natężenie głosu. Intonacja Intonacja to nadawanie wypowiedzi pewnego rodzaju melodii poprzez zmiany tonu głosu, przez co wyrażany jest jej specyficzny charakter. Poprzez intonację dokonuje się segmentacja wypowiedzi możliwe jest rozpoznanie zakończenia zdań i fraz oraz rozróżnienie zdań oznajmujących, pytających i rozkazujących. Intonacja ujawnia także stosunek osoby mówiącej do wypowiadanej treści. Dla języka polskiego można wyróżnić trzy rodzaje konturu intonacyjnego (zmian tonu głosowego): Kadencja niski ton na ostatniej sylabie w przypadku zdań oznajmujących nie wymagających uzupełnienia, wykrzyknikowych oraz pytań o uzupełnienie. Kadencja wyraża całkowite zamknięcie całości, po której może nie być nic lub może nastąpić osobna całość, nie związana z poprzednią; Antykadencja wysoki ton na ostatniej sylabie w przypadku zdań oznajmujących wymagających uzupełnienia (wypowiedzi urwanych) oraz pytań o rozstrzygnięcie (pytań, na które odpowiada się tak lub nie ). Jest oznaką niezupełności, wymaga kontynuacji, dalszego objaśnienia lub zakończenia; Progrediencja brak silnego wzrostu, jak i spadku tonu podstawowego w obrębie ostatniego wyrazu charakterystyczny dla wypowiedzi urwanych. Pauzy mogą stanowić środek demarkacyjny wypowiedzi, rozgranicznik między kadencjami, antykadencjami i progrediencjami. Przy ustalaniu intonacji wypowiedzi istotny jest jej podział na segmenty z uwzględnieniem znaków przestankowych. W praktyce systemy syntezy mowy realizują na ogół tylko trzy zjawiska dotyczące intonacji: 1. zwiększanie częstotliwości podstawowej przy wyliczeniach po kolejnym elemencie, 2. zwiększenie częstotliwości podstawowej na końcu pytania, 3. opadanie częstotliwości podstawowej przy końcu innych wypowiedzi. Iloczas Iloczas charakteryzuje specyficzny czas trwania poszczególnych dźwięków mowy. W języku polskim iloczas jako zjawisko istotne ze znaczeniowego punktu widzenia nie występuje nie można wskazać par wyrazów o różnym znaczeniu różniących się jedynie długością trwania którejś z głosek. Może być jednak rozpatrywany jako zjawisko współistniejące z akcentem akcent ma przeważnie wzdłużający wpływ na czas trwania segmentu mowy, przy czym wyraźniej można zaobserwować to dla
16 2.4. Główne zjawiska zachodzące w wymowie języka polskiego 18 samogłosek. Dla niektórych spółgłosek jak /r/ i /l/ wydłużenie czasu wymowy praktycznie nie zachodzi. Wpływ akcentu obejmuje całą sylabę, jednak to samogłoski są głównym nośnikiem cech prozodycznych i głównie na nich zasadza się melodia wypowiedzi. Iloczas samogłoski dla sylaby wygłosowej jest dłuższy w przypadku sylaby otwartej (zakończonej samogłoską) niż zamkniętej. Wydłużenie czasu trwania samogłoski jest spowodowane także występowaniem po niej głoski dźwięcznej, natomiast następstwo zbitki spółgłoskowej powoduje jej skrócenie. Iloczas pełni w języku polskim również funkcje ekspresywne wydłużone głoski nadają wypowiedzi bardziej wyrazistego charakteru.
17 3. Realizacja 3.1. Baza nagrań sygnałów mowy Corpora Baza ta została stworzona w 1997 roku w Poznaniu. Składa się z 365 wypowiedzi każdego z 45 mówców (łącznie ). Nagrań dokonano w pomieszczeniach Politechniki Poznańskiej, Wrocławskiej i Śląskiej w warunkach normalnych w bezpośredniej bliskości pracującego komputera. Jakość nagrań: częstotliwość próbkowania 16kHz, długość słów 12 bitów. Pliki zapisane są w formacie *.wav. W każdym podkatalogu umieszczone są nagrania tylko jednego mówcy, a nazwy tych podkatalogów określają jego płeć, wiek i mikrofon, jakim został nagrany. Pierwsze dwa znaki to inicjały mówcy, trzecia cyfra określa numer nagrania tego mówcy lub kolejnego mówcę o takich samych inicjałach. Czwarty znak określa jego płeć, a piąty rodzaj mikrofonu (dokładny opis w znajduje się w tabelach 3.1, 3.2). symbol M K C D płeć mężczyzna kobieta chłopiec dziewczynka Table 3.1: Opis symboli w nazwie (czwarty znak) symbol typ mikrofonu 1 pojemnościowy 2 dynamiczny Table 3.2: Opis symboli w nazwie (piąty znak) Ogółem w bazie na 45 mówców znajduje się 11 kobiet, 28 mężczyzn, 3 dziewczynki i 3 chłopców. Przedziały wiekowe mówców znajdują się w tabeli 3.3. Spośród wszystkich mówców do syntezy wybrano wypowiedzi jednego kobiety w wieku lat o inicjałach AF nagrywanej mikrofonem pojemnościowym (AF1K1). Nazwy plików w katalogu konkretnego mówcy mają taką samą nazwę jak ów folder, ale poszerzoną o 3 znaki kodujące dane wyrażenie. Słownik bazy zawiera litery alfabetu polskiego (33), cyfry (10), imiona polskie (200), polecenia sterujące (8) oraz inne wypowiedzi (114). Spis wszystkich wyrażeń znajduje się w dodatku D na końcu pracy. Z uwagi na niepoprawny zapis w pliku *.mlf, nie skorzystano z pliku AF1K1JOT.WAV. 19
18 3.1. Baza nagrań sygnałów mowy Corpora 20 mówca wiek mówca wiek mówca wiek AF1K JP1M PW1M AK1C JP2M RG1M AK2C JS1M SG1M AO1M KD1M SG2M BC1K KD2M SG3M BC1M LD1K SP1M BW1K LD2K SW1M CK1C LK1D TS1M DG1M MR1M TZ1M HK1K MS1M WB1M HK2K OJ1K WM1M IS1K PB1K ZB1M JC1M PL1K ZK1D JK1M PL1M ZK1M JO1M PS1M ZK2D Table 3.3: Przedział wiekowy mówców Wszystkie 37 fonemów występuje w sumie razy. W bazie znajduje się 1271 różnych difonów, w sumie Z uwagi na występowanie wielu instancji danego difonu, zasadne staje się posłużenie metodą selekcji jednostek przy syntezie mowy Segmentacja nagrań Baza nagrań sygnałów mowy Corpora zawiera również pliki z transkrypcjami fonetycznymi wszystkich wyrażeń mówcy: *.chr zawiera same transkrypcje słów; *.fon dodatkowo każdemu fonemowi przypisuje czas jego rozpoczęcia i zakończenia podany w jednostkach 5ms; *.mlf znajduje się w nim to samo co w *.fon, ale czas jest podany w standardzie HTK 2.0. Poniżej przedstawiony jest fragment pliku *.mlf (segmentacja słowa Piotr ) " / a f 1 k 1 p t r. l a b " s i l p j o t r s i l. Do realizacji syntezatora użyto pliku *.mlf, z którego łatwo można było odczytać czasy początków i końców fonemów. Skorzystano z transkrypcji fonetycznej przedstawonej w tabeli 3.4.
19 3.2. Transkrypcja fonetyczna OrtFon AGH 21 fonem w języku polskim transkrypcja w CORPORA fonem w języku polskim transkrypcja w CORPORA a a ń ni ą a_ N N b b o o c c p p ć ci r r cz cz s s d d ś si e e sz sz ę e_ t t f f u u g g w w h h y y i i z z j j ż rz k k ź zi l l dz dz ł l_ dż drz m m dź dzi n n cisza sil Table 3.4: Transkrypcja fonemów Do bazy nagrań dołączone były również programy BASAK i LABELER, które służą odpowiednio do przeszukiwania zadanych zbitek fonemów oraz do obserwacji przebiegów czasowych sygnałów i ich spektrogramów. Nie zostały one użyte przy realizacji syntezatora Transkrypcja fonetyczna OrtFon AGH Program OrtFon AGH został użyty w projekcie do zamiany polskich słów, podanych przez użytkownika, z transkrypcji ortograficznej na fonemiczną. Jest to prosty program pobierający plik tekstowy i zwracający plik z transkrypcją fonetyczną. Dostępnych jest kilka opcji użytkowania. Najważniejszą z nich jest wybór alfabetu fonetycznego spośród: - X-SAMPA; - IPA; - AGH; - PolPhone; - Corpora. W zależności od wyboru alfabetu można zauważyć istotne różnice w transkrypcji. Spośród wybranych alfabetów do programu użyto alfabetu Corpora, gdyż jest kompatybilny z bazą nagrań Corpora. Można jednak zauważyć niewielkie różnice w zapisie z OrtFona i pliku Corpora *.mlf.
20 3.3. Biblioteka BASS 22 Pozostałe opcje wyboru przy uruchamianiu programu to sposób kodowania oraz tryb zapisu. Kodowanie domyślnie jest ustawione na UTF-8, do wyboru jest również ISO , CP-852 oraz CP Istnieją trzy tryby zapisu. Tryb domyślny transkrybuje tekst ciągły, bez spacji, traktując końce linii jako kropki w tekście. Tryb omni lub omni-dev generuje końcówki osobnych słów w osobnych liniach, a tryb trigramów wszystkie możliwe trigramy w osobnych liniach. Program OrtFon AGH wywoływany jest przez syntezator w trybie ciągłym z flagą spaces, wstawiającą odstępy pomiędzy symbolami, oraz z kodowaniem UTF-8. Poniżej przedstawiona została transkrypcja dwóch przykładowych wyrażeń. konkatenacyjny syntezator mowy polskiej:!konkatenacyjny#syntezator#mowy#polskjej#! książka źdźbło bank żądło:!ksioe_rzka#zidzibl_o#bang#rzondl_o#! 3.3. Biblioteka BASS BASS jest darmową, do niekomercyjnego użytku, biblioteką służącą do obsługi dźwięków. Stworzona została przez Un4seen Developments. W programie wykorzystano ją do odczytu oraz zapisu plików *.wav z bazy nagrań Corpora. Treść licencji biblioteki znajduje się w dodatku A. Biblioteka działa na wielu platformach, w tym na platformie.net, którą wykorzystano do napisania syntezatora. Posiada funkcje pozwalające na obsługę wielu formatów dźwięku (*.wav, *.mp3, *.ogg). Pozwala na ich odtwarzanie, nagrywanie, a także modyfikowanie w czasie rzeczywistym. Funkcje, które wykorzystano w projekcie syntezatora: - BASS_Init funkcja ta inicjalizuje urządzenie wyjścia. Za jej pomocą zainicjalizowano urządzenie domyślne oraz określoną częstotliwość próbkowania; - BASS_StreamCreateFile tworzy strumień z pliku dźwiękowego, w tym przypadku *.wav o długości takiej, jak plik, bez opóźnienia; - BASS_SetConfig - ustawia dane konfiguracyjne; - BASS_Encode_Start - ustawia enkoder na danym kanale; - BASS_Encode_Stop - zatrzymuje enkoder na danym kanale; - BASS_ChannelPlay zaczyna odtwarzać strumień; - BASS_ChannelIsActive zwraca wartość logiczną w zależności od tego, czy odtwarzanie jest w toku; - BASS_ChannelSetPosition - ustawia pozycję odtwarzania strumienia; - BASS_ChannelGetPosition pobiera pozycję odtwarzania strumienia; - BASS_ChannelGetLength pobiera długość odtwarzanego strumienia; - BASS_ChannelStop zatrzymuje strumień; - BASS_StreamFree zwalnia strumień próbek źródła; - BASS_Stop zatrzymuje strumień na wyjściu; - BASS_Free zwalnia wszystkie używane źródła;
21 3.4. Funkcja kosztu 23 - BASSTimer.Tick - tworzy zegar, który za każdym tikiem wykonuje dane zdarzenie; - BASS_ErrorGetCode zwraca kod błędu, gdy jedna z powyższych funkcji jest niewykonalna Funkcja kosztu W korpusowej metodzie syntezy mowy podstawowym zagadnieniem jest sposób doboru odpowiednich jednostek z bazy nagrań. W bazie znajduje się wiele instancji danej jednostki o różnych charakterystykach prozodycznych oraz spektralnych. Wybór odpowiednich sekwencji zapewnia syntezę naturalnie brzmiącej mowy. Jednostki są wybierane na podstawie wartości funkcji kosztu. Na całkowity koszt wykorzystania danego segmentu fonetycznego składają się dwa koszty: doboru oraz konkatenacji. Koszt doboru określa różnice pomiędzy docelowym fragmentem a fragmentem z bazy, który może być jego realizacją. Składa się z następujących składowych: - koszt akcentu, - koszt lewego i prawego kontekstu, - koszt niewłaściwego doboru melodii, - koszt pozycji w sylabie, - koszt pozycji w słowie, - koszt pozycji we frazie, - koszt Part-Of-Speech. Funkcja kosztu konkatenacji określa stopień trudności przejścia pomiędzy sąsiednimi jednostkami. Idealną sytuacją jest, gdy koszt konkatenacji jest mocno skorelowany z percepcją nieciągłości przez słuchacza. Funkcja ta jest implementowana jako miara odległości między parametrami sygnałów mowy. W niniejszej pracy przy obliczaniu kosztu doboru jednostek skoncentrowano się na koszcie konkatenacji. Funkcję kosztu konkatenacji można zrealizować na wiele różnych sposobów. Parametrami charakteryzującymi nagrania mogą być amplituda, częstotliwość tonu krtaniowego F0 oraz parametry spektralne, np.: współczynniki LPC 1, widmo LP 2, współczynniki MFCC 3, współczynniki LSF 4, współczynniki PLP 5, widmo PLP, współczynniki MCA 6. Odległość między wektorami cech dwóch fragmentów nagrań może być obliczona za pomocą różnych miar odległościowych, jak metryki: Euklidesowa, Mahalanobisa, miejska (Manhattan), czy dywergencja Kullbacka-Leiblera. Autorki skorzystały z następujących parametrów oraz metryk: 1 Linear predictive coding 2 Linear prediction 3 Mel-frequency cepstral coefficients 4 Line spectral frequencies 5 Perceptual linear prediction 6 Multiple centroid analysi
22 3.4. Funkcja kosztu Energia Energia jest miarą siły sygnału. Jest obliczana jako wartość średniokwadratowa sygnału: E x = + n= x 2 n (3.1) Ton krtaniowy Ton krtaniowy został obliczony za pomocą funkcji autokorelacji, która realizuje splot sygnału z jego przesuniętą w czasie wersją: R xx (k) = gdzie k zawiera się w przedziale: N + 1 k N 1. N 1 k 1 x n x n k (3.2) N k Funkcja ta pozwala na określenie dźwięczności sygnału. Dla głosek dźwięcznych przyjmuje wielokrotne maksimum. W celu wyznaczenia tonu krtaniowego istotne jest maksimum z przedziału częstotliwości Hz. n= MFCC MFCC to współczynniki cepstralne w skali melowej. Skala melowa stosowana jest w związku z nieliniowym odbieraniem różnych częstotliwości przez ludzkie ucho poniżej 1 khz zmiany częstotliwości są łatwiej wykrywalne niż dla wyższych częstotliwości. W celu zrekompensowania tej nieliniowości tworzony jest zbiór filtrów trójkątnych dla poszczególnych pasm częstotliwości, rozmieszczonych w nieliniowy sposób na skali częstotliwości. Rozkład filtrów przedstawia poniższy rysunek (Rys.4.2): Figure 3.1: Bank filtrów melowych
23 3.4. Funkcja kosztu 25 Związek między skalą częstotliwości a skalą Mel (Rys.4.3): Figure 3.2: Skala melowa w odniesieniu do herzów Skale można przeliczyć między sobą na podstawie zależności: mel(f) = 2595 log(1 + f 700 ) (3.3) f(mel) = 700 (10 m/2595 1) (3.4) Współczynniki MFCC są obliczane według poniższego algorytmu: Figure 3.3: Schemat obliczania MFCC Cechy MFCC o indeksie równym lub wyższym od indeksu cechy o maksymalnej wartości (który odpowiada częstotliwości podstawowej mówcy) są reprezentatywne jedynie dla mówcy, nie dla wypowiadanego dźwięku, mogą zostać pominięte LPC LPC jest metodą kodowania opartą na liniowym modelu predykcji. W metodzie tej szacuje się wartości sygnału u(k) na podstawie p wartości z chwil poprzednich: u(k -1), u(k - 2), u(k - 3),..., u(k - p). Oznaczając przez z(k) wynik predykcji sygnału możemy zapisać: z(k) = gdzie k > p, a i współczynniki predykcji. p (a i u(k i)) (3.5) i=1
24 3.5. Grafy struktura danych 26 W celu uzyskania współczynników LPC oblicza się najpierw współczynniki autokorelacji pomiędzy próbkami sygnału, następnie stosuje się algorytm Levinsona-Durbina. Predykcja liniowa analizuje sygnał poprzez estymację formantów, a następnie wycięcie ich z sygnału i estymację intensywności oraz częstotliwości pozostałego szumu. Współczynniki LPC odwzorowują model traktu głosowego, w którym został wygenerowany sygnał mowy Metryka Euklidesowa D Eu (X, Y ) = n (X i Y i ) 2 (3.6) i= Metryka miejska n D M (X, Y ) = X i Y i (3.7) i= Grafy struktura danych Do obliczania kosztu ścieżek różnych kombinacji fonemów wykorzystano grafy. Każdy fonem przestawiony został jako pojedynczy wierzchołek grafu, a koszt konkatenacji jako połączenia (krawędzie) pomiędzy dwoma wierzchołkami. W ten sposób można było zastosować metodę szukającą najkrótszej, a więc i najlepszej drogi wyboru fonemów tak, aby synteza brzmiała jak najbardziej naturalnie. Graf, jak i algorytm wykorzystany w celu jak najlepszego doboru fonemów, zaczerpnięte zostały z biblioteki QuickGraph na licencji Ms-PL 7. Treść licencji biblioteki znajduje się w dodatku B. Jest to najpopularniejsza biblioteka dostępna w środowisku.net przeznaczona do obsługi grafów. Zawiera ona wszystkie najczęściej używane algorytmy grafowe, dostosowane do różnych rodzajów grafów kierunkowych i nie, między innymi: wyszukiwanie najkrótszej ścieżki; wyszukiwanie k-najkrótszych ścieżek; algorytm A*; maksymalny przepływ; minimalne drzewo rozpinające. W realizacji syntezatora wykorzystano dwie podstawowe funkcje biblioteki QuickGraph: 7 Microsoft Public License
25 3.5. Grafy struktura danych 27 AddVertexRange - dodaje wierzchołek do grafu; AddEdge - dodaje krawędź do grafu (pomiędzy dwoma wierzchołkami) Wizualizacja grafów za pomoca Graphviz Do wizualizacji grafów (niezwykle przydatnej przy poszukiwaniu błędów w implementacji grafu i samego algorytmu) posłużyła wspierająca QuickGraph biblioteka Graphviz. QuickGraph generuje kod *.dot i wysyła go do Graphviz. Oto przykładowy diagram (Rys. 4.4): Figure 3.4: Przykładowy graf: praca dyplomowa Algorytm Floyda-Warshalla QuickGraph do obliczania ścieżki o najmniejszym koszcie w grafie z wieloma źródłami wykorzystuje algorytm Floyda-Warshalla. Algorytm ten zakłada, że najkrótsza droga wiodąca z wierzchołka A do B, przechodząca przez punkt C to droga złożona z najkrótszego odcinka łączącego A - C oraz C - B. W ten sposób już na początku algorytm tworzy tablicę najkrótszych ścieżek i w kolejnych krokach dołącza do niej ścieżki kolejnych wierzchołków. Złożoność algorytmu wynosi O( V 3 ) (gdzie V - liczba wierzchołków).
26 3.5. Grafy struktura danych 28 Niestety już po pierwszych próbach wygenerowania syntezowanych słów okazało się, że działanie programu trwa zbyt długo (jedno krótkie słowo kilkanaście sekund), więc postanowiono skorzystać z innej znanej metody wyszukiwania najkrótszej ścieżki w grafie Algorytm Dijkstry Algorytm Dijkstry jest metodą wyszukiwania najkrótszych ścieżek pomiędzy wybranym wierzchołkiem grafu a wszystkimi pozostałymi. Przez najkrótszą ścieżkę jest rozumiana ścieżka o najmniejszym koszcie przejścia. Koszt przejścia jest obliczany jako suma wag krawędzi łączących poszczególne wierzchołki. Algorytm Dijkstry jest stosowany do struktury grafu o jednym źródle oraz krawędziach o nieujemnych wagach. Jego złożonośc to O( E + V log V ) (gdzie V - liczba wierzchołków, E - liczba krawędzi). Jego implementacja w projekcie znacząco przyspieszyła czas działania syntezy. Algorytm przebiega według następujących kroków: 1. Wybór wierzchołka początkowego; włączenie go do zbioru wierzchołków odwiedzonych. 2. Początkowe nadanie wierzchołkom cech α numer poprzedniego wierzchołka oraz β waga połączenia. Wierzchołki nie mające bezpośredniego połączenia ze startowym zostają oznaczone: α = 0, β =. 3. Znalezienie wierzchołka o minimalnej wartości połączenia β. Dodanie go do zbioru wierzchołków odwiedzonych. Jeśli w zbiorze znajdują się wszystkie wierzchołki zakończenie algorytmu. 4. Zmiana cech α i β w przypadku, gdy droga od aktualnego wierzchołka jest mniejsza od poprzedniej wartości β. Powrót do pkt. 3.
27 4. Efekty pracy 4.1. Struktura programu Program syntezatora został zaimplementowany w języku C# w środowisku Microsoft Visual Studio. Koszt konkatenacji wszystkich fonemów został policzony osobno w środowisku MATLAB i jako macierz został wyeksportowany do pliku tekstowego. W projekcie zostały zaimplementowane dwa interfejsy: IPhoneticTranscription i ISynthesizer. Pierwszy definiuje funkcję służącą do transkrypcji zapisu ortograficznego na fonemiczny: s t r i n g t r a n s l a t e ( s t r i n g t o T r a n s l a t e ) ; Interfejs ISynthesizer określa trzy funkcje: read czyta tekst przeznaczony do syntezy, finish kończy odtwarzanie plików za pomocą biblioteki BASS, setnewweights wczytuje rodzaj funkcji kosztu wprowadzony przez użytkownika. void r e a d ( S t r i n g toread ) ; void f i n i s h ( ) ; void setnewweights ( s t r i n g f i l e n a m e ) ; Diagram UML 1 pokazujący strukturę klas dołączony został w dodatku C Wywoływanie OrtFona Klasa Ortfon implementująca interfejs IPhoneticTranscription zawiera metody zajmujące się transkrypcją fonemów. Konstruktor klasy tworzy proces wywołujący program OrtFon AGH z podanej ścieżki dostępu z parametrami opisanymi w sekcji 3.2. p u b l i c O r t f o n ( s t r i n g p a t h T o O r t f o n ) { t h i s. p a t h T o O r t f o n = p a t h T o O r t f o n ; o r t f o n P r o c e s s = new P r o c e s s ( ) ; o r t f o n P r o c e s s. S t a r t I n f o. U s e S h e l l E x e c u t e = f a l s e ; o r t f o n P r o c e s s. S t a r t I n f o. W o r k i n g D i r e c t o r y = p a t h T o O r t f o n ; o r t f o n P r o c e s s. S t a r t I n f o. FileName = p a t h T o O r t f o n \ o r t f o n. exe " ; o r t f o n P r o c e s s. S t a r t I n f o. Arguments = " t c o r p o r a s p a c e s i n. t x t o u t. t x t " ; } 1 Unified Modeling Language 29
28 4.1. Struktura programu 30 Metoda translate tworzy plik tekstowy podawany jako argument do programu OrtFon AGH, a następnie odczytuje jego plik wyjściowy, dokonując wstępnej obróbki (usunięcie znaków! z początku i końca tekstu). Zapis fonetyczny jest przechowywany w zmiennej typu string. p u b l i c s t r i n g t r a n s l a t e ( s t r i n g t o T r a n s l a t e ) { System. IO. F i l e. W r i t e A l l T e x t ( p a t h T o O r t f o n \ i n. t x t ", t o T r a n s l a t e + " k o n i e c " ) ; o r t f o n P r o c e s s. S t a r t ( ) ; o r t f o n P r o c e s s. W a i t F o r E x i t ( ) ; s t r i n g t r a n s l a t e d = System. IO. F i l e. ReadAllText ( p a t h T o O r t f o n \ o u t. t x t " ) ; t r a n s l a t e d = t r a n s l a t e d. Remove ( 0, 1) ; t r a n s l a t e d = t r a n s l a t e d. Remove ( t r a n s l a t e d. Length 1, 1) ; return t r a n s l a t e d ; } Tworzenie listy fonemów Klasa PhonemeMap zajmuje się tworzeniem słownika list fonemów. Każda lista zawiera wszystkie instancje danego fonemu. Natomiast każdy poszczególny fonem posiada informacje o pliku pochodzenia, oraz o pozycji początku i końca tego fonemu w pliku wav. Listy jednakowych fonemow tworzone są z pliku *.mlf w metodzie readphonemesfrommlf. W pętli odczytywana jest każda linia osobno. Jeśli zawiera odpowiednie wyrażenie, wczytywana jest do tablicy stringów values (czasy i fonem) lub do stringa currentpath (nazwa pliku po uprzedniej obróbce). Wszystkie parametry są następnie przypisanie do obiektu typu Phoneme. p u b l i c void readphonemesfrommlf ( s t r i n g f i l e p a t h ) { s t r i n g [ ] l i n e s = System. IO. F i l e. R e a d A l l L i n e s ( f i l e p a t h ) ; i n t phonemecount = l i n e s. Length ; s t r i n g c u r r e n t P a t h = n u l l ; i n t i n d e x = 0 ; f o r ( i n t i = 0 ; i < phonemecount ; i ++) { i f ( Regex. IsMatch ( l i n e s [ i ], " \ \ " ) ) { c u r r e n t P a t h = l i n e s [ i ] ; c u r r e n t P a t h = c u r r e n t P a t h. Remove ( 0, 3) ; c u r r e n t P a t h = c u r r e n t P a t h. Remove ( c u r r e n t P a t h. Length 5) ; c u r r e n t P a t h = c u r r e n t P a t h. ToUpper ( ) ; } e l s e i f ( Regex. IsMatch ( l i n e s [ i ], " \ \ d+ \ \ d+ \ \ w+" ) ) { s t r i n g [ ] v a l u e s = l i n e s [ i ]. S p l i t ( ) ; add ( new Phoneme ( c u r r e n t P a t h, Convert. ToInt64 ( v a l u e s [ 0 ] ), Convert. ToInt64 ( v a l u e s [ 1 ] ), v a l u e s [ 2 ], i n d e x ++) ) ; } }
29 4.1. Struktura programu 31 Zarządzanie listami odbywa się automatycznie dzięki metodzie add. Sprawdzany jest w niej warunek, czy słownik posiada już dany klucz. Jeśli tak, do danej listy w słowniku dopisywany jest kolejny fonem, jeśli nie, tworzona jest najpierw nowa lista, a następnie do słownika dodawany jest nowy klucz i nowa wartość w postaci jednoelementowej listy. p u b l i c void add ( Phoneme p ) { i f ( p h o n e m e D i c t i o n a r y. Keys. C o n t a i n s ( p. g e t L e t t e r ( ) ) ) { p h o n e m e D i c t i o n a r y [ p. g e t L e t t e r ( ) ]. Add ( p ) ; } e l s e { L i s t <Phoneme> phonemelist = new L i s t <Phoneme > ( ) ; phonemelist. Add ( p ) ; phonemedictionary. Add ( p. g e t L e t t e r ( ), phonemelist ) ; } } Klasa zawiera ponadto funkcję kopiującą listę fonemów (metoda clone), nowa instancja listy potrzebna jest do prawidłowego stworzenia grafu fonemów Obliczanie funkcji kosztu Implementację funkcji kosztu konkatenacyjnego wykonano w pakiecie MATLAB. Wczytane fonemy zapisano do macierzy. Obliczono elementy dla wszystkich par plików. Dla fonemów sąsiadujących ze sobą w jednym pliku przypisano zerowy koszt. Oto sposób implementacji obliczeń: obliczenie energii e n e r g i a 1 = sum ( p l i k 1. ^ 2 ) ; e n e r g i a 2 = sum ( p l i k 2. ^ 2 ) ; r o z n i c a _ e n e r g i i ( i, j ) = abs ( e n e r g i a 2 e n e r g i a 1 ) ; obliczenie tonu krtaniowego (składa się z trzech części - autokorelacja sygnału, ustalenie przedziału, wycięcie fragmentu wykresu autokorelacji, szukanie maksimum) a u t o k o r e l a c j a 1 = x c o r r ( p l i k 1 ) ; a u t o k o r e l a c j a 2 = x c o r r ( p l i k 2 ) ; d l u g o s c 1 = l e n g t h ( a u t o k o r e l a c j a 1 ) ; d l u g o s c 2 = l e n g t h ( a u t o k o r e l a c j a 2 ) ; a u t o k o r e l a c j a _ p o l 1 = a u t o k o r e l a c j a 1 ( round ( ( d l u g o s c 1 / 2 ) ) +1: d l u g o s c 1 ) ; a u t o k o r e l a c j a _ p o l 2 = a u t o k o r e l a c j a 2 ( round ( ( d l u g o s c 2 / 2 ) ) +1: d l u g o s c 2 ) ; %% p r z e d z i a l k o n i e c = f l o o r ( ( 1 / 8 0 ) Fs ) ; p o c z a t e k = f l o o r ( ( 1 / ) Fs ) ; %%k o r e l a c j a Hz a u t o k o r e l a c j a _ p o l 1 ( 1 : p o c z a t e k ) =0; a u t o k o r e l a c j a _ p o l 1 ( k o n i e c : d l u g o s c 1 ) =0; a u t o k o r e l a c j a _ p o l 2 ( 1 : p o c z a t e k ) =0; a u t o k o r e l a c j a _ p o l 2 ( k o n i e c : d l u g o s c 1 ) =0; %%%z n a j d z max
30 4.1. Struktura programu 32 [ ~, indeks_maks1 ] = max( a u t o k o r e l a c j a _ p o l 1 ) ; t o n _ k r t a n i o w y 1 = Fs / indeks_maks1 ; [ ~, indeks_maks2 ] = max( a u t o k o r e l a c j a _ p o l 2 ) ; t o n _ k r t a n i o w y 2 = Fs / indeks_maks2 ; r o z n i c a _ t o n o w ( i, j ) = abs ( t o n _ k r t a n i o w y 2 t o n _ k r t a n i o w y 1 ) ; parametry spektralne - współczynniki LPC (wykorzystana metryka euklidesowa) obwiednia1 = l p c ( p l i k 1, 1 0 ) ; obwiednia2 = l p c ( p l i k 2, 1 0 ) ; r o z n i c a _ l p c ( i, j ) = d i s t ( obwiednia1, obwiednia2 ) ; parametry spektralne - współczynniki MFCC (wykorzystana metryka miejska). Współczynniki MFCC zostały uzyskane dzięki filtracji widma sygnałów bankiem filtrów melowych i obliczenie energii uzyskanego pasma. %s k a l a melowa f_melmax =2595 log10 (1+ (8000 / 700) ) ; o d l e g l o s c = f_melmax / 1 0 ; f o r i =0:10 f_mel ( i +1,1) = i o d l e g l o s c ; f_mel ( i +1,2) = ( 1 0 ^ ( ( f_mel ( i +1,1) / ) ) 1) ; end %f i l t r a c j a widma widmo=abs ( f f t ( s y g n a l ) ) ; krok = f_mel ( 1 1, 2 ) / d l u g o s c _ r a m k i ; f o r j =1:10 poczatek_pasma = f l o o r ( f_mel ( j, 2 ) / krok ) + 1 ; koniec_pasma = f l o o r ( f_mel ( j +1,2) / krok ) ; wyciete_pasmo = widmo ( poczatek_pasma : koniec_pasma ) ; w s p o l c z y n n i k i ( j, 1 ) = l o g ( sum ( wyciete_pasmo ) ) ; end end %w s p ó l c z y n n i k i w s p o l c z y n n i k i 1 = mfcc ( p l i k 1 ) ; w s p o l c z y n n i k i 2 = mfcc ( p l i k 2 ) ; r o z n i c a _ m f c c ( i, j ) = m a n d i s t ( w s p o l c z y n n i k i 1, w s p o l c z y n n i k i 2 ) ; Obliczone parametry zsumowano do macierzy wszystkich kosztów, a następnie zapisano ją do pliku tekstowego Tworzenie grafu Graf tworzony jest w metodzie create, która jako argumenty przyjmuje tekst do zsyntezowania (toread) oraz słownik fonemów. Dla każdego fonemu z tekstu toread wczytywana jest jego lista, a każdy element z listy dodawany jest jako nowy wierzchołek do grafu. Gdy kolejna lista fonemu zostanie wczytana, poprzednia zostaje zapamiętana jako previousletterlist. W ten sposób dodaje się krawędzie pomiędzy kolejnymi fonemami.
31 4.1. Struktura programu 33 i n t e r n a l void c r e a t e ( s t r i n g toread, PhonemeMap phonememap ) { L i s t <Phoneme> p r e v i o u s L e t t e r L i s t = n u l l ; Boolean i s F i r s t = t rue ; foreach ( s t r i n g c u r r e n t L e t t e r in toread. Trim ( ). S p l i t ( ) ) { i f ( c u r r e n t L e t t e r == " " c u r r e n t L e t t e r == " # " c u r r e n t L e t t e r == " " c u r r e n t L e t t e r == "! " ) c o n t inue ; L i s t <Phoneme> c u r r e n t L e t t e r L i s t = phonememap. g e t ( c u r r e n t L e t t e r ) ; i f ( i s F i r s t ) { i s F i r s t = f a l s e ; s t a r t = c u r r e n t L e t t e r L i s t ; } t h i s. AddVertexRange ( c u r r e n t L e t t e r L i s t ) ; i f ( p r e v i o u s L e t t e r L i s t!= n u l l ) { foreach ( Phoneme c u r r e n t in c u r r e n t L e t t e r L i s t ) { foreach ( Phoneme p r e v i o u s in p r e v i o u s L e t t e r L i s t ) { t h i s. AddEdge ( new PhonemeGraphEdge ( p r e v i o u s, c u r r e n t ) ) ; } } } p r e v i o u s L e t t e r L i s t = c u r r e n t L e t t e r L i s t ; } end = p r e v i o u s L e t t e r L i s t ; } Metoda print tworzy wizualizację grafu z rozszerzeniem *.gif na podstawie pliku dot.txt. Na rysunku 4.1 przedstawiono przykładowy graf słowa przeszczep. Z uwagi na przejrzystość rysunku zmniejszono bazę nagrań. Każdy rząd (początek u góry) reprezentuje instancje kolejnych fonemów w słowie. Figure 4.1: Graf przedstawiający słowo przeszczep
32 4.1. Struktura programu Obliczanie najmniejszego kosztu ścieżki Wagi wczytywane są z pliku tekstowego do dwuwymiarowej tablicy w metodzie readfrom- File klasy Weights. Przypisanie ich do konkretnych krawędzi następuje przy wykonywaniu algorytmu Dijkstry w readdijkstra. W metodzie tej dla każdej krawędzi z aktualnie stworzonego grafu wywołana jest funkcja getweight zwracająca wartość spod indeksu tablicy wag dla konkretnej krawędzi (weights[x.source.getindex(), x.target.getindex()]). Algorytm Dijkstry potrafi znaleźć najkrótsze ścieżki jedynie z jednego wierchołka początkowego, dlatego stworzono dodatkowy fonem o indeksie -1 i zerowym koszcie przejścia do każdego innego fonemu, który w tworzonym grafie ma połączenia z każdą instancją pierwszego syntezowanego fonemu. Stworzony zostaje obiekt predecessors, który zapamiętuje z którego wierzchołka koszt dojścia do aktualnego wierzchołka był minimalny. Fragmenty kodu znajdują się poniżej: uruchomienie algorytmu ze sztucznym fonemem jako początek; v a r p r e d e c e s s o r s = new V e r t e x P r e d e c e s s o r R e c o r d e r O b s e r v e r <Phoneme, PhonemeGraphEdge > ( ) ; using ( p r e d e c e s s o r s. A t t a c h ( d i j k s t r a ) ) { d i j k s t r a. Compute ( i m a g i n a r y S o u r c e ) ; } odczytywanie z obserwatora predecessors kolejnych ścieżek wyznaczonych przez algorytm Dijkstry, w celu odnalezienia tej najkrótszej foreach ( v a r v in graph. getend ( ) ) { while ( p r e d e c e s s o r s. V e r t e x P r e d e c e s s o r s. TryGetValue ( v e r t e x, out p r e d e c e s s o r ) ) { d i s t a n c e += getweight ( p r e d e c e s s o r ) ; v e r t e x = p r e d e c e s s o r. Source ; } i f ( d i s t a n c e < s h o r t e s t D i s t a n c e ) { s h o r t e s t D i s t a n c e = d i s t a n c e ; r e a l E n d = v ; } } odczytywanie fonemów tworzących najkrótszą ścieżkę (od końca), odwrócenie kolejności L i s t <Phoneme> toread = new L i s t <Phoneme > ( ) ; PhonemeGraphEdge p r e ; Phoneme v e r = r e a l E n d ; / / toread. Add ( v e r ) ; while ( p r e d e c e s s o r s. V e r t e x P r e d e c e s s o r s. TryGetValue ( ver, out p r e ) ) { toread. Add ( v e r ) ; v e r = p r e. Source ;
33 4.1. Struktura programu 35 } toread. Reverse ( ) ; Właściwe fonemy są przesyłane dodowane są do listy typu PhonemePlayList i przekazywane do funkcji PhonemePlayer.play, gdzie są odtwarzane Sposób wykorzystania biblioteki Bass Odtwarzanie fonemów odbywa się za pomocą funkcji PhonemePlayer.play(PhonemeList toplay), gdzie PhonemePlayList to przeładowana struktura danych List<Phoneme> potrafiąca automatycznie scalać fonemy w taki sposob, by fonemy znajdujące się bezpośrednio po sobie odtwarzane były za pomocą jednego wywołania odtwarzacza. Funkcja play składa się zasadniczo z kolejno: 1. inicjalizacji strumienia z pliku: Bass. BASS_StreamCreateFile (@"AF1K1 \ " + p. g e t P a t h ( ) + ". wav ", 0L, 0L, BASSFlag. BASS_DEFAULT) ; 2. ustawienia pozycji na początku następnego do zagrania fonemu: Bass. BASS_ChannelSetPosition ( stream, p. g e t S t a r t ( ) ) ; 3. uruchomienia timera zatrzymującego odtwarzanie po zakończeniu fonemu: Un4seen. Bass. BASSTimer _updatetimer = new Un4seen. Bass. BASSTimer ( _ u p d a t e I n t e r v a l ) ; _updatetimer. S t a r t ( ) ; Funkcja zatrzymująca wywoływanie uruchamiana jest za pomocą ticku timera i wyłącza odtwarzanie, gdy pozycja w kanale odtwarzania przekracza pozycję końca fonemu: i f ( Bass. BASS_ChannelGetPosition ( s t r e a m ) > end ) { Bass. BASS_ChannelStop ( s t r e a m ) ; Bass. BASS_StreamFree ( s t r e a m ) ; } Scalanie fonemów, jeśli następują po sobie, polega na przypisaniu do sąsiedniego fonemu czasu końca fonemu pierwszego. new p u b l i c void Add ( Phoneme p ) { i f ( i s S u b s e q u e n t ( p ) ) { t h i s [ t h i s. Count 1 ]. s etend ( p. getend ( ) ) ; } e l s e { base. Add ( p ) ; } sb. Append ( p. g e t L e t t e r ( ) ) ; }
34 4.2. Interfejs użytkownika Interfejs użytkownika Interfejs graficzny Program po uruchomieniu wygląda następująco: Figure 4.2: Okno programu po uruchomieniu Aplikacja zbudowana jest z jednego okna, w którym znajdują się następujące elementy: - Tekst pole tekstowe do wprowadzania tekstu do syntezy; - Transkrypcja pole, na którym wyświetla się transkrypcja fonetyczna tekstu; - Auto Trans pole wyboru opcjonalnego trybu automatycznej transkrypcji; - Przycisk Czytaj służący do odtworzenia zsyntezowanej mowy; - Transkrypcja przycisk służący do wygenerowania zapisu fonetycznego; - Pole tekstowe służące do wprowadzenia nazwy pliku z parametrami funkcji kosztu i przycisk Wczytaj zatwierdzający wybór i wczytujący plik do programu. Przykładowy wygląd okna programu w trakcie użycia: Figure 4.3: Okno programu po wczytaniu tekstu Obsługa programu Zadaniem programu jest przetworzenie tekstu w zapisie ortograficznym w dźwięk mowy oraz odtworzenie go. Aby wykonać to zadanie należy wprowadzić z klawiatury lub wkleić tekst, który chcemy
35 4.3. Ocena syntenzy 37 zsyntezować, w pole Tekst oraz, przy oznaczonej opcji Auto Trans, nacisnąć przycisk Czytaj. Dla odznaczonej opcji automatycznej transkrypcji, należy najpierw transkrybować wprowadzony tekst za pomocą przycisku Transkrypcja, po czym nacisnąć Czytaj. Gdy opcja Auto Trans jest odznaczona i użytkownik wciśnie Czytaj bez wcześniejszego użycia Transkrypcja, program nie przetworzy wprowadzonego tekstu na zapis fonetyczny, lecz wykorzysta poprzednią dostępną transkrypcję i na jej podstawie zsyntezuje oraz odtworzy dźwięk. Transkrypcja jest dostępna, jeśli została wygenerowana w bieżącej sesji programu wyświetla się wówczas w polu Transkrypcja; program nie zapamiętuje transkrypcji z poprzedniej sesji. W stworzonym syntezatorze istnieje możliwość wyboru parametrów, na podstawie których wyszukiwane są najodpowiedniejsze jednostki z bazy nagrań. Program może działać przy wykorzystaniu jednego z czterech zestawów parametrów funkcji kosztu: 1. Współczynniki LPC + metryka Euklidesowa (lpc_dist); 2. Współczynniki LPC + metryka Manhattan (lpc_mandist); 3. Współczynniki MFCC + metryka Euklidesowa (mfc_dist); 4. Współczynniki MFCC + metryka Manhattan (mfc_mandist). Funkcja kosztu, wraz z powyższymi parametrami, zostały opisane w rozdziale 3.4. Aby wybrać rodzaj parametrów należy w dolnym polu tekstowym wpisać odpowiednią nazwę: lpc_dist, lpc_mandist, mfc_dist lub mfc_mandist, po czym nacisnąć Wczytaj. Przedstawia to poniższy rysunek: Figure 4.4: Wybór funkcji kosztu Domyślnie program działa przy użyciu mfc_dist. Przy użyciu programu należy zwrócić uwagę na następujące rzeczy: Syntezator nie czyta liczb, dat, godzin itp., jedynie cyfry, dlatego informacje tego typu należy wprowadzać w formie słownej Ocena syntenzy Do oceny działania syntezatora został wykorzystany test MOS (Mean Opinion Score), czyli metoda, która liczbowo wyraża subiektywne wrażenia użytkowników odnośnie jakości działania programu. Ogólne metody określania MOS zostały unormowane przez Międzynarodowy Związek Telekomunikacyjny (ITU) w zaleceniu ITU-T P.800.
36 4.3. Ocena syntenzy 38 Jedną ze skal oceny jakości metody MOS jest ACR (Absolute Category Rating). Ocena ACR jest wyrażona jedną z pięciu cyfr od 1 do 5, gdzie 1 jest najgorszą oceną jakości dźwięku, 5 najlepszą. Poszczególne wartości odpowiadają następującym odczuciom jakości: 1 zła; zrozumienie mowy nie jest możliwe; 2 słaba; zrozumienie mowy jest trudne, bardzo uciążliwe dla słuchacza; 3 średnia; zrozumienie mowy wymaga koncentracji, jest umiarkowanie uciążliwe; 4 dobra; zauważalne błędy, jednak całość zrozumiała; 5 znakomita; zupełna zrozumiałość mowy. Średnia wartość testu zawierająca się w przedziale od 4.0 do 4.5 jest uważana za zupełnie satysfakcjonującą. Wartość poniżej 3.5 przez wielu użytkowników jest nie do zaakceptowania. Celem przeprowadzenia testu, oprócz ogólnej oceny jakości syntezowanej mowy, był wybór parametrów oraz miary odległościowej obliczonych parametrów w funkcji kosztu konkatenacji, które pozwalają na wygenerowanie mowy najbardziej naturalnej. W tym celu każde zdanie testowe zostało zsyntezowane przy użyciu funkcji kosztu konkatenacji o następujących parametrach: energia, ton krtaniowy, współczynniki lpc, miara euklidesowa; energia, ton krtaniowy, współczynniki lpc, miara odległości Manhattan; energia, ton krtaniowy, współczynniki mfc, miara euklidesowa; energia, ton krtaniowy, współczynniki mfc, miara odległości Manhattan. Sposób przeprowadzenia testu W badaniu jakości stworzonego syntezatora wzięło udział 8 osób. Każda osoba odsłuchała jednokrotnie czterech zestawów uprzednio wygenerowanych zdań. Każdy zestaw składał się z trzech zdań i jednego słowa (takich samych dla wszystkich zestawów) zsyntezowanych dla jednej z czterech kombinacji parametrów funkcji kosztu. Każdej odsłuchanej wypowiedzi testowana osoba przypisała, według własnych wrażeń odsłuchowych i stopnia zrozumienia tekstu, ocenę 1-5. Wynik MOS został obliczony dla każdego zestawu jako średnia arytmetyczna z ocen wszystkich słuchaczy. W związku z tym, że ocena wypowiedzi odtwarzanej po nagraniu o bardzo dobrej jakości może różnić się od oceny uzyskanej w przypadku, gdy badana wypowiedź zostanie odtworzona po nagraniu o niskiej jakości oraz z tym, że badana osoba z każdym przesłuchaniem sekwencji testowej stopniowo się jej uczy, została zmieniona kolejność odtwarzania zdań wygenerowanych za pomocą różnych funkcji kosztu.
37 4.3. Ocena syntenzy 39 Zdania użyte w teście W celu lepszego sprawdzenia działania stworzonego syntezatora, przy tworzeniu zdań do testów starano się nie używać słów bądź sekwencji słów zawartych w bazie nagrań Corpora. Wygenerowano następujące wypowiedzi: Czerwony liść kocha jesień. W niedzielę zostanę dobrym kierowcą. Kupisz mi pudełko zapałek? nauczyciel Wyniki testu Stworzony syntezator mowy polskiej został oceniony za pomocą testu MOS. W ocenie programu wzięło udział osiem osób. Na potrzeby testu zostały wygenerowane cztery wypowiedzi, każda w czterech różnych wersjach. Wyniki testu przedstawiają poniższe tabele: Dla parametrów: energia, ton krtaniowy, współczynniki lpc, miara euklidesowa; osoba1 osoba2 osoba3 osoba4 osoba5 osoba6 osoba7 osoba8 zdanie zdanie zdanie słowo Table 4.1: LPC, miara euklidesowa Dla parametrów: energia, ton krtaniowy, współczynniki lpc, miara odległości Manhattan; osoba1 osoba2 osoba3 osoba4 osoba5 osoba6 osoba7 osoba8 zdanie zdanie zdanie słowo Table 4.2: LPC, miara miejska Dla parametrów: energia, ton krtaniowy, współczynniki mfc, miara euklidesowa; osoba1 osoba2 osoba3 osoba4 osoba5 osoba6 osoba7 osoba8 zdanie zdanie zdanie słowo Table 4.3: MFCC, miara euklidesowa
38 4.3. Ocena syntenzy 40 Dla parametrów: energia, ton krtaniowy, współczynniki mfc, miara odległości Manhattan. osoba1 osoba2 osoba3 osoba4 osoba5 osoba6 osoba7 osoba8 zdanie zdanie zdanie słowo Table 4.4: MFCC, miara miejska
39 5. Wnioski Wyniki testu MOS Wyniki zostały zestawione na poniższych wykresach. Porównanie średniej z wszystkich wypowiedzi dla każdego zestawu parametrów: Figure 5.1: Wynik średni dla każdego kosztu Porównanie średniej z użytych w teście zdań: Figure 5.2: Wynik średni dla każdej wypowiedzi 41
40 42 Porównanie średniej oceny dla zsyntezowanego pojedynczego słowa: Figure 5.3: Wyniki dla pojedynczego słowa Ogólne wyniki testu uwzględniające testy dla każdej wypowiedzi i każdego zestawu parametrów przyjmują wartość od 1,56 do 2,06, czyli poniżej wartości uznawanej za satysfakcjonującą przy użyciu testu MOS 3,5. Przy syntezie pojedynczych słów wyniki są zdecydowanie lepsze, jednak nadal znajdują się poniżej wartości 3,5. Wnioski dotyczące skuteczności poszczególnych wersji funkcji kosztu kształtują się następująco najlepiej oceniana synteza została uzyskana przy użyciu mfc_dist (2,06 dla całego testu, 1,58 dla zdań, 3,5 dla słowa), natomiast najgorzej oceniana przy użyciu lpc_mandist (1,56 dla całego testu, 1,29 dla zdań, 2,37 dla słowa). Parametry mfc_dist zostały użyte jako domyślne w programie. Przy syntezowaniu całych zdań lepsze wyniki osiągnęły algorytmy wykorzystujące metrykę Euklidesową (na równi lpc_dist i mfc_dist) niż wykorzystujące metrykę Manhattan (mfc_mandist i lpc_mandist). Przy syntezie pojedynczych słów lepsze okazały się algorytmy wykorzystujące współczynniki MFCC (mfc_dist 3,5 i mfc_mandist 3,25, które były najlepszymi rezultatami w teście) niż współczynniki LPC. Wnioski ogólne Wyniki przeprowadzonego testu MOS pokazują, że działanie syntezatora nie jest satysfakcjonujące (w wielu przypadkach testujące program osoby oceniły zsyntezowane wypowiedzi jako zupełnie niezrozumiałe). Zakładając poprawność segmentacji użytej bazy nagrań oraz prawidłowe działanie modułu dokonującego konwersji zapisu ortograficznego na fonetyczny, należy szukać przyczyny niezrozumiałości syntezowanych tekstów w implementacji programu. Przyczyną może być uproszczenie algorytmu obliczającego funkcję kosztu oraz nie zastosowanie w programie algorytmów wygładzających przejścia pomiędzy jednostkami fonetycznymi. Przyczyną może być także zbyt mała, jak na potrzeby konkatenacji z wyborem jednostek, baza nagrań. W programie skupiono się na części funkcji kosztu odpowiadającej za obliczenie kosztu łączenia, nie uwzględniono natomiast kosztu doboru. Koszt doboru bazuje na takich parametrach jak np. lewy i prawy kontekst jednostki fonetycznej, czy jej pozycja w sylabie i słowie. Dodatkowe uwzględnienie tych cech, z wagą odpowiednią w stosunku do cech
41 43 uwzględnionych w koszcie konkatenacji, pozwoliłoby na bardziej efektywny wybór jednostek. Lepiej dopasowane jednostki przyczyniłyby się do mniej słyszalnych nieciągłości w miejscach łączenia. Dodatkowo nieciągłości można próbować zredukować za pomocą odpowiednich algorytmów, jak np. TD- PSOLA (ang. Time-Domain Pitch-Synchronous OverLap-and-Add). Dodatkowym problemem przy syntezie całych wypowiedzi były krótkie i niewyraźne przerwy między słowami. Z doborem odpowiednich przerw między wyrazami wiąże się kwestia uwzględnienia znaków interpunkcyjnych. Odpowiednie odczytanie interpunkcji pozwala także na określenie typu zdania, co z kolei jest niezbędne do nadania wypowiedzi właściwej intonacji. W realizowanej przez program syntezie nie zostały uwzględnione prozodia, co stanowi jednak drugorzędną kwestię w porównaniu do problemów z nieciągłością w łączeniu jednostek oraz problemem z jednoznacznym określeniem granic międzywyrazowych przez słuchacza. W celu ulepszenia jakości syntezy, do programu można dołączyć moduł normalizujący tekst oraz słownik pozwalający na poprawną transkrypcję wyjątków. Stworzony syntezator nie potrafi poprawnie odczytać daty, godziny itp., odczytuje wyłącznie cyfry, co wymaga wprowadzenia danych takich jak data w formie słownej. Normalizacja tekstu pozwoliłaby na większą dowolność w wprowadzanym tekście. Przy implementacji syntezatora bardzo istotnym aspektem okazał się czas syntezy. Początkowo do wyszukiwania następujących po sobie jednostek o najlepiej dopasowanych parametrach został wykorzystany algorytm Floyda-Warshalla, jednak czas potrzebny na syntezę pojedynczego słowa, oscylujący około wartości kilkunastu sekund, zdyskwalifikował tę metodę wyszukiwania. Zamiast algorytmu Floyda-Warshalla został zastosowany algorytm Dijkstry, co znacznie przyśpieszyło pracę programu. Oprócz zmiany algorytmu, w celu przyśpieszenia pracy, do programu zostały dołączone pliki z obliczonymi wcześniej wartościami funkcji kosztu dla wykorzystanej bazy nagrań, dzięki czemu wartości te nie są obliczane za każdym razem na nowo. Przy dużych bazach nagraniowych uzyskanie wartości funkcji kosztu jest procesem bardzo czasochłonnym. Czasochłonne jest również obliczanie ścieżek o minimalnym koszcie, co czyni zasadnym uznanie wyboru algorytmu wyszukującego za priorytetowe.
42 Bibliografia [1] Zespół Przetwarzania Sygnałów AGH. Dokumentacja programu OrtFon AGH. Akademia Górniczo-Hutnicza, Kraków. [2] J. Tambor D. Ostaszewska. Fonetyka i fonologia współczesnego języka polskiego. PWN, Warszawa, [3] L. Dukiewicz. Intonacja wypowiedzi polskich. Zakład Narodowy im. Ossolińskich, Wrocław, [4] M. Dłuska. Prozodia języka polskiego. PWN, Warszawa, [5] M. Dłuska. Fonetyka polska - artykulacja głosek polskich. PWN, Warszawa-Kraków, [6] S. Grocholewski. Baza nagrań sygnałów mowy CORPORA - instrukcja użytkowania. Politechnika Poznańska, Instytut Informatyki, Poznań, [7] Dokumentacja biblioteki QuickGraph [8] Dokumentacja biblioteki Graphviz [9] Dokumentacja biblioteki BASS. un4seen.com, [10] W. Jassem. Akcent języka polskiego. Zakład Narodowy im. Ossolińskich, Wydawnictwo PAN, Wrocław-Warszawa-Kraków, [11] D. Oliver. Polish Text to Speech Synthesis. University of Edinburgh, Department of Linguistics, [12] K. Szklanny. Przygotowanie bazy difonów języka polskiego dla realizacji syntezy mowy w systemie MBROLA. Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa, [13] K. Szklanny. System korpusowej syntezy mowy dla języka polskiego. XI International PhD Workshop, OWD, [14] R. Tadeusiewicz. Sygnał mowy. Wydawnictwo Komunikacji i Łacznosci, Warszawa, [15] J. Bralczyk W. Gruszczyński. Słownik gramatyki języka polskiego. WSiP, Warszawa,
43 Dodatek A Licence BASS is free for non-commercial use. If you are a non-commercial entity (eg. an individual) and you are not making any money from your product (through sales/advertising/etc), then you can use BASS in it for free. If you wish to use BASS in commercial products, then please also see the next section. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASS IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHAN- TABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASS. YOU USE BASS ENTIRELY AT YOUR OWN RISK. Usage of BASS indicates that you agree to the above conditions. All trademarks and other registered names contained in the BASS package are the property of their respective owners. Commercial licensing BASS is available for use in your commercial products. The licence types available are as follows: SHAREWARE: Allows the usage of BASS in an unlimited number of your shareware ("try before you buy") products, which must sell for no more than 40 Euros each. Non-shareware products are also permitted, but the product price limit is 10 Euros in that case. The price limit can be raised by purchasing duplicate licences, eg. 2 licences doubles it. If you are an individual (not a corporation) making and selling your own software, this is the licence for you. SINGLE COMMERCIAL: Allows the usage of BASS in one commercial product. UNLIMITED COMMERCIAL: Allows the usage of BASS in an unlimited number of your commercial products. This licence is on a per-site basis, eg. if you are creating products with BASS at 2 sites/locations, then 2 licences are required. Please note the products must be end-user products, eg. not components used by other products. These licences only cover your own software, not the publishing of other s software. If you publish other s software, its developers (or the software itself) will need to be licensed to use BASS. These licences are on a per-platform basis, with reductions available when licensing for multiple platforms. In all cases there are no royalties to pay, and you can use future BASS updates without further cost. These licences do not allow reselling/sublicensing of BASS. For example, if a product is a development system, the users of said product are not licensed to use BASS in their productions; they will need their own licences. If the standard licences do not meet your requirements, or if you have any questions, please get in touch ( bass@un4seen.com). Visit the BASS website for the latest pricing: 45
44 Dodatek B Microsoft Public License (Ms-PL) This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor s patent claims that read directly on its contribution. 2. Grant of Rights (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations (A) No Trademark License- This license does not grant you rights to use any contributors name, logo, or trademarks. (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. 46
45 Dodatek C 47
1.Klasyfikacja głosek języka polskiego. 2.Układ narządów artykulacyjnych przy wymowie wybranych głosek.
ZAPRASZAM ZAPRASZAM 1.Klasyfikacja głosek języka polskiego. 2.Układ narządów artykulacyjnych przy wymowie wybranych głosek. 1. Głoski języka polskiego możemy podzielić na dwie podstawowe grupy: - Samogłoski
Synteza mowy. opracowanie: mgr inż. Kuba Łopatka
Synteza mowy opracowanie: mgr inż. Kuba Łopatka Synteza mowy (ang. TTS - Text-To-Speech ) zamiana tekstu w formie pisanej na sygnał akustyczny, którego brzmienie naśladuje brzmienie ludzkiej mowy. Podstawowe
FONETYKA. Co to jest fonetyka? Język polski Klasa III Gim
FONETYKA Język polski Klasa III Gim Co to jest fonetyka? Fonetyka Fonetyka (z gr. phonetikos) to dział nauki o języku badający i opisujący cechy dźwięków mowy, czyli głosek. Zajmuje się ona procesami powstawania
TEORIA WYTWARZANIA DŹWIĘKÓW
1 TEORIA WYTWARZANIA DŹWIĘKÓW MOWY, FORMANTY, MODELOWANIE WYTWARZANIA DŹWIĘKÓW MOWY. mgr inż. Kuba Łopatka PLAN WYKŁADU 1. Teoria wytwarzania dźwięków mowy Ogólna teoria wytwarzania dźwięków mowy Ton krtaniowy
Akustyka mowy wprowadzenie. Opracował: dr inż. Piotr Suchomski
Akustyka mowy wprowadzenie Opracował: dr inż. Piotr Suchomski Kontakt Katedra Systemów Multimedialnych Wydział ETI dr inż. Piotr M. Suchomski, pok. EA 730 e-mail: pietka@sound.eti.pg.gda.pl tel. 23-01
Wstęp do Językoznawstwa
Wstęp do Językoznawstwa Prof. Nicole Nau UAM, IJ, Językoznawstwo Komputerowe Piąte zajęcie 03.11.2015 Dzisiaj: Krótkie prowadzenie do fonetyki Jak powstają głoski? Jak klasyfikujemy i opisujemy głoski?
Korpusy mowy i narzędzia do ich przetwarzania
Korpusy mowy i narzędzia do ich przetwarzania Danijel Korzinek, Krzysztof Marasek Polsko-Japońska Akademia Technik Komputerowych Katedra Multimediów kmarasek@pjwstk.edu.pl danijel@pjwstk.edu.pl 2015-05-18
Rozwój mowy dziecka OKRES ZDANIA - OD 2 DO 3 ROKU ŻYCIA.
Rozwój mowy dziecka OKRES ZDANIA - OD 2 DO 3 ROKU ŻYCIA. Między 2 a 3 rokiem życia następuje rozkwit mowy dziecka. Dziecko zaczyna budować zdania, początkowo są to zdania proste, które są złożone z dwóch,
Z tego rozdziału dowiesz się:
Rozdział 2 Jak powstaje głos? Z tego rozdziału dowiesz się: które partie ciała biorą udział w tworzeniu głosu, jak przebiega proces wzbudzania dźwięku w krtani, w jaki sposób dźwięk staje się głoską, na
Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, Spis treści
Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, 2011 Spis treści Przedmowa 11 Rozdział 1. WPROWADZENIE 13 1.1. Czym jest automatyczne rozpoznawanie mowy 13 1.2. Poziomy
PROGRAM TERAPII LOGOPEDYCZNEJ W PUBLICZNEJ SZKOLE PODSTAWOWEJ
PROGRAM TERAPII LOGOPEDYCZNEJ W PUBLICZNEJ SZKOLE PODSTAWOWEJ W KRZAKACH Cele ogólne planu pracy: artykulacji oraz ich koordynacji); nie umiejętności poprawnej artykulacji wszystkich głosek; Cele szczegółowe:
Automatyczna klasyfikacja zespołów QRS
Przetwarzanie sygnałów w systemach diagnostycznych Informatyka Stosowana V Automatyczna klasyfikacja zespołów QRS Anna Mleko Tomasz Kotliński AGH EAIiE 9 . Opis zadania Tematem projektu było zaprojektowanie
Opis akustyczny samogłosek Wprowadzenie
Opis akustyczny samogłosek Wprowadzenie 1. Badania akustyczne w fonetyce Współczesna fonetyka czyli dziedzina zajmująca się badaniem dźwięków mowy w dużym stopniu oparta jest na badaniach akustycznych.
I. Wstęp II. Niemiecka wymowa ortofoniczna III. Narządy mowy i ich czynności IV. Spółgłoski wprowadzenie ogólne V. Spółgłoski niemieckie
Spis treści I. Wstęp... 11 1. Znaczenie poprawnej wymowy... 11 2. Rola fonetyki w nauczaniu poprawnej wymowy...... 13 3. Fonetyka a fonologia.... 15 4. Wymowaapismo... 17 5. Wpływ języka ojczystego na
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka. Wstęp teoretyczny Zmienne losowe Zmienne losowe
NAJCZĘŚCIEJ WYSTĘPUJĄCE WADY WYMOWY oraz ZABURZENIA ROZWOJU MOWY U DZIECI
NAJCZĘŚCIEJ WYSTĘPUJĄCE WADY WYMOWY oraz ZABURZENIA ROZWOJU MOWY U DZIECI DYSLALIE Najczęściej spotykane wady wymowy u dzieci to zaburzenia artykulacji, czyli nieprawidłowe, odbiegające od normy przyjętej
Rozpoznawanie i synteza mowy w systemach multimedialnych. Analiza i synteza mowy - wprowadzenie. Spektrogram wyrażenia: computer speech
Slajd 1 Analiza i synteza mowy - wprowadzenie Spektrogram wyrażenia: computer speech Slide 1 Slajd 2 Analiza i synteza mowy - wprowadzenie Slide 2 Slajd 3 Analiza i synteza mowy - wprowadzenie Slide 3
Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki
Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First
OPIS MODUŁU (PRZEDMIOTU), PROGRAMU NAUCZANIA ORAZ SPOSOBÓW WERYFIKACJI EFEKTÓW KSZTAŁCENIA CZEŚĆ A OPIS MODUŁU (PRZEDMIOTU) studia pierwszego stopnia
Załącznik Nr 1.11 pieczątka jednostki organizacyjnej OPIS MODUŁU (PRZEDMIOTU), PROGRAMU NAUCZANIA ORAZ SPOSOBÓW WERYFIKACJI EFEKTÓW KSZTAŁCENIA CZEŚĆ A OPIS MODUŁU (PRZEDMIOTU) Nazwa modułu (przedmiotu)
Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego
Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Głos. Proces generacji dźwięku płuca, fałdy głosowe, kanał głosowy rezonatory i artykulatory. Ton krtaniowy Częstotliwości formantowe dla mowy
Percepcja śpiewu I. Wstęp II. Akustyka głosu III. Aspekt rezonacyjny A. Śpiewanie w wysokich rejestrach 1. Częstotliwości formantowe 2. Natężenie dźwięku i maskowanie 3. Zrozumiałość samogłosek B. Bas,
Ćwiczenie II. Edytor dźwięku Audacity
Ćwiczenie II. Edytor dźwięku Audacity Sprzęt Aplikacja Komputer osobisty PC Karta dźwiękowa zainstalowana w PC Mikrofon Wzmacniacz z kolumnami Audacity Program Audacity jest wielościeżkowym edytorem dźwięku.
Przygotowała: prof. Bożena Kostek
Przygotowała: prof. Bożena Kostek Ze względu na dużą rozpiętość mierzonych wartości ciśnienia (zakres ciśnień akustycznych obejmuje blisko siedem rzędów wartości: od 2x10 5 Pa do ponad 10 Pa) wygodniej
KOMUNIKACJA WERBALNA IMIĘ I NAZWISKO DZIECKA DATA ZAPISU WIEK ŻYCIA DZIEŃ MIESIĄC ROK DATA URODZENIA OSOBA WYPEŁNIAJĄCA:
IMIĘ I NAZWISKO DZIECKA DATA URODZENIA OSOBA WYPEŁNIAJĄCA: WIEK ŻYCIA DATA ZAPISU DZIEŃ MIESIĄC ROK KOMUNIKACJA WERBALNA Lp. TAK NIE CZASAMI UWAGI Warunki, aby rozwinęła się mowa, wyraża: ------- -----------
ETAPY ROZWOJU MOWY. Rozwój mowy dziecka od narodzin do siódmego roku życia dzielimy na cztery okresy ( L. Kaczmarek) :
ETAPY ROZWOJU MOWY Rozwój mowy dziecka od narodzin do siódmego roku życia dzielimy na cztery okresy ( L. Kaczmarek) : - okres melodii - okres wyrazu - okres zdania - okres swoistej mowy dziecięcej OKRES
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Profilaktyka logopedyczna w przedszkolu. Jolanta Hysz konsultant ds. informatyki i edukacji początkowej WODN w Skierniewicach
Profilaktyka logopedyczna w przedszkolu Jolanta Hysz konsultant ds. informatyki i edukacji początkowej WODN w Skierniewicach Etapy rozwoju dziecka istotne ze względu na mowę Rozwój mowy dziecka rozpoczyna
Algorytmy wyznaczania centralności w sieci Szymon Szylko
Algorytmy wyznaczania centralności w sieci Szymon Szylko Zakład systemów Informacyjnych Wrocław 10.01.2008 Agenda prezentacji Cechy sieci Algorytmy grafowe Badanie centralności Algorytmy wyznaczania centralności
Algorytmy zachłanne. dr inż. Urszula Gałązka
Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie
Programowanie celowe #1
Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem
Księgarnia PWN: Tomasz Karpowicz - Kultura języka polskiego. T. 3. I. Wymowa
Księgarnia PWN: Tomasz Karpowicz - Kultura języka polskiego. T. 3 Spis treści Wstęp... 11 I. Wymowa 1. Natura polskiej wymowy... 15 1.1. Zbiór polskich głosek... 16 1.2. Relacje między głoską a fonemem...
Analiza sygnału mowy pod kątem rozpoznania mówcy chorego. Anna Kosiek, Dominik Fert
Analiza sygnału mowy pod kątem rozpoznania mówcy chorego Anna Kosiek, Dominik Fert Wstęp: Analiza sygnału akustycznego była wykorzystywana w medycynie jeszcze przed wykorzystaniem jej w technice. Sygnał
Usprawnianie percepcji słuchowej. Jolanta Hysz Konsultant ds. informatyki i edukacji początkowej WODN w Skierniewicach
Usprawnianie percepcji słuchowej Jolanta Hysz Konsultant ds. informatyki i edukacji początkowej WODN w Skierniewicach Percepcja słuchowa - pojęcie Organizm człowieka przystosowany jest do odbioru bodźców:
Fonetyka. to dział gramatyki, który zajmuje się dźwiękami mowy i zjawiskami artykulacyjnymi (wymawianie głosek)
FONETYKA Fonetyka to dział gramatyki, który zajmuje się dźwiękami mowy i zjawiskami artykulacyjnymi (wymawianie głosek) Głoska a litera Głoska to pojedynczy dźwięk mowy. szyba = sz y b a = 4 głoski Litera
Niko 2 Przedmiotowy System Oceniania
Niko 2 Przedmiotowy System Oceniania TREŚCI NAUCZANIA REALIZOWANE W PODRĘCZNIKU NIKO 2 I PODLEGAJĄCE OCENIANIU MÓWIENIE I SŁUCHANIE - opisywanie ilustracji - komentowanie przedstawionej na obrazku sytuacji
Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017
Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie
Metody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się z liniowym zadaniem najmniejszych
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą
Komputerowe przetwarzanie sygnału mowy
Komputerowe przetwarzanie sygnału mowy Prof dr hab inż Bożena Kostek Katedra Systemów Multimedialnych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska Komputerowe przetwarzanie sygnału
Ćwiczenie 3,4. Analiza widmowa sygnałów czasowych: sinus, trójkąt, prostokąt, szum biały i szum różowy
Ćwiczenie 3,4. Analiza widmowa sygnałów czasowych: sinus, trójkąt, prostokąt, szum biały i szum różowy Grupa: wtorek 18:3 Tomasz Niedziela I. CZĘŚĆ ĆWICZENIA 1. Cel i przebieg ćwiczenia. Celem ćwiczenia
Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie
Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Używane struktury danych: V - zbiór wierzchołków grafu, V = {1,2,3...,n} E - zbiór krawędzi grafu, E = {(i,j),...}, gdzie i, j Î V i istnieje
AKCENT - w językoznawstwie wyróżnienie jednej z sylab w wyrazie lub jednego z wyrazów w zdaniu przez mocniejsze, dłuższe lub
Akcent w języku polskim AKCENT - w językoznawstwie wyróżnienie jednej z sylab w wyrazie lub jednego z wyrazów w zdaniu przez mocniejsze, dłuższe lub śpiewne wymówienie; znak graficzny służący wyróżnieniu
Rozpoznawanie obrazów
Rozpoznawanie obrazów Laboratorium Python Zadanie nr 1 Regresja liniowa autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, M. Zięba, J. Kaczmar Cel zadania Celem zadania jest implementacja liniowego zadania
PRACA DYPLOMOWA MAGISTERSKA
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania PRACA DYPLOMOWA MAGISTERSKA Konstrukcja autonomicznego robota mobilnego Małgorzata Bartoszewicz Promotor: prof. dr hab. inż. A. Milecki Zakres
Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe
Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu
Zastosowanie Informatyki w Medycynie
Zastosowanie Informatyki w Medycynie Dokumentacja projektu wykrywanie bicia serca z sygnału EKG. (wykrywanie załamka R) Prowadzący: prof. dr hab. inż. Marek Kurzyoski Grupa: Jakub Snelewski 163802, Jacek
Układy VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda
Segmentacja obrazów cyfrowych Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp autor: Łukasz Chlebda 1 Segmentacja obrazów cyfrowych - temat pracy Temat pracy: Aplikacja do segmentacji
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000
Maciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
Hierarchiczna analiza skupień
Hierarchiczna analiza skupień Cel analizy Analiza skupień ma na celu wykrycie w zbiorze obserwacji klastrów, czyli rozłącznych podzbiorów obserwacji, wewnątrz których obserwacje są sobie w jakimś określonym
MODUŁ KSZTAŁCENIA: Praktyczna nauka języka angielskiego: moduł 1
Uniwersytet Śląski w Katowicach str. Program kształcenia, załącznik nr. nazwa kierunku FILOLOGIA ANGIELSKA. poziom kształcenia pierwszy 3. profil kształcenia ogólnoakademicki 4. forma prowadzenia stacjonarne
Drgania i fale sprężyste. 1/24
Drgania i fale sprężyste. 1/24 Ruch drgający Każdy z tych ruchów: - Zachodzi tam i z powrotem po tym samym torze. - Powtarza się w równych odstępach czasu. 2/24 Ruch drgający W rzeczywistości: - Jest coraz
Optymalizacja funkcji kosztu w korpusowej syntezie mowy polskiej
Optymalizacja funkcji kosztu w korpusowej syntezie mowy polskiej Krzysztof Szklanny Rozprawa doktorska Opiekun naukowy: Dr hab. Krzysztof Marasek Warszawa, wrzesień 2009 Mojej Mamie i Mojemu świętej pamięci
Systemy multimedialne. Instrukcja 5 Edytor audio Audacity
Systemy multimedialne Instrukcja 5 Edytor audio Audacity Do sprawozdania w formacie pdf należy dołączyc pliki dźwiękowe tylko z podpunktu 17. Sprawdzić poprawność podłączenia słuchawek oraz mikrofonu (Start->Programy->Akcesoria->Rozrywka->Rejestrator
znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.
Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często
międzyzębowy charakteryzuje się tym, że w trakcie realizacji głosek ciszących, syczących lub szumiących dziecko wsuwa język między zęby
Wady wymowy Sygmatyzm to nieprawidłowa artykulacja głosek szumiących sz, ż, cz, dż, syczących s, z, c, dz lub ciszących ś, ź, ć, dź. Nieprawidłowość może dotyczyć jednego, dwóch lub wszystkich trzech szeregów
Excel - podstawa teoretyczna do ćwiczeń. 26 lutego 2013
26 lutego 2013 Ćwiczenia 1-2 Częste błędy i problemy: 1 jeżeli użyjemy niewłaściwego znaku dziesiętnego Excel potraktuje liczbę jak tekst - aby uniknać takich sytuacji używaj klawiatury numerycznej, 2
Transkrypcja fonetyczna i synteza mowy. Jolanta Bachan
Transkrypcja fonetyczna i synteza mowy Jolanta Bachan IPA Międzynarodowy alfabet fonetyczny, MAF (ang. International Phonetic Alphabet, IPA) alfabet fonetyczny, system transkrypcji fonetycznej przyjęty
- najważniejsze narzędzie pracy nauczyciela
- najważniejsze narzędzie pracy nauczyciela lek. laryngolog, spec. foniatra Arkadiusz Mikulski, 24.09.2011 Konferencja pt. W trosce o głos nauczyciela Budowa i czynnośćnarządu głosu Głos powstaje dzięki
WYMAGANIA EDUKACYJNE DLA KLASY II ROK SZKOLNY 2015/2016
WYMAGANIA EDUKACYJNE DLA KLASY II ROK SZKOLNY 2015/2016 opracowane na podstawie: Programu nauczania dla I etapu kształcenia Doświadczanie świata Marzeny Kędry Klasa II e Poziom opanowanych umiejętności
PROPOZYCJE TEMATÓW PROJEKTOWYCH PROJEKTOWANIE OPROGRAMOWANIA SYSTEMÓW
PROPOZYCJE TEMATÓW PROJEKTOWYCH PROJEKTOWANIE OPROGRAMOWANIA SYSTEMÓW 2016 1. Syntezator dźwięków szumów usznych Opiekun: dr inż. Piotr Suchomski Celem oprogramowania jest umożliwienie wygenerowania dźwięków,
Optymalizacja funkcji kosztu w korpusowej syntezie mowy polskiej
Optymalizacja funkcji kosztu w korpusowej syntezie mowy polskiej Krzysztof Szklanny Rozprawa doktorska Opiekun naukowy: Dr hab. Krzysztof Marasek Warszawa, wrzesień 2009 Mojej Mamie i Mojemu świętej pamięci
1 Automaty niedeterministyczne
Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów
Systemy i Sieci Telekomunikacyjne laboratorium. Modulacja amplitudy
Systemy i Sieci Telekomunikacyjne laboratorium Modulacja amplitudy 1. Cel ćwiczenia: Celem części podstawowej ćwiczenia jest zbudowanie w środowisku GnuRadio kompletnego, funkcjonalnego odbiornika AM.
MODUŁ KSZTAŁCENIA: Praktyczna nauka języka angielskiego: moduł 2
Uniwersytet Śląski w Katowicach str. 1 Program kształcenia, załącznik nr 1. nazwa kierunku FILOLOGIA ANGIELSKA. poziom kształcenia pierwszy 3. profil kształcenia ogólnoakademicki 4. forma prowadzenia stacjonarne
Okresy rozwoju mowy dziecka na co zwrócić uwagę. w wymowie naszego dziecka
Okresy rozwoju mowy dziecka na co zwrócić uwagę w wymowie naszego dziecka Proces rozwoju mowy przebiega etapami i trwa kilka lat. Zanim dziecko nauczy się wyrażać swoje myśli, musi przejść wiele etapów,
Przygotowanie bazy difonów języka polskiego dla realizacji syntezy mowy w systemie MBROLA
Przygotowanie bazy difonów języka polskiego dla realizacji syntezy mowy w systemie MBROLA 1 Przygotowanie bazy difonów języka polskiego dla realizacji syntezy mowy w systemie MBROLA MBROLA.Creating the
AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ
AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ ELEMETY ELEKTRONIKI LABORATORIUM Kierunek NAWIGACJA Specjalność Transport morski Semestr II Ćw. 1 Poznawanie i posługiwanie się programem Multisim 2001 Wersja
8. Neuron z ciągłą funkcją aktywacji.
8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i
XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI
1 ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI 15.1. CEL ĆWICZENIA Celem ćwiczenia jest poznanie podstawowych właściwości wzmacniaczy mocy małej częstotliwości oraz przyswojenie umiejętności
Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
l a b o r a t o r i u m a k u s t y k i
Wrocław kwiecień 21 4SOUND Parametry akustyczne 4SOUND ul Klecińska 123 54-413 Wrocław info@4soundpl www4soundpl l a b o r a t o r i u m a k u s t y k i tel +48 53 127 733 lub 71 79 85 746 NIP: 811-155-48-81
Program Logopedia. - opis szczegółowy. Szereg ciszący.
Program Logopedia - opis szczegółowy Pakiet LOGOPEDIA daje możliwość ciągłego monitorowania terapii, pozwala na bieżącą analizę stopnia zaburzenia płynności mowy i zindywidualizowanie procesu terapeutycznego.
Dźwięk dźwiękowi nierówny, czyli o tym jak brzmi XXI wiek
IX Studenckie Spotkania Analityczne 13-14.03.2008 Dźwięk dźwiękowi nierówny, czyli o tym jak brzmi XXI wiek Justyna Słomka Plan 1. Co to jest dźwięk? 2. Pojęcie syntezy dźwięku 3. Cel syntezowania dźwięków
Metoda Karnaugh. B A BC A
Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który
Cechy karty dzwiękowej
Karta dzwiękowa System audio Za generowanie sygnału dźwiękowego odpowiada system audio w skład którego wchodzą Karta dźwiękowa Głośniki komputerowe Większość obecnie produkowanych płyt głównych posiada
Podstawy Przetwarzania Sygnałów
Adam Szulc 188250 grupa: pon TN 17:05 Podstawy Przetwarzania Sygnałów Sprawozdanie 6: Filtracja sygnałów. Filtry FIT o skończonej odpowiedzi impulsowej. 1. Cel ćwiczenia. 1) Przeprowadzenie filtracji trzech
W trzecim okresie nazywanym okresem zdania (od 2 do 3 roku życia) mowa ulega dalszemu doskonaleniu. Dziecko powinno już wypowiadać głoski:
Rozwój mowy jest procesem fizjologicznym, charakteryzującym się osobliwymi zmianami ilościowymi i jakościowymi w zakresie możliwości użycia języka przez dziecko. Jest on możliwy jedynie w środowisku społecznym
Analiza składowych głównych. Wprowadzenie
Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących
Spis treści. Format WAVE Format MP3 Format ACC i inne Konwersja między formatami
Spis treści Format WAVE Format MP3 Format ACC i inne Konwersja między formatami Formaty plików audio różnią się od siebie przede wszystkim zastosowanymi algorytmami kompresji. Kompresja danych polega na
Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
Badanie widma fali akustycznej
Politechnika Łódzka FTIMS Kierunek: Informatyka rok akademicki: 00/009 sem.. grupa II Termin: 10 III 009 Nr. ćwiczenia: 1 Temat ćwiczenia: Badanie widma fali akustycznej Nr. studenta: 6 Nr. albumu: 15101
Łączenie liczb i tekstu.
Łączenie liczb i tekstu. 1 (Pobrane z slow7.pl) Rozpoczynamy od sposobu pierwszego. Mamy arkusz przedstawiony na rysunku poniżej w którym zostały zawarte wypłaty pracowników z wykonanym podsumowaniem.
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Spis treści. Format WAVE Format MP3 Format ACC i inne Konwersja między formatami
Spis treści Format WAVE Format MP3 Format ACC i inne Konwersja między formatami Formaty plików audio różnią się od siebie przede wszystkim zastosowanymi algorytmami kompresji. Kompresja danych polega na
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Nierówność Krafta-McMillana, Kodowanie Huffmana
Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy
a) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
Kwantowanie sygnałów analogowych na przykładzie sygnału mowy
Kwantowanie sygnałów analogowych na przykładzie sygnału mowy Treść wykładu: Sygnał mowy i jego właściwości Kwantowanie skalarne: kwantyzator równomierny, nierównomierny, adaptacyjny Zastosowanie w koderze
Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.
Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Autor: Mariusz Sasko Promotor: dr Adrian Horzyk Plan prezentacji 1. Wstęp 2. Cele pracy 3. Rozwiązanie 3.1. Robot
Spis treści. 1: Wyszukiwanie elementu : Do linii modelu : Powiel arkusze : Długość kabla : Rozmieszczenie widoków...
Co nowego 2018 R2 Spis treści NOWOŚCI... 5 1: Wyszukiwanie elementu... 5 2: Do linii modelu... 6 3: Powiel arkusze... 7 4: Długość kabla... 8 5: Rzędne poziomów... 9 ULEPSZENIA... 10 1: Połączenie z Excel...
Sprawozdanie z laboratoriów HTK!
Inżynieria akustyczna - Technologia mowy 2013 Błażej Chwiećko Sprawozdanie z laboratoriów HTK! 1. Przeznaczenie tworzonego systemu! Celem było stworzenie systemu służącego do sterowania samochodem. Zaimplementowane
Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).
Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze
Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Rys Wykres kosztów skrócenia pojedynczej czynności. k 2. Δk 2. k 1 pp. Δk 1 T M T B T A
Ostatnim elementem przykładu jest określenie związku pomiędzy czasem trwania robót na planowanym obiekcie a kosztem jego wykonania. Związek ten określa wzrost kosztów wykonania realizacji całego przedsięwzięcia
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Pomiary w technice studyjnej. TESTY PESQ i PEAQ
Pomiary w technice studyjnej TESTY PESQ i PEAQ Wprowadzenie Problem: ocena jakości sygnału dźwiękowego. Metody obiektywne - np. pomiar SNR czy THD+N - nie dają pełnych informacji o jakości sygnału. Ważne