szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem...

40
AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI Praca dyplomowa inżynierska Michał Ziobro Imię i nazwisko Inżynieria akustyczna Kierunek studiów Usługa API do separacji głosów w nagraniach mowy wykorzystująca techniki uczenia maszynowego. Temat pracy dyplomowej dr inż. Jakub Gałka ………………….. Promotor pracy Ocena Kraków, rok 2016/2017

Transcript of szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem...

Page 1: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

AKADEMIA GÓRNICZO-HUTNICZA

im. Stanisława Staszica w Krakowie

WYDZIAŁ INŻYNIERII

MECHANICZNEJ I ROBOTYKI

Praca dyplomowa

inżynierska

Michał Ziobro

Imię i nazwisko

Inżynieria akustyczna

Kierunek studiów

Usługa API do separacji głosów w nagraniach

mowy wykorzystująca techniki uczenia maszynowego.

Temat pracy dyplomowej

dr inż. Jakub Gałka …………………..

Promotor pracy Ocena

Kraków, rok 2016/2017

Page 2: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

2

Kraków. dnia.......................

Imię i nazwisko: Michał Ziobro

Nr albumu: 269570

Kierunek studiów: Inżynieria akustyczna

Profil dyplomowania: -

OŚWIADCZENIE

Uprzedzony o odpowiedzialności karnej na podstawie art. 115 ust 1 i 2 ustawy

z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (tj. Dz.U.z 2006 r. Nr

90, poz. 631 z późn.zm.) : „Kto przywłaszcza sobie autorstwo albo wprowadza w błąd

co do autorstwa całości lub części cudzego utworu albo artystycznego wykonania, pod-

lega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do lat 3. Tej

samej karze podlega, kto rozpowszechnia bez podania nazwiska lub pseudonimu twórcy

cudzy utwór w wersji oryginalnej albo w postaci opracowania, artystyczne wykonanie

albo publicznie zniekształca taki utwór, artystyczne wykonanie, fonogram, wideogram

lub nadanie”, a także uprzedzony o odpowiedzialności dyscyplinarnej na podstawie art.

211 ust.1 ustawy z dnia 27 lip[ca 2005 r. Prawo o szkolnictwie wyższym (tj. Dz.U.

z 2012 r. poz. 572, z późn.zm.) „Za naruszenie przepisów obowiązujących w uczelni

oraz za czyny uchybiające godności student ponosi odpowiedzialność dyscyplinarną

przed komisją dyscyplinarną albo przed sądem koleżeńskim samorządu studenckiego,

zwanym dalej „sądem koleżeńskim”, oświadczam, że niniejszą pracę dyplomową wy-

konałem(-am) osobiście i samodzielnie i że nie korzystałem (-am) ze źródeł innych niż

wymienione w pracy”.

............................................

podpis dyplomanta

Page 3: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

3

Kraków, dn……………..

Imię i nazwisko: Michał Ziobro

Nr albumu: 269570

Kierunek studiów: Inżynieria akustyczna

Profil dyplomowania: -

OŚWIADCZENIE

Świadomy/a odpowiedzialności karnej za poświadczanie nieprawdy oświad-

czam, że niniejszą inżynierską pracę dyplomową wykonałem/łam osobiście i samo-

dzielnie oraz nie korzystałem/łam ze źródeł innych niż wymienione w pracy.

Jednocześnie oświadczam, że dokumentacja oraz praca nie narusza praw autor-

skich w rozumieniu ustawy z dnia 4 lutego 1994 roku o prawie autorskim i prawach

pokrewnych (Dz. U. z 2006 r. Nr 90 poz. 631 z późniejszymi zmianami) oraz dóbr oso-

bistych chronionych prawem cywilnym. Nie zawiera ona również danych i informacji,

które uzyskałem/łam w sposób niedozwolony. Wersja dokumentacji dołączona przeze

mnie na nośniku elektronicznym jest w pełni zgodna z wydrukiem przedstawionym do

recenzji.

Zaświadczam także, że niniejsza inżynierska praca dyplomowa nie była wcze-

śniej podstawą żadnej innej urzędowej procedury związanej z nadawaniem dyplomów

wyższej uczelni lub tytułów zawodowych.

………………………………..

podpis dyplomanta

Page 4: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

4

Kraków, ……………..

Imię i nazwisko: Michał Ziobro

Adres korespondencyjny: ul. Słoneczna 9, 38-500 Sanok

Temat pracy dyplomowej inżynierskiej: Usługa API do separacji głosów w nagraniach

mowy wykorzystująca techniki uczenia maszynowego.

Rok ukończenia: 2017

Nr albumu: 269570

Kierunek studiów: Inżynieria akustyczna

Profil dyplomowania: -

OŚWIADCZENIE

Niniejszym oświadczam, że zachowując moje prawa autorskie , udzielam Aka-

demii Górniczo-Hutniczej im. S. Staszica w Krakowie nieograniczonej w czasie nieod-

płatnej licencji niewyłącznej do korzystania z przedstawionej dokumentacji inżynier-

skiej pracy dyplomowej, w zakresie publicznego udostępniania i rozpowszechniania w

wersji drukowanej i elektronicznej1.

Publikacja ta może nastąpić po ewentualnym zgłoszeniu do ochrony prawnej wy-

nalazków, wzorów użytkowych, wzorów przemysłowych będących wynikiem pracy

inżynierskiej2.

Kraków, ...............… ……………………………..

data podpis dyplomanta

1 Na podstawie Ustawy z dnia 27 lipca 2005 r. Prawo o szkolnictwie wyższym (Dz.U. 2005 nr 164 poz. 1365) Art. 239. oraz Ustawy z dnia

4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz.U. z 2000 r. Nr 80, poz. 904, z późn. zm.) Art. 15a. "Uczelni w rozumieniu

przepisów o szkolnictwie wyższym przysługuje pierwszeństwo w opublikowaniu pracy dyplomowej studenta. Jeżeli uczelnia nie opubliko-

wała pracy dyplomowej w ciągu 6 miesięcy od jej obrony, student, który ją przygotował, może ją opublikować, chyba że praca dyplomowa

jest częścią utworu zbiorowego."

2 Ustawa z dnia 30 czerwca 2000r. – Prawo własności przemysłowej (Dz.U. z 2003r. Nr 119, poz. 1117 z późniejszymi zmianami) a

także rozporządzenie Prezesa Rady Ministrów z dnia 17 września 2001r. w sprawie dokonywania i rozpatrywania zgłoszeń wyna-

lazków i wzorów użytkowych (Dz.U. nr 102 poz. 1119 oraz z 2005r. Nr 109, poz. 910).

Page 5: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

5

Kraków, dnia

AKADEMIA GÓRNICZO-HUTNICZA

WYDZIAŁ INŻYNIERII MECHANICZNEJ I ROBOTYKI

TEMATYKA PRACY DYPLOMOWEJ INŻYNIERSKIEJ

dla studenta IV roku studiów stacjonarnych

Michał Ziobro

imię i nazwisko studenta

TEMAT PRACY DYPLOMOWEJ INŻYNIERSKIEJ:

Usługa API do separacji głosów w nagraniach mowy wykorzystująca techniki uczenia maszy-

nowego.

Promotor pracy: dr inż. Jakub Gałka

Recenzent pracy: prof. dr hab. inż. Mariusz Ziółko Podpis dziekana:

PLAN PRACY DYPLOMOWEJ

1. Omówienie tematu pracy i sposobu realizacji z promotorem.

2. Zebranie i opracowanie literatury dotyczącej tematu pracy.

3. Zebranie i opracowanie wyników badań.

4. Analiza wyników badań, ich omówienie i zatwierdzenie przez promotora.

5. Opracowanie redakcyjne.

Kraków, ...............… ……………………………..

data podpis dyplomanta

TERMIN ODDANIA DO DZIEKANATU: 20 r.

podpis promotora

Page 6: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

6

Akademia Górniczo-Hutnicza im. Stanisława Staszica Kraków, .................

Wydział Inżynierii Mechanicznej i Robotyki

Kierunek: Inżynieria akustyczna

Profil dyplomowania: -

Michał Ziobro

Praca dyplomowa inżynierska

Usługa API do separacji głosów w nagraniach mowy wykorzystująca techniki

uczenia maszynowego.

Opiekun: dr inż. Jakub Gałka

STRESZCZENIE

Praca dyplomowa prezentuje zrealizowaną usługę API do separowania głosów.

Celem pracy było stworzenie systemu, który na podstawie nagrania dwóch osób mó-

wiących równocześnie będzie w stanie dokonać rozdzielenia głosów każdej osoby. Za-

sada działania opiera się na metodzie maskowania spektrogramu i wykorzystuje techni-

ki uczenia maszynowego (sieć neuronową) do syntezowania maski filtrującej. Imple-

mentacji algorytmu dokonano w środowisku MATLAB, API zostało zrealizowane

w języku C# na platformie .NET z wykorzystaniem protokołu HTTP.

Page 7: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

7

AGH University of Science and Technology Kraków, the............

Faculty of Mechanical Engineering and Robotics

Field of Study: Acoustical engineering

Specialisations: -

Michał Ziobro

Engineer Diploma Thesis

API service for separation of voices in recordings of speech using machine learning

techniques.

Supervisor: Jakub Gałka, PhD. Eng.

SUMMARY

This work presents an API service for separation of human voices. The aim was

to create system that separates voices from a recording of two people speaking simulta-

neously. The principle of operation is based on spectrogram masking and uses machine

learning techniques (neural network) for synthesizing filtering mask. The algorithm was

implemented in MATLAB environment, while the API was implemented in C# pro-

gramming language using .NET framework and HTTP protocol.

Page 8: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

8

Spis treści

1. WSTĘP .................................................................................................................. 9

2. ŚLEPA SEPARACJA SYGNAŁÓW AKUSTYCZNYCH ............................. 11

2.1. Wprowadzenie .......................................................................................... 11

2.2. Metody separacji sygnałów ...................................................................... 12

2.3. Wyzwania separacji sygnałów .................................................................. 14

2.4. Przykłady .................................................................................................. 15

3. SEPARACJA METODĄ MASKOWANIA SPEKTROGRAMU

WYKORZYSTUJĄCA SIEĆ NEURONOWĄ ...................................................... 17

3.1. Maskowanie spektrogramu ....................................................................... 17

3.2. Sieć neuronowa ......................................................................................... 19

4. IMPLEMENTACJA USŁUGI SEPARACJI GŁOSÓW ................................ 22

4.1. Architektura systemu ................................................................................ 23

4.2. Schemat działania ..................................................................................... 23

4.3. Przygotowanie nagrań do treningu sieci i testów systemu ....................... 25

4.4. Implementacja sieci neuronowej .............................................................. 25

4.5. Implementacja algorytmu separacji .......................................................... 26

4.6. Optymalizacja działania ............................................................................ 26

4.7. API ............................................................................................................ 28

4.8. Interfejs graficzny ..................................................................................... 29

5. OCENA SKUTECZNOŚCI SEPARACJI ........................................................ 30

5.1. Wskaźniki obiektywne .............................................................................. 30

5.2. Testy odsłuchowe ..................................................................................... 32

6. PODSUMOWANIE ............................................................................................ 37

7. SPIS RYSUNKÓW ............................................................................................. 38

8. BIBLIOGRAFIA ................................................................................................ 39

Page 9: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

9

1. Wstęp

Dynamiczny rozwój technologii informatycznych w ostatnich latach sprawia, że

komputery wchodzą w każdy aspekt naszego życia i coraz częściej przejmują zadania

wykonywane wcześniej przez człowieka- poczynając od taśm produkcyjnych aż po ste-

rowanie lotem samolotu. Z tego powodu inżynierowie coraz częściej starają się zapro-

gramować komputer w taki sposób, aby jak najlepiej odwzorowywał czynności wyko-

nywane przez człowieka, oczywiście z pominięciem niedoskonałości wynikających

z ludzkiej natury.

Takie podejście jest również zauważalne w akustyce, szczególnie w obszarze

zajmującym się technologią mowy. Z dużymi sukcesami naukowcom udało się „nau-

czyć” komputer identyfikowania osoby po głosie, określania jej płci, wieku, czy nawet

„mówienia” (synteza mowy). Jedną z takich czynności, którą człowiek wykonują prak-

tycznie bez przerwy, jest separacja źródeł poszczególnych sygnałów dochodzących

z otoczenia. Każdy człowiek bez trudu potrafi zidentyfikować pojedynczy instrument w

orkiestrze jako źródło danego dźwięku, czy odróżnić głosy osób w gwarnym otoczeniu

(tzw. cocktail party effect). Badania psychoakustyczne dowodzą, że jest to możliwe

między innymi dzięki zmianom w wysokości głosu, zrozumieniu znaczenia wypowia-

danych słów, umiejscowieniu dźwięków w danym kontekście oraz nabytemu doświad-

czeniu (Revlin, 2007). Jednak komputer odczytuje sygnał dźwiękowy jako ciąg liczb

pozbawionych takich informacji, dlatego nie jest możliwe w bezpośredni sposób rozpo-

znanie rodzajów czy ilości źródeł, które złożyły się na dany sygnał.

Celem tej pracy jest implementacja systemu który, w chociaż niewielki sposób,

umożliwi komputerową separację sygnałów. Algorytm wykorzystuje techniki uczenia

maszynowego, konkretnie sieć neuronową, oraz analizę czasowo-częstotliwościową

(STFT) sygnałów akustycznych. Główna część algorytmu została zaimplementowana

w środowisku MATLAB ze względu na wygodę oraz przejrzystość, którą zapewnia

wysokopoziomowy charakter używanego języka programowania. API zostało zrealizo-

wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http.

Całość usługi została zaprojektowana tak, aby zachować maksymalną intuicyjność-

wejściem jest plik audio zawierający sygnały zmiksowane, wyjściem pliki zawierające

sygnały odseparowane. Dla uproszczenia zagadnienia system został zaprojektowany do

separowania tylko dwóch głosów, dzięki temu możliwe było uzyskanie zadowalającej

Page 10: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

10

jakości działania systemu bez konieczności posiadania dużej ilości danych treningo-

wych i jednostek o dużej mocy obliczeniowej. Gotowy system został poddany ocenie

skuteczności działania, zarówno na podstawie obiektywnych wskaźników liczbowych

jak i subiektywnych testów odsłuchowych.

Page 11: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

11

2. Ślepa separacja sygnałów akustycznych

2.1. Wprowadzenie

Większość sygnałów akustycznych powstaje z połączenia ze sobą dźwięków kilku

różnych źródeł (mowa, muzyka, zakłócenia). Poprzez separację sygnałów rozumiemy

proces odzyskiwania sygnałów składowych na podstawie obserwowanej ich mieszani-

ny. Dodatkowo proces możemy nazwać ślepą separacją sygnałów, jeśli nie posiadamy

a priori wiedzy o charakterze źródeł czy sposobie połączenia ze sobą sygnałów składo-

wych (Houda & Otman, 2015). Techniki ślepej separacji sygnałów mogą być wykorzy-

stane między innymi do separacji mówców (np. podczas tłumaczeń symultanicznych),

separacji instrumentów w nagraniach muzycznych (karaoke) czy poprawie działania

systemów wspomagania słuchu (redukcja zakłóceń). Szerokie zastosowanie znajduje

również separacja sygnałów innych niż akustyczne, jednak niniejsza praca skupia się

tylko na obszarze audio. Nie oznacza to jednak, że omawiane zagadnienia i proponowa-

ne rozwiązania odnoszą się tylko do sygnałów dźwiękowych i nie mogą znaleźć zasto-

sowania w innych dziedzinach.

Temat jest intensywnie badany przez naukowców na całym świecie, szczególnie

w ostatnich latach, kiedy zaczęto wykorzystywać techniki głębokiego uczenia maszy-

nowego. Wiele rozwiązań zostało zaproponowanych, a część z nich pozwala na uzyska-

nie bardzo dobrych rezultatów.

Algorytmy separacji sygnałów powstały w celu rozwiązania tzw. „cocktail party

problem” czy też efektu „cocktail party” polegającego na wybieraniu z szerokiego tła

tylko tych bodźców, które mają istotne znaczenie (Cherry, 1953). Innymi słowy- należy

dokonać rekonstrukcji sygnałów składowych na podstawie zaobserwowanego ich

połączenia bez wiedzy o procesie łączenia sygnałów czy rodzaju i umiejscowieniu

źródeł. Proces zilustrowano na rysunku 1.

Rysunek 1. Schematyczne przedstawienie problematyki ślepej separacji sygnałów.

Page 12: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

12

Dodatkowo przyjmujemy założenia, że sygnały są od siebie niezależne, a ich po-

łączenie jest mieszaniną splotową. Wtedy obserwowany sygnał mieszaniny możemy

opisać równaniem (2.1)

𝑥𝑖(𝑡) = ∑ ∑ 𝑎𝑖𝑗+∞𝜏=−∞

𝐽

𝑗=1 (𝑡 − 𝜏, 𝜏)𝑠𝑗(𝑡 − 𝜏) (2.1)

gdzie 𝑥𝑖 jest i-tą zaobserwowaną mieszaniną, 𝑠𝑗 jest oryginalnym sygnałem skła-

dowym, a 𝑎𝑖𝑗 jest elementem macierzy współczynników charakteryzującej proces mik-

sowania sygnałów (dla i-tej mieszaniny i j-ego sygnału).

Ślepa separacja sygnałów może być sformułowana jako dwuetapowy proces:

identyfikacja liczby źródeł i dobór zbioru parametrów dla każdego źródła,

filtracja mieszaniny na podstawie tych parametrów i odzyskanie sygnałów

składowych.

Dobra separacja jest możliwa pod dwoma warunkami, po pierwsze zbiór parame-

trów dla każdego źródła musi zawierać informacje wystarczające do zaprojektowania

optymalnego filtru, po drugie technika filtracji musi umożliwić skuteczną separację pod

warunkiem użycia optymalnego filtru.

Dla uproszczenia zagadnienia w pracy przyjęto, że ilość sygnałów składowych

jest znana i wynosi 2 oraz system jest jednokanałowy, więc ilość obserwowanych mie-

szanin wynosi 1.

2.2. Metody separacji sygnałów

Rozdział prezentuje kilka wybranych sposobów rozwiązania problemu ślepej se-

paracji sygnałów oraz pokrótce je opisuje.

Kształtowanie wiązki (beamforming)

Jest metodą przetwarzania sygnału wykorzystywaną w macierzach odbiorników

do kierunkowej transmisji lub odbioru sygnału (Van Veen & Buckley, 1988). Uzyski-

wane jest to przez ułożenie odbiorników w taki sposób, że sygnały z pewnych kierun-

ków są wytłumiane, a z innych wzmacniane. Technika wykorzystuje wszystkie elemen-

ty mieszaniny jednocześnie i może być użyta do wyodrębnienia poszczególnych źródeł

dźwięku, np. kilku rozmówców w jednym pomieszczeniu. Wymagana jest wcześniejsza

znajomość położenia źródeł oraz odpowiedni wyspecjalizowany zestaw filtrów.

Page 13: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

13

Maskowanie spektrogramu

Metoda opiera się na różnorodności czasowo-częstotliwościowej i przetwarza

każdy element mieszaniny z osobna. Powszechnym podejściem jest zamiana sygnału

audio na reprezentację w postaci spektrogramu oraz przypisanie każdego elementu do

odpowiedniego źródła (Simpson, 2015). Następnie spektrogram mieszaniny jest roz-

dzielany na spektrogramy poszczególnych źródeł, z których odzyskiwane są sygnały

audio.

Analiza składowych niezależnych (Independent Component Analysis)

W przeciwieństwie do poprzedniej metody analiza składowych niezależnych wy-

korzystuje reprezentację sygnału w dziedzinie statystycznej (Clifford, 2005). Sygnał

mieszaniny jest dekomponowany na zbiór niezależnych sygnałów o charakterze nie-

gaussowskim. Istotną różnicą jest to, że w przeciwieństwie do analizy Fouriera, taka

transformacja zależy od struktury danych i może się zmieniać w zależności od danych

wejściowych.

CASA (ang. Computational auditory scene analysis)

Poprzednie metody polegały na odnalezieniu pewnej struktury w danych i wyko-

rzystaniu tej wiedzy do odwrócenia procesu miksowania sygnałów. Metoda CASA zo-

stała zaprojektowana w celu imitacji procesu klasyfikowania i filtracji dokonywanego

przez ludzki układ słuchowy (Bregman, 1990). Elementy w domenie czasowo-

częstotliwościowej są grupowane w obiekty i przyporządkowywane do poszczególnych

źródeł na podstawie zestawu reguł (np. okresowość, korelacja między kanałami).

Filtracja

Na koniec najprostszy przykład separacji źródeł, posiadający duże ograniczenia,

jednak w połączeniu z innymi metodami może w pewnych przypadkach poprawić ich

skuteczność. Filtracja w dziedzinie częstotliwości może odseparować sygnały od siebie,

jeśli zajmują one inny obszar widma. W technice realizacji nagrań ta metoda jest stoso-

wana od dawna, np. do eliminacji źródeł rezonansów (filtry notch) czy redukcji przesłu-

chów lub szumów (filtry dolno- i górnoprzepustowe). W celu poprawy działania filtracji

Page 14: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

14

można zastosować filtry adaptacyjne, które dostosowują swoje parametry do sygnału

wejściowego umożliwiając lepsze dopasowanie filtru do charakteru źródła.

2.3. Wyzwania separacji sygnałów

Każda z wymienionych wyżej metod prezentuje nieco inne podejście do problemu

ślepej separacji sygnałów, jednak każda z nich musi zmierzyć się z tymi samymi pro-

blemami, które utrudniają skuteczną realizację zadania. Poniżej przedstawiono kilka

z nich.

Pogłos, echo

W rzeczywistym przypadku akustyka pomieszczenia zawsze będzie miała wpływ

na charakter sygnałów. Duża ilość pogłosu, echa, odbić w zarejestrowanych próbkach

może w znaczącym stopniu utrudnić separację. Problem ten można w pewien sposób

zredukować poprzez odpowiednie ustawienie źródeł i odbiorników, jednak w większo-

ści przypadków nie mamy możliwości zmiany ich położenia.

Częściowe pokrywanie się źródeł

Niektóre metody separacji sygnałów polegają na reprezentacji sygnału w danej

dziedzinie, a następnie dokonania decyzji odnośnie każdego elementu i przypisania go

do określonego źródła. Jednak w praktyce może się okazać, że dany element zależy od

kilku źródeł i jest wypadkową kilku sygnałów. W takim przypadku przypisanie go

w prosty sposób do jednego źródła (np. mającego największy wpływ na wypadkową)

będzie błędne.

Sygnały zależne od siebie

Jedno z założeń przyjętych w rozdziale 2.2 wymaga pełnej niezależności sygna-

łów składowych, aby separacja była możliwa do dokonania. W rzeczywistości to zało-

żenie nie zawsze jest prawdziwe i następują interferencje między sygnałami.

Ilość danych wejściowych

Implementacje algorytmów separacji sygnałów coraz częściej korzystają z algo-

rytmów uczenia maszynowego, które do poprawnego działania na rzeczywistych przy-

Page 15: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

15

kładach mogą wymagać dużej ilości danych wejściowych. Problem polega na zgroma-

dzeniu odpowiedniej ilości danych, właściwemu przygotowaniu ich oraz zarządzaniu

całą bazą danych.

Złożoność obliczeniowa

Skomplikowane algorytmy separacji wymagają dużej mocy obliczeniowej, aby

można było efektywnie z nich korzystać. Do niedawna był to jeden z głównych hamul-

ców rozwoju dziedziny separacji sygnałów, jednak rosnąca moc jednostek obliczenio-

wych powoli marginalizuje ten problem.

2.4. Przykłady

Rozdział prezentuje wybrane podejścia do problemu ślepej separacji sygnałów.

Każde z przedstawionych rozwiązań wykorzystuje na jednym z etapów sieć neuronową

jako element umożliwiający przeprowadzenie procesu separacji. Literatura opisująca

zrealizowane systemy nie jest zbyt obszerna, większość prac powstała na przestrzeni

ostatnich kilku lat.

Pierwszym przykładem jest praca Andrew J.R. Simpson’a wykorzystująca naj-

popularniejszą obecnie metodę maskowania spektrogramu z wykorzystaniem tzw. ide-

alnej maski binarnej (Simpson, 2015). Rozpatrywane zagadnienie dotyczyło uproszczo-

nej sytuacji cocktail party z tylko dwoma osobami mówiącymi. Wytrenowano splotową

sieć neuronową, która na podstawie spektrogramu mieszaniny i z wykorzystaniem tech-

niki przesuwających się okien dokonuje przewidywań statystycznych do stworzenia

maski separującej. Autor udowodnił, że stosunkowo niewielka sieć neuronowa wytre-

nowana niewielką ilością danych jest w stanie osiągnąć zadowalające rezultaty dla

uproszczonego problemu ślepej separacji.

Współautorem pracy będącej kolejnym przykładem jest Andrew J.R. Simpson

i stanowi ona kontynuację poprzedniej (Plumbley, et al., 2015). Zagadnienie zostało

uogólnione i nieco zmienione, zadaniem jest separacja ścieżki wokalnej z nagrania ca-

łego utworu. Metoda została niezmieniona i opiera się na maskowaniu spektrogramu

z wykorzystaniem maski zsyntezowanej przez sieć neuronową. Użyta sieć i ilość do-

starczonych danych treningowych jest jednak znacznie większa niż w poprzednim po-

dejściu. Autorzy udowodnili, że algorytm jest w stanie dokonać generalizacji i odsepa-

rować głos od instrumentów w kontekście całego utworu. Dodatkowo dokonali porów-

Page 16: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

16

nania użytej metody maskowania spektrogramu z metodą nieujemnej faktoryzacji ma-

cierzy.

W przeciwieństwie do poprzednich rozwiązań, w których sieć neuronowa była

używana do klasyfikacji elementów spektrogramu, autorzy kolejnego podejścia (Grais,

et al., 2013) zaproponowali wykorzystanie sieci do wyznaczenia widm źródeł i ich kla-

syfikacji. Na etapie treningu użyto sygnałów pojedynczych źródeł, a podczas separacji

sieć jest wykorzystywana do oceny zawartości każdego ze źródeł w sygnale mieszani-

ny. Problem separacji jest sformułowany jako problem minimalizacji energii, a widmo

mieszaniny jest traktowane jako ważona suma widm sygnałów składowych.

Page 17: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

17

3. Separacja metodą maskowania spektrogramu

wykorzystująca sieć neuronową

3.1. Maskowanie spektrogramu

Niniejsza praca proponuje rozwiązanie problemu ślepej separacji sygnałów meto-

dą maskowania spektrogramu, podobnie jak dwa pierwsze przykłady prezentowane

w rozdziale 2.5. Takie podejście posiada kilka istotnych zalet. Po pierwsze, reprezenta-

cja sygnałów akustycznych w dziedzinie częstotliwości jest dość naturalna i intuicyjna

dla człowieka, gdyż w pewien sposób imituje działanie ludzkiego ucha. Można więc

przypuszczać, że taka reprezentacja pozwoli na skuteczną separację. Po drugie, przypi-

sywanie elementów spektrogramu do poszczególnych źródeł możemy zdefiniować jak

problem klasyfikacji, a w takich zastosowaniach bardzo dobre rezultaty dają sieci neu-

ronowe. Po trzecie, idea takiego podejścia jest stosunkowo nieskomplikowana, właści-

wy proces decyzyjny nie jest podejmowany bezpośrednio, lecz przez sieć neuronową.

Dla uproszczenia przyjęto scenariusz, w którym jest tylko dwóch mówców- mężczyzna

i kobieta. Bardziej skomplikowany przypadek wymagałby użycia zdecydowanie więk-

szej ilości danych treningowych, znacznie wydłużyłby czas obliczeń oraz utrudniłby

proces weryfikacji i oceny jakości działania.

Do przeprowadzenia badań zasymulowano typową sytuację znaną z cocktail party

effect- dwie osoby różnej płci mówiące jednocześnie. Każdy mówca został zarejestro-

wany osobno (w mono), następnie nagrania zostały zsumowane w celu uzyskania sy-

gnału mieszaniny. Kolejnym krokiem było uzyskanie spektrogramów wszystkich trzech

sygnałów (za pomocą krótko czasowej transformacji Fouriera) oraz obliczenie idealnej

maski binarnej będącej idealnym filtrem separującym. Maska została stworzona

w następujący sposób: porównywano amplitudę każdego elementu spektrogramu mów-

cy 1 z odpowiadającym mu elementem spektrogramu mówcy 2. Jeśli element pierwsze-

go spektrogramu miał wartość większą lub taką samą to element maski przyjmował

wartość 1, w przeciwnym wypadku przyjmował wartość 0 (rysunek 2).

Page 18: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

18

Rysunek 2. Fragmenty spektrogramów obu mówców wraz z odpowiadającym im fragmentem idealnej

maski binarnej.

Tak przygotowane dane zostały podzielone na trzy części: pierwsza (60% całości)

została użyta do treningu sieci neuronowej, druga (20%) do procesu optymalizacji pa-

rametrów, trzecia (pozostałe 20%) została zachowana do testów. Sieć została skonfigu-

rowana w taki sposób, że jako dane wejściowe przyjmuje fragment spektrogramu mie-

szaniny, a na wyjściu powinna syntezować odpowiednią maskę binarną. Trening sieci

miał formę uczenia nadzorowanego, rezultat (obliczona wcześniej idealna maska binar-

na) był dostarczony razem z danymi wejściowymi.

Właściwy proces separacji polegał na przemnożeniu, element po elemencie, spek-

trogramu mieszaniny z maską binarną zsyntezowaną przez sieć i zamianę spektrogramu

na sygnał dźwiękowy (za pomocą odwrotnej krótko czasowej transformacji Fouriera).

Jak dowiodły wcześniej przeprowadzone eksperymenty taki proces pozwala na uzyska-

nie zadowalającego stopnia separacji, pod warunkiem posiadania maski zbliżonej do

idealnej. Ideę działania przedstawia rysunek 3.

Page 19: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

19

Rysunek 3. Graficzne przedstawienie procesu separacji.

3.2. Sieć neuronowa

Sztuczna sieć neuronowa jest to ogólna nazwa struktury matematycznej dokonu-

jącej obliczeń poprzez układ elementów realizujących określoną operację. Pojedynczy

element struktury nazywany jest neuronem, chociaż w porównaniu do ludzkich komó-

rek nerwowych jest on o wiele bardziej prymitywny (Tadeusiewicz, 1993). Rozdział

prezentuje elementarne zagadnienia z zakresu sztucznych sieci neuronowych oraz ich

wykorzystanie w proponowanej metodzie ślepej separacji sygnałów.

Sieć neuronowa złożona jest z wielu elementów przetwarzających informacje uło-

żonych w pewną strukturę i oddziaływujących między sobą w określony sposób.

Współcześnie wykorzystywane sieci mają budowę warstwową i wyróżnić można trzy

podstawowe typy warstw: wejściową, wyjściową oraz warstwy ukryte (Tadeusiewicz,

1993). Ilość elementów w każdej warstwie, oraz ilość warstw ukrytych może być do-

brana dowolnie, w zależności od potrzeb. Graficzne przedstawienie sieci neuronowej

obrazuje rysunek 4.

Page 20: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

20

Rysunek 4. Schematyczne przedstawienie sieci neuronowej.

Pojedynczy neuron w sztucznej sieci neuronowej wzorowany jest na neuronie

ludzkiego układu nerwowego. Wzorzec biologiczny został przedstawiony za pomocą

schematu (rysunek 5) oraz zapisany za pomocą równania (3.1). Sygnał wyjściowy neu-

ronu jest sumą sygnałów wejściowych przemnożonych przez odpowiednią wagę, po-

większoną o pewną stałą wartość b i przekształconą przez funkcję aktywacji f.

Rysunek 5. Model pojedynczego neuronu. Źródło: K. Odrzywołek: Wykorzystanie głębokich sieci

neuronowych w weryfikacji mówcy, Kraków 2016.

𝑦 = 𝑓(∑ 𝑤𝑖𝑁𝑖=1 𝑥𝑖 + 𝑏) (3.1)

Trening sieci neuronowej polega na takim doborze wag dla każdego neuronu, aby

dane na wyjściu sieci były jak najbardziej zbliżone do modelowych danych dostarcza-

Page 21: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

21

nych podczas treningu (uczenie nadzorowane). Realizowane jest to poprzez wyznacze-

nie funkcji kosztu określającą błąd popełniany przez sieć. Następnie za pomocą algo-

rytmu wstecznej propagacji błędu liczony jest wpływ każdego neuronu na błąd popeł-

niany na wyjściu sieci. Proces uczenia sieci polega na minimalizacji tego błędu, najczę-

ściej przy użyciu gradientowych metod optymalizacji (Mohri, et al., 2012).

Sieć neuronowa użyta do syntezowania maski binarnej jest siecią jednokierunko-

wą składającą się z warstwy wejściowej, wyjściowej oraz jednej warstwy ukrytej. Każ-

da warstwa składa się z 2560 neuronów, a warstwa wejściowa i ukryta posiadają dodat-

kowy neuron biasu (Widrow, 1960). Jako funkcję aktywacji zastosowano funkcję sig-

moidalną f opisaną równaniem (3.2).

𝑓(𝑥) =1

1+𝑒−𝑥 (3.2)

Wartości otrzymywane na warstwie wyjściowej są liczbami rzeczywistymi, dlate-

go jako ostatnią czynność zastosowano binaryzację w celu uzyskania na wyjściu maski

zer i jedynek.

Page 22: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

22

4. Implementacja usługi separacji głosów

Stworzenie systemu separacji głosów zostało podzielone na dwa etapy. Pierwszy

polegał na zaprojektowaniu i wytrenowaniu odpowiedniej sieci neuronowej. Na tym

etapie zostały zaimplementowane algorytmy i funkcje niezbędne do działania sieci neu-

ronowej, przygotowania danych, treningu i optymalizacji działania systemu. Drugi etap

polegał na implementacji właściwego procesu separacji przeprowadzanego na podsta-

wie danych uzyskanych w pierwszym etapie oraz stworzeniu interfejsu programistycz-

nego i graficznego. Część funkcjonalności została użyta zarówno w pierwszym, jak

i w drugim etapie.

Page 23: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

23

4.1. Architektura systemu

Większość algorytmów została zaimplementowana w środowisku MATLAB ze

względu na wysokopoziomowy charakter używanego języka, który dostarcza niezbędne

funkcje matematyczne oraz cyfrowego przetwarzania sygnałów niezbędne do realizacji

zdania. Opiera się on również na działaniach macierzowych, co także znacząco uprasz-

cza wszystkie operacje. W MATLABIE zostały zaimplementowane wszystkie funkcje

związane z przetwarzaniem plików wejściowych i wyjściowych, działaniem sieci neu-

ronowej, treningiem, optymalizacją, procesem separowania i oceną funkcjonowania

systemu. Następnie, przy użyciu narzędzia Matlab Compiler, niezbędne funkcje zostały

skompilowane do kodu w języku C# i stworzono API oraz interfejs graficzny w środo-

wisku Microsoft Visual Studio. Architekturę systemu przedstawiono na rysunku 6.

Rysunek 6. Przedstawienie architektury systemu separacji głosów.

4.2. Schemat działania

Plik dźwiękowy od użytkownika przesyłany jest protokołem HTTP i zapisywany

na serwerze. Aplikacja odczytuje ten plik (jeśli plik był stereo to tylko pierwszy kanał),

zmienia częstotliwość próbkowania na 8 kHz oraz zamienia na spektrogram. Jest on

dzielony na okna, które są następnie rozwijane w wektory podawane na warstwę wej-

ściową sieci neuronowej. Sieć wczytuje dostarczony zestaw wag z pliku i poprzez algo-

rytm sprzężenia wprzód oblicza wartości na warstwie wyjściowej. W kolejnym kroku

następuje binaryzacja z zadanym progiem i otrzymywane są maski dla każdego mówcy,

które są wymnażana z danymi wejściowymi sieci. Następnie odwracany jest proces

Page 24: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

24

dzielenia na okna i tworzone są spektrogramy dla każdego mówcy, z których odzyski-

wane są pliki dźwiękowe.

Rysunek 7. Schemat działania systemu separacji głosów.

System jest dostosowany do dwóch konkretnych mówców, w celu poprawnego

działania dla innych głosów należy ponownie przeprowadzić proces uczenia sieci, cze-

go efektem będzie odpowiedni plik z wagami. Na podstawie nagrań pojedynczych osób

tworzona jest mieszanina oraz idealna maska binarna, które są wykorzystywane do wy-

trenowania sieci pod konkretnych mówców (rysunek 8).

Rysunek 8. Schemat treningu sieci pod konkretnych mówców.

Page 25: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

25

4.3. Przygotowanie nagrań do treningu sieci i testów systemu

Początkowym etapem było przygotowanie plików audio wykorzystywanych przez

system. Za pomocą programu Reaper połączono krótkie nagrania z wykorzystywanego

korpusu mowy w jedną całość i wyeksportowano trzy osobne pliki monofoniczne: jeden

zawierający tylko głos mężczyzny, drugi tylko głos kobiety, a trzeci obie osoby mówią-

ce równocześnie. Pliki zapisano w rozdzielczości 16 bitów i częstotliwości 8 kHz, każ-

dy o identycznym czasie trwania wynoszącym ok. 7 min. 30 s.

Następnie stworzono m-pliki skryptowe przygotowujące dane wejściowe. Każdy

plik audio został przetworzony przy użyciu krótko czasowej transformacji Fouriera

(STFT) do postaci spektrogramu (za pomocą funkcji stft.m zaczerpniętej z pakietu DSP

GNU Octave) o następujących parametrach: rozmiar okna- 128 próbek, zakładka- 64

próbki, rodzaj okna- okno Hanninga. Na podstawie spektrogramów pojedynczych gło-

sów stworzono idealną maskę binarną poprzez porównanie element po elemencie war-

tości spektrogramu. Kolejnym krokiem był podział spektrogramu mieszaniny oraz ma-

ski na okna o długości 20 próbek i rozwijanie okna w jeden wektor, który stawał się

pojedynczym wierszem w macierzy przykładów używanej w sieci neuronowej (stąd

rozmiar warstw sieci neuronowej- 2560). Do treningu sieci użyto tylko wartości modułu

spektrogramu, element fazy został zachowany w celu późniejszej syntezy próbek

dźwiękowych.

Zbiór przykładów został podzielony na 3 podzbiory: pierwszy (ok. 60% całości,

1599 przykładów) użyto do treningu sieci, drugi (ok. 20%, 534) do weryfikacji parame-

trów sieci, trzeci (ok. 20%, 534) został zachowany do testów.

4.4. Implementacja sieci neuronowej

Zaimplementowano wszystkie funkcje niezbędne do prawidłowego działania sieci

neuronowej. Są to m.in. funkcja realizująca sprzężenie w przód (feedforward) wylicza-

jąca wartości na wyjściu sieci, funkcja aktywacji neuronu, funkcja kosztu oraz jej gra-

dient (niezbędne w procesie uczenia). Przygotowano również funkcję inicjalizującą sieć

z wykorzystaniem niewielkich, losowych wartości wag oraz pliki skryptowe testujące

poprawność działania funkcji na prostych przykładach. Do treningu wykorzystano algo-

rytm optymalizacyjny fmincg.m zaimplementowany przez Carla Edwarda Rasmussena.

Page 26: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

26

4.5. Implementacja algorytmu separacji

W pierwszym kroku sieć neuronowa oblicza wartości wyjściowe na podstawie

odpowiednio przygotowanego sygnału mieszaniny oraz dostarczonego po fazie treningu

zestawu wag. Następnym etapem jest zamiana wartości z wyjścia sieci neuronowej na

zera i jedynki. Binaryzację można wykonać ze zmienną wartością progową, czego re-

zultatem będą maski binarne realizujące różny stopień separacji. Proces przeprowadza-

ny jest dla każdego pojedynczego elementu z wyjścia sieci według wzorów (4.1) i (4.2)

𝑀1 = {1 𝑑𝑙𝑎 𝑊 > 𝛼0 𝑑𝑙𝑎 𝑊 ≤ 𝛼

(4.1)

𝑀2 = {1 𝑑𝑙𝑎 𝑊 < (1 − 𝛼)

0 𝑑𝑙𝑎 𝑊 ≥ (1 − 𝛼) (4.2)

gdzie: 𝑀1- element maski dla mówcy pierwszego, 𝑀2 - element maski dla mówcy

drugiego, W- odpowiadający element z wyjścia sieci, 𝛼 – próg binaryzacji (0< 𝛼<1).

Właściwy proces separacji polega na przemnożeniu element po elemencie macie-

rzy wartości spektrogramu mieszaniny (zawierającej liczby zespolone, do odzyskania

sygnałów konieczna będzie informacja o fazie) i macierzy maski binarnej. Następnie

należy odwrócić proces dzielenia spektrogramu na okna i rozwijania je w wektory, rea-

lizowane jest to przy użyciu wbudowanej funkcji reshape. Po nadaniu właściwej formy

ze spektrogramu odzyskiwany jest sygnał w dziedzinie czasu za pomocą odwrotnej

krótko czasowej transformacji Fouriera (ISTFT) realizowanej przez funkcję synthesis.m

z biblioteki DSP GNU Octave. Do tego procesu niezbędne jest podanie parametrów

użytych do tworzenia spektrogramu (rodzaj i rozmiar okna, zakładka).

4.6. Optymalizacja działania

Do treningu sieci neuronowej użyto nagrań znajdujących się w bazie Corpora

(w wersji z dnia 15.04.1998 r.) autorstwa prof. Stefana Grocholewskiego. Skorzystano

z nagrań dwóch osób, znajdujących się podkatalogach AF1K1 i AO1M1. Każdy folder

zawiera 365 plików typu .wav o częstotliwości próbkowania 16 kHz i długości słowa 12

bitów. Nagrania wykonano za pomocą mikrofonu pojemnościowego, w warunkach „na-

turalnych” pomieszczeń, w bezpośrednim sąsiedztwie komputera. Osoby mówiące na

nagraniach to mężczyzna i kobieta, oboje w wieku 20-30 lat. Pliki zawierają wypowie-

dzi liter alfabetu, cyfr, imion oraz niespójnych semantycznie zdań (np. „Lubić czarda-

szowy pląs”).

Page 27: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

27

Skuteczność działania określono poprzez procent prawidłowo sklasyfikowanych

elementów spektrogramu mieszaniny dla ustalonego progu binaryzacji (1, jeśli element

należy do pierwszego mówcy, 0 w przeciwnym przypadku). W pierwszym podejściu

system wytrenowano przy użyciu mniejszego zbioru treningowego (ok. 1000 przykła-

dów) poprzez 400 iteracji algorytmu fmincg minimalizującego funkcję kosztu sieci. Tak

wytrenowany system osiągał ok. 80% skuteczności na zbiorze treningowym, jednak

tylko 55% na zbiorze weryfikacyjnym. System nie potrafił więc dokonać generalizacji

poza zbiór treningowy.

W celu poprawy działania zwiększono liczbę iteracji do 800, zwiększono ilość

przykładów do 1599 oraz zaprojektowano plik skryptowy wykreślający krzywe uczenia

ilustrujące zmiany funkcji kosztu dla zbioru treningowego (J_Train) i zbioru weryfika-

cyjnego (J_CV) w zależności od rozmiaru zbioru treningowego (Rysunek 9).

Rysunek 9. Krzywe uczenia systemu separacji głosów.

Pozwoliło to na pewną poprawę skuteczności systemu, jednak dalsze zwiększanie

rozmiaru zbioru treningowego nie powinno przynieść znaczących zmian, gdyż krzywe

uczenia stają się coraz bardziej zbliżone do funkcji stałej.

Wprowadzono również metodę regulującą wartości wag sieci w trakcie treningu

w celu zapobiegnięcia przetrenowaniu sieci. Zastosowano najpowszechniejszą metodę

regularyzacji L2 polegającą na dodaniu składnika 1

2λ𝑤2 do każdej wagi w modelu, gdzie

λ określa stopień regularyzacji (Tomczak, 2014). Zaprojektowano skrypt przeprowadza-

jący proces uczenia sieci z wybranymi wartościami parametru λ z zakresu 0-10 i wykre-

Page 28: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

28

ślający zmiany funkcji kosztu dla zbioru treningowego (J_Train) i zbioru weryfikacyj-

nego (J_CV). Rezultat przedstawia rysunek 10.

Rysunek 10. Wartości funkcji kosztu w zależności od parametru regularyzacji lambda.

Regularyzacja nie wprowadziła bardzo istotnych zmian w działaniu systemu, naj-

niższy koszt na zbiorze weryfikującym osiągnięto dla wartości λ=0,03, którą zastoso-

wano w ostatecznej wersji systemu.

Podjęte działania pozwoliły na zwiększenie skuteczności systemu do 92% dla

zbioru treningowego, 75% dla zbioru weryfikującego i 70% dla zbioru testowego.

4.7. API

Kompletny algorytm realizujący separację stworzony w MATLABIE został

skompilowany do biblioteki Separation.dll, dzięki czemu możliwe stało się wykorzy-

stanie zaprojektowanej funkcjonalności do stworzenia aplikacji Web API, która może

być manipulowana przy użyciu protokołu HTTP. Posłużono się szablonem MVC Web

Application (Model-Widok-Kontroler) dostarczanym wraz z platformą ASP.NET. Do

poprawnego działania projektu należy dodać referencje do utworzonej biblioteki Sepa-

ration.dll oraz biblioteki z funkcjami MATLABA MWArrays.dll.

API zostało zrealizowane poprzez stworzenie publicznej klasy kontrolera Value-

sController dziedziczącej po klasie ApiController będącej częścią ASP.NET. Klasa

zawiera metody, które zostają odpowiednio zmapowane na wywołania HTTP (put, get,

delete i post). Tylko dwie z tych metod zostały zaimplementowane, co wystarcza do

uzyskania pełnej funkcjonalności systemu.

Page 29: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

29

Metoda Post (double alpha)

Realizuje odbieranie pliku wejściowego poprzez protokół HTTP. Odebrany plik

jest zapisywany na serwerze, automatycznie przeprowadzany jest proces separacji oraz

generowane są pliki wynikowe. Do metody należy przesłać parametr alpha (liczba

zmiennoprzecinkowa z zakresu 0-1) określający żądany stopień separacji (próg binary-

zacji).

Metoda Get (int speaker_num)

Realizuje przesłanie pliku wynikowego do klienta za pomocą protokołu HTTP.

Do metody należy przesłać parametr speaker_num określający, który plik ma być prze-

słany (mówcy 1 czy mówcy 2). System zaprojektowany jest na dwóch mówców, więc

parametr może przyjąć wartość 1 lub 2.

Do prawidłowego działania API należy umieścić w folderze roboczym odpowied-

ni plik weigths.mat zawierający wagi dla sieci neuronowej dostosowane do konkretnej

pary mówców.

4.8. Interfejs graficzny

Zaprojektowano prostą stronę html stanowiącą graficzny interfejs użytkownika.

Dzięki temu można skorzystać ze stworzonej funkcjonalności separacji głosów za po-

średnictwem przeglądarki internetowej. Strona umożliwia wybór pliku dźwiękowego

z dysku oraz zawiera dwa przyciski- Upload przesyła plik na serwer wraz z poleceniem

wykonania separacji oraz Download, który przesyła pierwszy wynikowy plik do użyt-

kownika. Interfejs graficzny powstał w celach demonstracyjnych, dlatego w obecnej

wersji (rysunek 11) nie ma możliwości przesłania drugiego pliku oraz wyboru stopnia

separacji.

Rysunek 11. Graficzny interfejs użytkownika.

Page 30: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

30

5. Ocena skuteczności separacji

Wynikowe pliki zawierające odseparowane głosy obu osób mówiących zostały

poddane ocenie w celu weryfikacji jakości działania systemu. Zbadano wpływ progu

binaryzacji 𝛼, który można określić jak próg pewności, z jakim system dokonuje decy-

zji, na obiektywne wskaźniki określające stopień separacji oraz odbiór nagrań przez

słuchaczy.

5.1. Wskaźniki obiektywne

Jakość separacji została zmierzona poprzez porównanie sygnałów odseparowa-

nych z oryginalnymi sygnałami pojedynczych mówców. Ocena polegała na wyznacze-

niu trzech współczynników: SDR (stosunek sygnału do zniekształceń), SAR (stosunek

sygnału do artefaktów) i SIR (stosunek sygnału do interferencji) w zależności od progu

binaryzacji 𝛼 przy użyciu pakietu BSS-EVAL (Vincent, et al., 2006).

Rysunek 12. Wartości SDR dla różnych wartości parametru 𝛼.

Page 31: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

31

Rysunek 13. Wartości SAR dla różnych wartości parametru 𝛼.

Rysunek 14. Wartości SIR dla różnych wartości parametru 𝛼.

Dla porównania przedstawiono wartości współczynników dla sygnałów odsepa-

rowanych przy użyciu idealnej maski binarnej.

Tabela 1. Wartości współczynników dla separacji idealną maską binarną.

mówca 1 mówca 2

SDR [dB] 11,7 7,9

SAR [dB] 12,3 10,2

SIR [dB] 27,1 25,7

Page 32: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

32

Współczynniki obiektywne wskazują na lepszą jakość separacji dla mówcy 1,

wartości są zwykle o kilka decybeli większe niż dla mówcy 2, także przy zastosowaniu

separacji maską idealną. Zmiana parametru 𝛼 ma różny wpływ na każdy z trzech

współczynników, nie można jednoznacznie stwierdzić, że skuteczność separacji jest

największa dla jednej wartości 𝛼. Dla wartości wyższych znacznie zmniejsza się po-

ziom interferencji, jednak rosną zniekształcenia oraz poziom artefaktów. Z kolei mniej-

sze wartości 𝛼 (do 0,3) pozwalają na zredukowanie poziomu zniekształceń kosztem

zwiększenia poziomu interferencji w sygnale odseparowanym. Zastosowanie binaryza-

cji z najniższymi progami (poniżej 0,3) skutkuje otrzymaniem sygnału odseparowanego

o najlepszym stosunku sygnału do artefaktów, jednak wartości SDR i SIR są zdecydo-

wanie niższe.

5.2. Testy odsłuchowe

Nagrania odseparowane z różnymi współczynnikami binaryzacji zostały poddane

testom odsłuchowym. W celu zredukowania ilości przykładów dźwiękowych wybrano

tylko nagrania uzyskane przez separację z progiem binaryzacji 𝛼 wynoszącym 0.1, 0.3,

0.5, 0.7 i 0.9. Zestaw do testów składał się z 24 nagrań pojedynczych zdań (niespójnych

semantycznie), dla każdego mówcy po dwa na każdą wartość 𝛼 oraz po dwa nagrania

uzyskane przy użyciu maski idealnej (traktowane jako punkt odniesienia dla oceny ja-

kości działania systemu). Osoby badane zostały poproszone o ocenę zrozumiałości mo-

wy na każdym nagraniu według skali:

1 - nagranie całkowicie niezrozumiałe,

2 - możliwość zrozumienia pojedynczych sylab,

3 - możliwość zrozumienia pojedynczych wyrazów,

4 - możliwość zrozumienia całego zdania,

5 - całe zdanie wyraźnie słyszalne, brak znaczących zakłóceń.

Badana grupa składała się z 32 osób, większość stanowiły osoby w wieku 20-30

lat, studenci lub absolwenci uczelni wyższych, ale także kilka osób starszych (ok. 50

lat) i młodszych. Zaprezentowano wykresy kołowe ilustrujące odpowiedzi badanych

osób dla wybranych wartości parametru 𝛼.

Page 33: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

33

Rysunek 15. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,1.

Rysunek 16. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,5.

Rysunek 17. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,9.

Page 34: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

34

Rysunek 18. Wyniki testów odsłuchowych dla nagrań separowanych maską idealną.

Dla każdego mówcy wykreślono krzywą uśrednionej oceny (MOS – Mean Opi-

nion Score) w zależności od parametru 𝛼 (rysunek 19).

Rysunek 19. Wykres zależności MOS od parametru 𝛼.

Wykreślono również wykresy pudełkowe przedstawiające wartości maksymalną,

trzeciego kwartyla, mediany, pierwszego kwartyla oraz minimalną dla trzech wartości

parametru 𝛼 oraz maski idealnej (dla obu mówców, rysunek 20).

Page 35: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

35

Rysunek 20. Wykres pudełkowy MOS dla różnych parametrów maski.

Testy odsłuchowe wskazują na wyższą zrozumiałość mowy dla separacji z niż-

szym progiem binaryzacji, zależność widać na rysunku 19, na którym obie krzywe wy-

raźnie opadają. Dla progu 𝛼 = 0,1 mediana odpowiedzi wynosi 4, około 50% badanych

osób była w stanie zrozumieć całe zdanie. Dla 𝛼 = 0,5 zrozumiałość spadła, mediana

wynosi 3, co odpowiada rozróżnianiu pojedynczych wyrazów. Zauważalne są również

różnice w zrozumiałości dla poszczególnych mówców, dla pierwszego średnia ocena

wynosi ok. 3 (30% badanych zrozumiało całe zdanie), a dla drugiego ok. 2,3 (12% ba-

danych zrozumiało całe zdanie). Dla progu 𝛼 = 0,9 zrozumiałość jeszcze bardziej spa-

dła, mediana wyniosła 2 (zrozumienie pojedynczych sylab), a dla całego zdania zmalała

poniżej 10%. Jednocześnie różnice w zrozumieniu mówców przestały być znaczące, w

obu przypadkach średnia ocena wyniosła ok. 2. Dla porównania nagrania odseparowane

idealną maską binarną zostały w ok. 75% przypadków zrozumiane w całości, mediana

przyjęła wartość 4, podobnie wartość średnia dla każdego mówcy.

Jeśli dodatkowo przeanalizujemy wykresy wartości SIR (które rosną wraz ze

wzrostem 𝛼) można przypuszczać, że niższe progi binaryzacji dokonują czegoś w ro-

dzaju „niepełnej” separacji. Głosy zostają częściowo oddzielone, na tyle, że możliwe

staje się zrozumienie treści, jednak wciąż pozostaje część sygnału „obcego” mówcy

(niska wartość stosunku sygnału do interferencji). Wartości SDR i SAR są najwyższe

przy niskich lub umiarkowanych progach, zniekształcenia wyraźnie rosną przy wyso-

kich wartościach progowania co uniemożliwia zrozumienie treści nagrań.

Page 36: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

36

Analizując zarówno wskaźniki obiektywne jak i subiektywne można z całą pew-

nością stwierdzić, że system znacznie lepiej radzi sobie z separacją mówcy 1 (mężczy-

zny). W każdym przypadku wartości SDR, SAR i SIR przyjmowały wyższe wartości

niż dla mówcy 2 (kobiety). Także testy odsłuchowe wskazują na lepszą zrozumiałość

mowy w nagraniach mówcy 1. System na żadnym etapie nie faworyzuje któregoś

z mówców, proces uczenia i separacji przebiega identycznie, jedynie podczas tworzenia

idealnej maski binarnej do treningu sieci elementy o takiej samej wartości spektrogramu

zostały przyporządkowane do mówcy 1. Jednak po dokonaniu analizy okazało się, że

jest to znikomy procent elementów maski (poniżej 1%) i nie ma to większego wpływu

na działanie systemu. Powodów większej skuteczności dla mówcy 1 należy więc po-

szukiwać w sposobie przygotowania nagrań treningowych oraz testowych, wyższa

energia sygnału jednego z mówców powodowałaby większą czułość na daną osobę.

Należałoby również wytrenować i dokonać testów systemu na innych parach mówców,

również tej samej płci, i porównać otrzymane rezultaty.

Page 37: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

37

6. Podsumowanie

W ramach pracy dyplomowej zrealizowano usługę API do separacji głosów w na-

graniach zawierających mowę ludzką. Po przeanalizowaniu literatury obejmującej za-

gadnienie wybrano metodę maskowania spektrogramu wykorzystującą sieć neuronową

do syntezowania maski separującej opisaną w rozdziale 3. Zagadnienie separacji głosów

zostało uproszczone do przypadku dwóch konkretnych mówców- mężczyzny i kobiety.

Do implementacji, opisanej w rozdziale 4, wykorzystano środowisko MATLAB, które

zapewnia szybkość i wygodę w realizacji algorytmów cyfrowego przetwarzania sygna-

łów i uczenia maszynowego. API zostało stworzone w języku C# we framework’u

ASP.NET z wykorzystaniem protokołu HTTP, umożliwia to korzystanie z usługi szero-

kiemu gronu użytkowników i w różnych kontekstach. Zaprojektowano również prosty

interfejs graficzny prezentujący możliwości i wygodę obsługi systemu.

Skuteczność działania systemu została zweryfikowana z pomocą obiektywnych

wskaźników oraz subiektywnych testów odsłuchowych. Otrzymane wyniki (rozdział 5)

wskazują na zadowalającą skuteczność separacji dla założonego przypadku. System

w obecnej formie jest dobrą podstawą do dalszych badań i udoskonalania opracowane-

go algorytmu. Dalsze prace nad zrealizowanym narzędziem powinny prowadzić do ge-

neralizacji przyjętych założeń i mogą obejmować poprawę procesu przygotowania da-

nych oraz sposobu otrzymywania maski separującej. Inne prace obejmujące podobne

zagadnienie wskazują, że użyta metoda może zostać użyta do rozwiązania bardziej uo-

gólnionego przypadku. Sposób realizacji usługi umożliwia proste wprowadzanie zmian

i modyfikacje poszczególnych etapów procesu separacji.

Page 38: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

38

7. SPIS RYSUNKÓW

Rysunek 1. Schematyczne przedstawienie problematyki ślepej separacji

sygnałów. ........................................................................................................................ 11

Rysunek 2. Fragmenty spektrogramów obu mówców wraz z odpowiadającym im

fragmentem idealnej maski binarnej. .............................................................................. 18

Rysunek 3. Graficzne przedstawienie procesu separacji. ...................................... 19

Rysunek 4. Schematyczne przedstawienie sieci neuronowej. ............................... 20

Rysunek 5. Model pojedynczego neuronu. Źródło: K. Odrzywołek: Wykorzystanie

głębokich sieci neuronowych w weryfikacji mówcy, Kraków 2016. ............................... 20

Rysunek 6. Przedstawienie architektury systemu separacji głosów. ..................... 23

Rysunek 7. Schemat działania systemu separacji głosów. .................................... 24

Rysunek 8. Schemat treningu sieci pod konkretnych mówców. ........................... 24

Rysunek 9. Krzywe uczenia systemu separacji głosów. ....................................... 27

Rysunek 10. Wartości funkcji kosztu w zależności od parametru regularyzacji

lambda. ............................................................................................................................ 28

Rysunek 11. Graficzny interfejs użytkownika. ..................................................... 29

Rysunek 12. Wartości SDR dla różnych wartości parametru 𝛼. ........................... 30

Rysunek 13. Wartości SAR dla różnych wartości parametru 𝛼. ........................... 31

Rysunek 14. Wartości SIR dla różnych wartości parametru 𝛼. ............................ 31

Rysunek 15. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,1. 33

Rysunek 16. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,5. 33

Rysunek 17. Wyniki testów odsłuchowych dla nagrań separowanych z 𝛼 = 0,9. 33

Rysunek 18. Wyniki testów odsłuchowych dla nagrań separowanych maską

idealną. ............................................................................................................................ 34

Rysunek 19. Wykres zależności MOS od parametru 𝛼. ....................................... 34

Rysunek 20. Wykres pudełkowy MOS dla różnych parametrów maski. .............. 35

Page 39: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

39

8. BIBLIOGRAFIA

Bregman, A. S., 1990. Auditory Scene Analysis: the perceptual organisation of

sound. The MIT Press.

Cherry, C., 1953. Some Experiments on the Recognition of Speech, with One and

with Two Ears. The Journal of the Acoustical Society of America, 25(5).

Clifford, D. G., 2005. Singular Value Decomposition & Independent Component

Analysis for Blind Source Separation.

Geman, S., Bienenstock, E. i Doursat, R., 1992. Neural Networks and the

Bias/Variance Dilemma. Neural Computation, IV(1), pp. 1-58.

Grais, E., Umut Sen, M. i Erdogan, H., 2013. Deep neural networks for single

channel source separation. arXiv:1311.2746.

Houda, A. i Otman, C., 2015. Blind Audio Source Separation: State-of-Art.

International Journal of Computer Applications, 130(4), p. 1.

Lyons, R., 2006. Wprowadzenie do cyfrowego przetwarzania sygnałów. wydanie

pierwsze red. Warszawa: Wydawnictwo Komunikacji i Łączności.

Mohri, M., Rostamizadeh, A. i Talwalkar, A., 2012. Foundations of Machine

Learning. The MIT Press.

Plumbley, M., Roma, G. i Simpson, A., 2015. Deep Karaoke: Extracting Vocals

from Musical Mixtures Using a Convolutional Deep Neural Network.

arXiv:1504.04658.

Revlin, R., 2007. Human Cognition : Theory and Practice. Nowy York: Worth

Publishers.

Simpson, A. J. R., 2015. Probabilistic Binary-Mask Cocktail-Party Source

Separation in a Convolutional Deep Neural Network. arXiv:1503.06962.

Tadeusiewicz, R., 1993. Sieci neuronowe. wydanie drugie red. Warszawa:

Akademicka Oficyna Wydaw. RM.

The MathWorks, 2014. [Online]

Dostęp:

http://www.mathworks.com/help/releases/R2014a/pdf_doc/compiler/compiler.pdf

[Data uzyskania dostępu: 28 Grudzień 2016].

Page 40: szablon do składu skryptódydaktyka:inzynierska_praca... · 2017. 2. 3. · wane z wykorzystaniem platformy programistycznej .NET i korzysta z protokołu http. Całość usługi

40

Tomczak, J., 2014. Wprowadzenie do uczenia maszynowego. [Online]

Dostęp: https://www.ii.pwr.edu.pl/~tomczak/PDF/wstep_um.pdf

[Data uzyskania dostępu: 28 Grudzień 2016].

Van Veen, B. D. i Buckley, K. M., 1988. Beamforming: A versatile approach to

spatial filtering. IEEE ASSP Magazine, 5(2).

Vincent, E., Gribonval, R. i Fevotte, C., 2006. Performance measurement in blind

audio source separation. IEEE Transactions on Audio, Speech and Language

Processing, Institute of Electrical and Electronics Engineers, 14(4), pp. 1462-1469.

Widrow, B., 1960. An Adaptive "ADALINE" Neuron Using Chemical

"Memistors", Stanford.

Wikipedia.org, 2016. Wikipedia Artificial neural network. [Online]

Dostęp: https://en.wikipedia.org/wiki/Artificial_neural_network

[Data uzyskania dostępu: 29 Listopad 2016].

Wikipedia.org, 2016. Wikipedia, Beamforming. [Online]

Dostęp: https://en.wikipedia.org/wiki/Beamforming

[Data uzyskania dostępu: 26 Listopad 2016].