You are on page 1of 92

МАГІСТЕРСЬКА РОБОТА

МР. ІПм - 50.00.00.000 ПЗ


Група ІПм-22-4
Іванов Віктор
2024
2

Івано-Франківський національний технічний університет нафти і газу

Інститут інформаційних технологій


Кафедра інженерії програмного забезпечення
Іванов Віктор Сергійович
_____________________________________________________________________________________________
(прізвище, ім’я, по батькові)

УДК ___004.942_
(індекс)

МАГІСТЕРСЬКА РОБОТА

Моделі та засоби реалізації функціональності мультимедійного


інтелекту
_____________________________________________________________________________________________
(назва роботи)

Інженерія програмного забезпечення


_____________________________________________________________________________________________
(назва освітньої програми)
121 - Інженерія програмного забезпечення
_____________________________________________________________________________________________
(шифр і назва спеціальності)

Іванов В.С.
_____________________________________
(підпис, ініціали та прізвище здобувача освітнього ступеня)

Гобир Лідія Мирославівна, асистент


Науковий керівник _________________________________________________
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
Допущено до захисту
В.о. завідувача кафедри
доц. Бандура В.В.
_______________________________________
(посада) (підпис) (дата) (ініціали та прізвище)
Рецензент
доц.
______________________________________
(посада) (підпис) (дата) (ініціали та прізвище)
Робота містить результати власних досліджень. Використання ідей, результатів і текстів інших
авторів мають посилання на відповідне джерело

Івано-Франківськ – 2024
3

Івано-Франківський національний технічний університет нафти і газу

Інститут інформаційних технологій___________________________________________________________


Кафедра інженерії програмного забезпечення________________________________________________
Освітньо-кваліфікаційний рівень магістр___________________________________________________
Спеціальність 121 – Інженерія програмного забезпечення________________________________
ЗАТВЕРДЖУЮ:
В.о. зав. кафедрою ІПЗ
доц. В.В. Бандура
“ 04 вересня
____ ” ________________2023 р.

ЗАВДАННЯ
НА МАГІСТЕРСЬКУ РОБОТУ СТУДЕНТУ
Іванову Віктору Сергійовичу
(прізвище, ім’я, по-батькові)

1. Тема магістерської роботи “Моделі та засоби реалізації функціональності мультимедійного


інтелекту ”_________________________________________________________________________
керівник проекту (роботи) Гобир Лідія Мирославівна, асистент______________________________
затверджені наказом закладу вищої освіти від “ __09__ ” __листопада__ 2023 р. № ___561/7__
2. Строк подання студентом проекту (роботи) 15 січня 2024 р._______________________
3. Вихідні дані до проекту (роботи) Архітектура, формальний опис та алгоритми функціонування
систем біометричної аутентифікації користувача_ ____________________________________
4. Зміст розрахунково - пояснювальної записки(перелік питань, які потрібно розробити)
1. Аудіоаналіз. Розгляд наявних програмних рішень для обробки аудіопотоку
2. Аналіз можливостей алгоритмів відстеження та ідентифікації елементів аналізу мовлення в
аудіопотоці
3. Етапи обробки аудіофрагментів
4. Проектування та реалізація алгоритму для відстеження елементів аналізу мовлення в
аудіопотоці
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень)
1. Структура проекту (рис. 4.2 ст. 72) _
2. Перетворення аудіофрагменту в байтовий масив (рис. 4.4 ст. 79) _
3. Повідомлення про результат збереження розпізнавання (рис. 4.6 ст. 81) __
4. Результуючий розпізнаваний текст (рис. 4.7 ст. 81) _
4

6. Консультанти розділів проекту (роботи)

Розділ Консультант Підпис, дата

Нормоконтроль доц. к.т.н. Вовк Р. Б.

Перевірка на плагіат доц. к.т.н. Вовк Р. Б.

7. Дата видачі завдання 04 вересня 2023 р.

Керівник ___________________________
(підпис)

Завдання прийняв до виконання ____ ______________


(підпис)

КАЛЕНДАРНИЙ ПЛАН
№ Строк виконання
Назви етапів магістерської роботи Примітка
п/п етапів роботи

1 Аналіз наукової літератури 05.10.2023 виконано

Аналіз сучасних інструментів систем


2 15.10.2023 виконано
аудіоаналізу

Дослідження та аналіз ефективності


3 22.10.2023 виконано
алгоритмів у сфері аудіоаналізу

Дослідження мел-частотних
4 кепстральні та рекурентних нейронних 31.10.2023 виконано
мереж
Розробка алгоритму виявлення
5 12.11.2023 виконано
мовлення
6 Програмна реалізація алгоритму 18.11.2023 виконано

Затвердження пояснювальної записки


7 15.01.2024 виконано
роботи завідувачем кафедри

Студент – магістр ___________________


(підпис)
Керівник роботи ___________________
(підпис)
5

АНОТАЦІЯ

Магістерська робота: 91с., 31 рис., 41 джерело, 5 додатків.


Тема: Моделі та засоби реалізації функціональності мультимедійного
інтелекту.
Об’єкт дослідження: Підходи та процедури розпізнавання елементів мовлення
в аудіопотоці.
Мета роботи: Дослідження алгоритмів знаходження та ідентифікації елементів
аналізу мовлення в аудіопотоці та створення додатку, який дозволяє обробляти
аудіодані.
Предмет дослідження: Характеристики наявних методів та алгоритмів для
пошуку, виявлення та ідентифікації елементів аналізу мовлення в аудіопотоці.
Результати дослідження:
Досліджено можливості використання різних методів пошуку елементів
мовлення в аудіопотоці та інструментів їх розпізнавання та аналізу. Був створений
власний метод для виявлення та обробки елементів аналізу мовлення.
Висновок:
В результаті досліджень було отримано алгоритм, що застосовується для
пошуку та обробки елементів аналізу мовлення в аудіопотоці.

АЛГОРИТМ, СИСТЕМА, ТРЕКІНГ, АУДІОДАНІ, АУДІОПОТІК, АНАЛІЗ


МОВЛЕННЯ, СХЕМАТИЧНИЙ КОНСПЕКТ, ОБРОБКА ІНФОРМАЦІЇ
6

ANNOTATION

Master's work: 91p., 31 fig., 41 sources, 5 additions.


Topic: Models and implementation tools for multimedia intelligence functionality.
Object of research: Approaches and procedures for speech element recognition in
an audio stream.
Purpose: Research on algorithms for detection and identification of speech analysis
elements in an audio stream, and development of an application enabling the processing of
audio data.
Subject of research: Characteristics of existing methods and algorithms for search,
detection, and identification of speech analysis elements in an audio stream.
Research results:
The possibilities of utilizing various methods for speech element search in an audio
stream and tools for their recognition and analysis have been explored. A proprietary method
has been developed for the detection and processing of speech analysis elements.
Conclusion:
As a result of the research, an algorithm has been obtained that is applied for the
search and processing of speech analysis elements in an audio stream.

ALGORITHM, SYSTEM, TRACKING, AUDIODATA, AUDIO STREAM,


SPEECH ANALYSIS, SCHEMATIC SUMMARY, INFORMATION PROCESSING
7

ЗМІСТ

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, ОДИНИЦЬ, СКОРОЧЕНЬ І


ТЕРМІНІВ ………………………………………………………………………………..9
ВСТУП……………………………………………………………………...……………10

РОЗДІЛ 1
АУДІОАНАЛІЗ. ОГЛЯД НАЯВНИХ ПРОГРАМНИХ РІШЕНЬ АНАЛІЗУ
АУДІОПОТОКУ………………………………………………………………………..15
1.1 Системи аналізу аудіопотоку…………………………………………………….16
1.2 Аналіз голосу програми Praat……………………………………………………17

1.3 Система візуального аналізу аудіосигналу Sonic Visualiser……………….…..18

1.4 Програма для обробки аудіосигналу Max/MSP …………………………….….20


1.5 Висновки до розділу………………………………………………………….…..21

РОЗДІЛ 2
АНАЛІЗ МОЖЛИВОСТЕЙ АЛГОРИТМІВ ЗНАХОДЖЕННЯ ТА ІДЕНТИФІКАЦІЇ
ЕЛЕМЕНТІВ АНАЛІЗУ МОВЛЕННЯ В АУДІОПОТОЦІ…………………….…….25
2.1 Поняття та методи розпізнавання елементів аналізу мовлення………….……23
2.2 Відстеження та ідентифікація. Аналіз даних аудіопотоку………………….…25
2.3 Поняття інтелектуального аналізу………………………………………………29
2.4 Необхідність інтелектуального аналізу для розпізнавання елементів
мовлення………………………………………………………………………….……33
2.5 Кластерний аналіз………………………………………………………….……...34
2.6 Висновки до розділу………………………………………………………………37

РОЗДІЛ 3
ЕТАПИ ОБРОБКИ АУДІОФРАГМЕНТІВ…………………………………….……..41
3.1 Аналіз спектральних характеристик аудіосигналу…………………………….38
8

3.2 Перетворення Фур'є (Fourier Transform)………………………………………..45


3.3 Мел-частотні кепстральні коефіцієнти (MFCC)………………………………..49
3.4 Сегментація аудіосигналу………………………………………………………..52
3.5 Рекурентні нейронні мережі (Recurrent Neural Networks, RNNs)……………..55
3.6 Висновки до розділу………………………………………………………….…..57

РОЗДІЛ 4

ПРОЕКТУВАННЯ ТА РЕАЛІЗАЦІЯ АЛГОРИТМУ ДЛЯ ВІДСТЕЖЕННЯ


ЕЛЕМЕНТІВ АНАЛІЗУ МОВЛЕННЯ В АУДІОПОТОЦІ…………………….…….58

4.1 Мова програмування та програмне середовище……………………….……….58


4.2 Kubernetes. Визначення та використання……………………………………….60
4.3 База даних. MongoDB…………………………………………………………….63
4.4 Бібліотека MaryTTS………………………………………………………………65
4.5 RabbitMQ. Обробка потокових даних…………………………………….……..66
4.6 Структура проекту………………………………………………………….…….68
4.7 Аналіз аудіопотоку та виявлення елементів мовлення…………………….…..72
4.8 Висновки до розділу………………………………………………………….…..77

ВИСНОВКИ………………………………………………………………………….…78
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………………………...79
ДОДАТКИ………………………………………………………………………………84
9

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, ОДИНИЦЬ,


СКОРОЧЕНЬ І ТЕРМІНІВ

API – інтерфейс програмування додатків


BSON – бінарний формат представлення даних у стилі JSON
CPU – центральний обчислювальний блок
FFT – швидке перетворення Фур'є
GUI – графічний інтерфейс користувача
HTML – мова розмітки гіпертексту
HTTP – протокол передачі гіпертексту
JSON – формат обміну даними, що використовує людино-читабельний
текст
Linux – загальна назва UNIX-подібних операційних систем
MongoDB – документо-орієнтована система управління базами даних
OS – операційна система
PCM – імпульсно-кодова модуляція
RAM – оперативна пам'ять
REST – стиль архітектури взаємодії розподілених систем
SQL – мова структурованих запитів
UI – інтерфейс користувача
URL – єдиний локатор ресурсів
WAV – формат аудіофайлу
Windows – група сімейств комерційних операційних систем корпорації
Microsoft
XML – розширювана мова розмітки
10

ВСТУП

Актуальність роботи
У сучасному світі значно зростає роль та вплив цифрових технологій у всіх
сферах людської діяльності. Одним із ключових напрямків технологічного прогресу
є розвиток мультимедійного інтелекту, який охоплює широкий спектр додатків, від
автоматизації домашніх систем до розширених аналітичних інструментів у бізнесі та
науці. Актуальність даної роботи полягає у створенні та вдосконаленні засобів для
обробки та аналізу мовлення в аудіопотоках, що є критично важливим у контексті
зростаючої інформаційної перенасиченості та потреби в ефективному управлінні
цими даними.
Розпізнавання та обробка мовлення є основною складовою багатьох сучасних
інтелектуальних систем. Вони використовуються у широкому спектрі застосувань -
від голосових помічників та інтерактивних систем до аналітичних інструментів, що
дозволяють виявляти ключові інформаційні патерни в аудіоданих. Така обробка
дозволяє не тільки підвищити зручність використання голосових інтерфейсів, але й
відкриває можливості для глибокого аналізу мовлення, які можуть бути використані
в різних галузях, включаючи освіту, медицину, безпеку та юриспруденцію.
Завдяки постійному розвитку обчислювальних технологій та машинного
навчання, можливості аналізу мовлення стрімко зростають. Це відкриває нові
перспективи для створення більш ефективних та точних систем розпізнавання
мовлення. Однак, наявність великих обсягів даних та різноманітність мовних
особливостей ставлять перед дослідниками складні завдання щодо розробки
алгоритмів, здатних ефективно обробляти та аналізувати аудіопотоки. Ця робота
спрямована на вирішення цих завдань шляхом розробки нових моделей та методів
аналізу мовлення, що включають в себе виявлення та ідентифікацію ключових
елементів мовлення та їх подальшу обробку.
Важливість цієї роботи також полягає у розробці програмного додатку, що
дозволяє автоматизувати процес перетворення аудіоданих у стислий конспект. Такий
підхід значно спрощує обробку великих обсягів аудіоінформації та підвищує
11

ефективність використання аудіоданих у різних сферах, від академічних досліджень


до бізнес-аналітики.
Крім того, важливість дослідження підкреслюється потребою у постійному
вдосконаленні технологій обробки природної мови та адаптації їх до мінливих умов
та потреб сучасного світу. Завдяки глибокому аналізу мовлення, можливо не лише
покращити якість автоматизованого розпізнавання мови, але й забезпечити більш
точне виявлення емоцій, інтонацій та інших нюансів, що є ключовими для різних
галузей, включаючи психологію, соціологію та маркетинг.
Основним викликом у цій області є створення алгоритмів, здатних
забезпечувати високу точність і швидкість обробки аудіоданих. Дослідження в цьому
напрямку має не тільки теоретичне, але й значне практичне значення, оскільки воно
сприяє створенню більш ефективних та універсальних систем обробки мовлення.

Мета дослідження і задачі дослідження


Метою даної дослідження є розробка та аналіз алгоритмів для ідентифікації та
аналізу елементів мовлення в аудіопотоках, а також створення програмного додатку
для обробки аудіоданих у стислий конспект.
Головними завданнями дослідження є:
1. Аналіз наявних програмних рішень для обробки аудіопотоку та визначення
їхніх основних переваг та недоліків.
2. Розробка ефективних алгоритмів для виявлення та ідентифікації елементів
аналізу мовлення.
3. Експериментальне тестування розроблених методів з метою оцінки їх
ефективності та точності.
4. Створення програмного додатку, що дозволяє перетворювати аудіодані в
стислий конспект.

Об’єктом дослідження є підходи та процедури розпізнавання елементів


мовлення в аудіопотоці.
12

Предметом дослідження являються наявні методи та алгоритми для пошуку,


виявлення та ідентифікації елементів аналізу мовлення в аудіопотоці.

Методи дослідження
Дослідження базується на застосуванні комплексного підходу, що включає
аналіз наукової літератури, програмування, експериментальну верифікацію, а також
порівняльний аналіз. Використовуються методи обчислювальної лінгвістики та
машинного навчання для обробки аудіоданих, а також статистичні методи для оцінки
точності та ефективності алгоритмів.

Наукова новизна одержаних результатів


Розроблено нові алгоритми для виявлення та аналізу мовних елементів в
аудіопотоках, що підвищують точність та швидкість обробки. Також створено
комплексний підхід до обробки аудіоданих, що інтегрує різні методи та техніки
аналізу.

Практичне значення одержаних результатів


Розроблені методи можуть бути використані для створення поліпшених систем
автоматичного розпізнавання мови. Результати дослідження сприяють підвищенню
ефективності роботи із великими обсягами аудіоданих у різних сферах застосування.

Особистий внесок студента:


1. Проведення аналітичного огляду суміжних програмних рішень.
2. Експериментальне тестування та оцінка ефективності алгоритмів аналізу
мовлення.
3. Розробка нового алгоритму для аналізу мовлення.
4. Програмування та реалізація програмного додатку для обробки елементів
аналізу мовлення в аудіопотоці, а також їх подальшої переробки в стислий
констпект.
13

Структура магістерської роботи


Магістерська робота викладена на 91 сторінках друкованого тексту, який
складається зі вступу, чотирьох розділів, висновків, списку використаних джерел (41
найменування). Робота містить 31 рисунків та 5 додатків обсягом 9 сторінок.
14

РОЗДІЛ 1
АУДІОАНАЛІЗ. ОГЛЯД НАЯВНИХ ПРОГРАМНИХ РІШЕНЬ АНАЛІЗУ
АУДІОПОТОКУ

1.1 Системи аналізу аудіопотоку

1.1.1 Поняття аудіоаналітики


Аудіоаналітика - це процес аналізу звукових даних, що включає розпізнавання,
класифікацію, обробку та інтерпретацію аудіосигналів. Завдяки розвитку цифрових
технологій, аудіоаналітика стала невід'ємною частиною багатьох сфер, починаючи
від безпеки та медіа до охорони здоров'я та розваг. Сучасні системи аудіоаналітики
використовують складні алгоритми машинного навчання та штучного інтелекту для
того, щоб точно розпізнавати та інтерпретувати аудіосигнали.
За допомогою систем аудіоналітики можна:
– розпізнавання мови та перетворення мовлення в текст;
– класифікація звуків та музики;
– аналіз емоцій та інтонацій;
– виявлення аномалій у звукових патернах;
– обробка та оптимізація аудіосигналів.

1.1.2 Завдання аудіоаналітики


Перелік аналітичних завдань, які вирішує аудіоаналітика:
1) Розпізнавання мовлення та його перетворення у текст;
2) Аналіз емоцій та інтонацій;
3) Класифікація звуків;
4) Обробка мовлення для покращення розбірливості та якості звуку;
5) Покращення чіткості мовлення та адаптацію звуку до конкретних умов
прослуховування;
6) Біометрична ідентифікація особи за голосом;
7) Автоматичне виявлення ключових слів та фраз;
15

8) Створення аудіовізуальних субтитрів.

1.2 Аналіз голосу програми Praat

1.2.1 Особливості програми Praat


Praat є однією з провідних програмних систем для аналізу, вивчення та обробки
голосу. Розроблена Полом Бурмаом та Девідом Венемансом, Praat набула широкого
поширення в академічних та дослідницьких кругах завдяки своїй гнучкості та
широкому функціоналу.
Основні можливості Praat:
1) Спектральний аналіз;
2) Обробка аудіо;
3) Аналіз мовлення.
Praat дозволяє користувачам писати скрипти для автоматизації рутинних
завдань, що значно збільшує продуктивність обробки великих обсягів аудіоданих. Ця
функція робить Praat особливо цінним для дослідників, які проводять масштабні
аудіоаналітичні проекти. Крім того, інтерфейс програми можна налаштовувати під
конкретні потреби користувача, що робить її зручною для осіб з різним рівнем досвіду
у роботі з аудіоаналітикою (рис. 1.1).

Рис. 1.1. Інтерфейс програми Praat


16

Основні елементи інтерфейсу програми Praat:


1) Головне вікно;
2) Меню функцій;
3) Графічний відображення звуку;
4) Аналітичні інструменти:
5) Панель скриптів;
6) Консоль для команд.
Praat широко застосовується в академічних дослідженнях, особливо у сферах
фонетики, лінгвістики та голосової комунікації. Його здатність точно аналізувати
акустичні характеристики голосу робить його незамінним інструментом для
науковців, що вивчають властивості мовлення та голосу.

1.3 Система візуального аналізу аудіосигналу Sonic Visualiser

1.3.1 Особливості програми Sonic Visualiser


Sonic Visualiser є високопродуктивним інструментом для візуального аналізу
аудіосигналів, розробленим з метою забезпечити детальний аналіз музичних записів.
Ця програма особливо корисна для музикознавців, інженерів звуку та дослідників, які
потребують глибокого вивчення характеристик аудіофайлів.
Sonic Visualiser відіграє важливу роль у світі аудіоаналізу, поєднуючи глибокий
функціонал з доступним і зрозумілим інтерфейсом. Ця програма є незамінним
інструментом для дослідників, музикантів, інженерів звуку та всіх, хто займається
аудіоаналітикою. Її можливість детально візуалізувати аудіосигнали,
використовувати широкий спектр плагінів для розширеного аналізу та здатність
обробляти великі об'єми даних робить Sonic Visualiser не лише потужним
аналітичним інструментом, а й платформою для творчих експериментів у галузі аудіо.
Особливо цінним є її відкритий характер та підтримка спільнотою, що
забезпечує постійне оновлення та розвиток програми. Це дозволяє Sonic Visualiser
залишатися актуальною та відповідати на зростаючі вимоги сучасного аудіоаналізу.
Особливості програми:
17

1) Детальне візуальне представлення: Sonic Visualiser надає різні види


візуального відображення аудіосигналів, включаючи хвильові форми, спектрограми
та інші види спектрального аналізу (рис. 1.2);
2) Підтримка різноманітних аудіоформатів: Програма здатна обробляти
більшість стандартних аудіоформатів, що робить її універсальним інструментом для
аналізу;
3) Анотації та мітки: Sonic Visualiser дозволяє користувачам додавати анотації
та мітки до аудіофайлів для виокремлення та коментування важливих частин запису;
4) Плагіни та розширення: Програма підтримує широкий спектр плагінів, що
дозволяє користувачам розширювати її функціональність та адаптувати під свої
конкретні потреби в аналізі.

Рис. 1.2. Інтерфейс програми Sonic Visualiser

1.3.2 Синхронізація з іншими даними


Синхронізація з іншими даними: Sonic Visualiser може синхронізуватися з
додатковими даними, такими як MIDI-файли або нотні записи, що забезпечує
комплексний аналіз музичних творів.
Ця функція є особливо корисною для комплексного аналізу та дослідження, де
18

потрібно порівнювати та вивчати аудіо у контексті іншої інформації.


Програма надає можливість точно вирівнювати аудіо та інші види даних в часі,
що дозволяє детально аналізувати взаємозв'язки між аудіо- та неаудіоелементами в
досліджуваному матеріалі.
Sonic Visualiser відрізняється високою точністю візуалізації та аналітичними
можливостями. Цей інструмент дозволяє користувачам глибоко занурюватися в
структуру аудіосигналів, роблячи його незамінним для детального аналізу музики та
звуків. Крім того, гнучкість та розширюваність програми через плагіни робить її
корисною для широкого кола задач, пов'язаних із аудіоаналізом (рис. 1.3).

Рис. 1.3. Хвильові форми та спектрограми двох wave-файлів

1.4 Програма для обробки аудіосигналу Max/MSP

1.4.1 Огляд Max/MSP


Max/MSP, розроблена компанією Cycling '74, є однією з найбільш відомих та
використовуваних програм для обробки аудіосигналів, зокрема в галузях музичної
композиції, звукового дизайну та мультимедійного мистецтва. Ця програма
забезпечує величезний діапазон можливостей для експериментів зі звуком та
19

аудіовізуальними компонентами, використовуючи графічний інтерфейс для


програмування звукових та візуальних ефектів.
Max/MSP включає широкий спектр функцій:
- Генерація та синтез звуку: користувачі можуть створювати різноманітні
звукові ефекти, від простих тонів до складних музичних композицій.
- Обробка аудіосигналів: програма дозволяє застосовувати різноманітні ефекти
та фільтри до аудіосигналів, що робить її ідеальною для звукорежисерів та
музикантів.
- Інтерактивність та контроль в реальному часі: Max/MSP дозволяє інтегрувати
входи з різних джерел, таких як MIDI-контролери, сенсори руху, та інші зовнішні
пристрої, надаючи можливості для створення інтерактивних інсталяцій та виступів.

1.4.2 Графічний Інтерфейс Max/MSP


Інтерфейс Max/MSP (рис. 1.4) базується на системі "патчів", де користувачі
можуть створювати і з'єднувати різні модулі чи об'єкти для генерації та обробки
звуку. Ця структура дозволяє велику гнучкість і експериментування, оскільки
користувачі можуть легко додавати, видаляти та змінювати компоненти своїх
проектів.

Рис. 1.4. Інтерфейс Max/MSP

1.4.3 Візуальна мова програмування Max/MSP


Важливою особливістю Max/MSP є його візуальна мова програмування (рис
20

1.5), що дозволяє користувачам "програмувати" без написання традиційного коду.


Це робить Max/MSP доступним для людей без попереднього досвіду програмування,
хоча для створення складних проектів все ж потрібно розуміння основ аудіо- та
медіатехнологій.

Рис. 1.5. Приклад візуального програмного патча в Max/MSP

Ключові аспекти програмування в Max/MSP:


1) Патчери: Основною одиницею в Max/MSP є "патчер", що є візуальним
інтерфейсом, де користувачі "програмують" шляхом створення та з'єднання об'єктів
у графічному середовищі. Це схоже на роботу з електронною схемою.
2) Об'єкти та Відправка Повідомлень: Кожен об'єкт у Max/MSP виконує певну
функцію, від генерації аудіосигналу до обробки даних. Об'єкти спілкуються між
собою за допомогою "повідомлень", що дозволяє створювати складні логічні або
обробні ланцюги.
3) Модульність: Оскільки Max/MSP базується на модульному підході,
користувачі можуть легко експериментувати, додавати або видаляти компоненти,
тестувати нові ідеї та швидко вносити зміни.
4) Широкий Вибір Об'єктів: Max/MSP пропонує велику кількість вбудованих
21

об'єктів, що охоплюють широкий спектр функціональності – від основних


математичних операцій до складного аудіо та відео оброблення.
5) Підтримка MIDI та Аудіо Інтерфейсів: Max/MSP легко інтегрується з MIDI-
контролерами та зовнішніми аудіо інтерфейсами, що робить його потужним
інструментом для виконавців та аудіоінженерів.
6) Зовнішні Об'єкти та Розширення: Користувачі можуть розширювати
функціонал Max/MSP, використовуючи зовнішні об'єкти або бібліотеки, створені як
спільнотою, так і комерційними розробниками. Це включає спеціалізовані аудіо- та
відео-ефекти, алгоритми обробки та інструменти для специфічних завдань.
7) Інтерактивність у Реальному Часі: Однією з ключових особливостей
Max/MSP є його здатність до обробки та реагування на дані в реальному часі. Це
дозволяє створювати інтерактивні інсталяції, живі музичні виступи та інші динамічні
застосування.
8) Візуальне Програмування та Прототипування: Візуальна природа Max/MSP
полегшує розробку та тестування прототипів, що є особливо цінним для швидкого
розвитку проектів і експериментування з новими ідеями.

1.5 Висновки до розділу

Загальний аналіз розглянутих інструментів виявляє кілька ключових


тенденцій та особливостей у сфері аудіоаналітики.
Перше та найважливіше - це різноманітність та спеціалізація доступних
інструментів. Від програм з високою точністю аналізу голосу та мовлення до
комплексних систем для музичного синтезу та звукового дизайну, існує широкий
спектр програм, кожна з яких має свої унікальні можливості та застосування. Ця
різноманітність відкриває двері для творчого використання та досліджень у
різних областях, від академічних до комерційних проектів.
Другим важливим аспектом є інтерактивність та гнучкість цих програм.
Багато з них дозволяють користувачам не лише аналізувати, але й маніпулювати
22

аудіосигналами в реальному часі, що є вирішальним для виконавського


мистецтва, музичного продакшну та мультимедійних інсталяцій.
Третє - це доступність та спільнотна підтримка. Відкритість деяких з цих
платформ сприяє їх постійному розвитку та адаптації до нових вимог та
технологій. Користувацькі спільноти надають важливу підтримку у формі
плагінів, підручників, та обговорень, що сприяє поширенню знань та досвіду.
23

РОЗДІЛ 2
АНАЛІЗ МОЖЛИВОСТЕЙ АЛГОРИТМІВ ЗНАХОДЖЕННЯ ТА
ІДЕНТИФІКАЦІЇ ЕЛЕМЕНТІВ АНАЛІЗУ МОВЛЕННЯ В АУДІОПОТОЦІ

2.1 Поняття та методи розпізнавання елементів аналізу мовлення

2.1.1 Поняття розпізнавання елементів мовлення


Розпізнавання елементів мовлення в аудіопотоці - це комплексний процес, який
полягає у виявленні, класифікації, інтерпретації та перетворенні мовленнєвих
сигналів на відповідну текстову чи структуровану форму. Це включає розуміння та
обробку різних аспектів мовлення, від окремих фонем до цілих фраз і речень, а також
інтерпретацію мовленнєвих нюансів, таких як інтонація, акцентуація та емоційні
зміни.
Розпізнавання мовлення базується на аналізі звукових характеристик мовлення
і визначенні структурних елементів мови.
Аутентифікація елементів мовлення є складним завданням, що вимагає високої
точності та адаптивності алгоритмів для роботи в різних умовах і з різними мовами.
Цей процес стає ще складнішим, коли йдеться про обробку неструктурованого
мовлення, такого як розмовна мова або діалекти.
Розпізнавання елементів мовлення в аудіопотоці є ключовою областю
дослідження в галузі обробки мовленнєвих даних, яка відкриває широкі можливості
для розробки різноманітних застосувань, від голосових помічників до систем
автоматичного перекладу.

2.1.2 Методи розпізнавання елементів мовлення


На практиці використовують наступні методи розпізнавання мовлення:
- Акустичний аналіз: цей метод включає аналіз звукових характеристик
мовлення, таких як тон, гучність та тембр. Використовуючи спектральний аналіз,
можна розрізнити різні фонетичні елементи та визначити властивості голосу;
24

- Фонетичний аналіз: включає розпізнавання і класифікацію фонем -


найменших одиниць звуку в мові. Цей метод дозволяє розрізняти слова та фрази на
основі їх звукового складу;
- Семантичний аналіз: сфокусований на розумінні значення слів та фраз у
контексті. Семантичний аналіз важливий для визначення намірів та контексту в
мовленнєвих командах;
- Машинне навчання та штучний інтелект: використання алгоритмів
машинного навчання, особливо нейронних мереж, дозволяє системам навчатися від
розпізнавання мовленнєвих патернів з часом, покращуючи точність та ефективність
розпізнавання;

2.1.3 Важливість контекстного розуміння для розпізнавання елементів


мовлення
Контекстне розуміння є критично важливим для систем розпізнавання
елементів мовлення, оскільки мовлення людини нерідко залежить від ситуаційного
контексту, що надає словам та фразам конкретного значення. Здатність системи
правильно інтерпретувати мовлення в контексті конкретної ситуації або діалогу
значно підвищує точність розуміння мовних нюансів. Наприклад, одне й те ж слово
може мати різні значення в різних контекстах, а також важливість інтонації та
емоційного забарвлення мовлення не може бути знехтувана. Контекстне розуміння
також допомагає системам розпізнавати іронію, сарказм та інші складні мовні форми,
що є важливим для створення більш природньої та ефективної взаємодії між
людиною та машинами.

2.1.4 Особливості системи розпізнавання елементів мовлення


Системи розпізнавання елементів мовлення мають низку особливостей та
унікальних характеристик, які дозволяють їм ефективно аналізувати та
інтерпретувати людське мовлення:
25

- Висока Точність та Швидкість Розпізнавання: Сучасні системи розпізнавання


мовлення здатні швидко та точно обробляти великі об'єми мовленнєвих даних,
завдяки застосуванню передових алгоритмів та машинного навчання.
- Адаптація до Різних Мов та Діалектів: Ефективні системи розпізнавання
мовлення здатні адаптуватися до різноманітних мовних особливостей, включаючи
акценти, діалекти та сленг, забезпечуючи більшу гнучкість у міжкультурній
комунікації.
- Обробка Шумових Даних: Важливою характеристикою є здатність системи
ефективно працювати в умовах з високим рівнем фонового шуму, фільтруючи
небажані звуки для чіткішого розпізнавання мовлення.
- Інтеграція з Іншими Системами та Платформами: Сучасні системи
розпізнавання мовлення часто інтегруються з іншими програмами та сервісами,
такими як мобільні додатки, системи автоматизації будинку, та інші інтелектуальні
системи.
- Семантичний Аналіз та Розуміння Контексту: Продвинуті системи здатні не
лише розпізнавати слова, але й розуміти їх значення в контексті розмови, що є
ключовим для створення більш природнього та змістовного взаємодії.
- Емоційне Розпізнавання: Деякі системи включають можливість аналізу
емоційних станів мовця на основі інтонації та модуляції голосу, що може бути
використано в контакт-центрах, психологічному аналізі та інших застосуваннях.
У підсумку, ці особливості роблять системи розпізнавання елементів мовлення
надзвичайно потужними та багатофункціональними інструментами, що мають
широкий спектр застосувань в сучасному технологічному світі.

2.2 Відстеження та ідентифікація. Аналіз даних аудіопотоку

2.2.1 Поняття відстеження та ідентифікації


В контексті аналізу даних аудіопотоку, поняття відстеження та ідентифікації
відіграють важливу роль. Ці процеси стосуються здатності системи розпізнавати,
відслідковувати та класифікувати різні елементи в аудіосигналі.
26

Відстеження в аудіопотоці полягає у здатності системи неперервно слідкувати


за певними аспектами мовлення або звуку в потоці даних. Наприклад, це може
означати виявлення і відстеження голосу конкретного мовця в протягом розмови або
визначення музичних мотивів у композиції. Відстеження дозволяє системі
підтримувати фокус на обраному елементі, незважаючи на зміни в аудіооточенні чи
з'явлення нових звукових подразників.
Ідентифікація в аудіопотоці включає розпізнавання та класифікацію виявлених
аудіоелементів. Це може означати, наприклад, визначення, чи є певний звук голосом
людини, музичним інструментом, чи природним шумом. В процесі ідентифікації
система використовує зібрані дані для висновку про природу та характеристики
звуку, часто залучаючи до цього алгоритми машинного навчання та аналіз шаблонів.
Комбінація цих двох процесів є ключовою для розуміння та інтерпретації
аудіоданих. Вони дозволяють системам не тільки виявляти специфічні звукові
елементи, але й забезпечують здатність до їх розуміння та аналізу в контексті, що
відкриває широкі можливості для застосувань у сферах, як то системи безпеки,
медіааналітика, аудіовідстеження в промисловості, і навіть у розробці інтерактивного
розважального контенту.

2.2.2 Застосування аудіодетекторів


Застосування аудіодетекторів в сучасному світі є досить різноманітним і
охоплює широке поле застосувань, від промисловості до споживчих технологій. Ось
деякі з ключових областей, де аудіодетектори знаходять важливе застосування:
- Безпека та нагляд: Аудіодетектори використовуються для моніторингу
звукових сигналів, що може бути важливим для систем безпеки. Наприклад, вони
можуть виявляти підозрілі звуки, як-от розбиття скла або несподіваний рух,
сповіщаючи про можливе вторгнення або іншу небезпечну ситуацію.
- Охорона Здоров'я: У медицині аудіодетектори можуть використовуватися для
моніторингу дихання пацієнтів або інших життєво важливих звуків, таких як
серцебиття, що допомагає у відстеженні стану здоров'я.
27

- Промисловість: У промислових умовах аудіодетектори використовуються для


моніторингу роботи обладнання, виявляючи звуки, які можуть вказувати на поломки
або необхідність технічного обслуговування.
- Допоміжні Технології: Для людей з вадами зору аудіодетектори можуть бути
використані як допоміжний засіб для навігації в просторі, виявляючи звуки оточення
та допомагаючи у орієнтації.
- Розумні Домашні Системи: Аудіодетектори інтегруються в розумні домашні
системи, де вони можуть використовуватися для виконання команд голосового
управління, розпізнавання голосів членів сім'ї чи навіть для виявлення несподіваних
звуків у домі, коли власники відсутні.
- Екологічний Моніторинг: Аудіодетектори можуть бути використані для
моніторингу звукового забруднення або виявлення звуків тварин у дикій природі, що
допомагає в охороні навколишнього середовища.
Кожне з цих застосувань вимагає специфічної налаштування та калібрування
аудіодетекторів, а також інтеграції з іншими системами, що забезпечує їх
ефективність та точність у відповідних сферах.

2.2.3 Особливості ідентифікації


Ідентифікація в аудіоаналізі включає складний процес розпізнавання і
класифікації різних аудіоелементів, що вимагає високої точності та глибокого
розуміння контексту. Це означає, що система не тільки визначає присутність певних
звуків чи голосів, але й розрізняє їх за унікальними характеристиками, такими як
тембр або інтонація. Цей процес включає аналіз емоційного забарвлення голосу, що
дозволяє визначити емоційний стан особи, яка говорить. Використання технологій
машинного навчання значно підвищує ефективність ідентифікації, дозволяючи
системам "навчатися" від отриманих даних і покращувати свою точність. Одночасно
ідентифікація вимагає гнучкості, адже системи повинні адаптуватися до різних умов,
таких як зміни в середовищі або різноманітність мовних особливостей. Інтеграція з
іншими системами даних розширює можливості ідентифікації, забезпечуючи більш
комплексний та всебічний аналіз аудіосигналів.
28

2.2.4 Аудіопотік та аудіоаналіз


Аудіопотік та аудіоаналіз є важливими поняттями у сфері цифрових технологій
і обробки даних. Аудіопотік, в широкому сенсі, означає неперервну передачу
звукових даних, які можуть бути у вигляді мовлення, музики, звуків оточення чи
інших аудіосигналів. Такий потік може бути захоплений, переданий та оброблений
різними способами залежно від конкретних потреб і застосувань.
Аудіоаналіз включає процеси розпізнавання, обробки та інтерпретації
аудіоданих, здійснюваних за допомогою різних методів і технологій. Цей аналіз може
мати різноманітні цілі, від технічних аспектів, таких як покращення якості звуку, до
більш складних задач, як-от розпізнавання мови, ідентифікація музичних творів або
аналіз емоційного забарвлення голосу.
Основні виклики у аудіоаналізі полягають у високій різноманітності
аудіосигналів і потенційних перешкод, таких як шуми чи ехо, які можуть впливати на
точність аналізу. Сучасні технології, особливо ті, що базуються на машинному
навчанні та штучному інтелекті, забезпечують засоби для ефективної обробки та
інтерпретації аудіоданих, навіть у складних умовах.
Одним з ключових застосувань аудіоаналізу є розпізнавання мовлення.
Системи автоматичного розпізнавання мовлення (ASR) дозволяють перетворювати
мовлення у текст, що є фундаментальною технологією для багатьох застосувань, від
голосових асистентів до автоматичного субтитрування. Іншим важливим
застосуванням є моніторинг і аналіз звукового оточення, що може бути використано
для охорони безпеки, екологічного моніторингу, або навіть у медичних цілях для
моніторингу стану пацієнтів.

Рис. 2.1. Типове приклад роботи системи розпізнавання мовлення


29

Аудіоаналіз тісно пов'язаний із розвитком цифрових технологій і швидкістю


обробки даних, і його роль у сучасному світі продовжує зростати. Від розумних
домашніх систем до розвитку автономних транспортних засобів, можливості його
застосування здаються майже необмеженими, відкриваючи нові горизонти для
інновацій та технологічного прогресу.

2.3 Поняття інтелектуального аналізу

2.3.1 Основи нейронних мереж у аудіоаналізі


Основи нейронних мереж у аудіоаналізі полягають у створенні комплексних
моделей, здатних обробляти та інтерпретувати аудіодані з високою точністю та
ефективністю. Ці системи імітують функціонування людського мозку,
використовуючи штучні нейрони для обробки інформації. Велика перевага такого
підходу полягає в здатності нейронних мереж "навчатися" від вхідних даних,
постійно покращуючи свою здатність розпізнавати та класифікувати аудіосигнали.
У сфері аудіоаналізу, це означає, що нейронні мережі можуть бути використані
для різноманітних завдань, від розпізнавання мовлення до аналізу музичних
композицій. Вони можуть ідентифікувати складні шаблони в аудіоданих, такі як
специфічні звуки, ритми або навіть емоційні нюанси в голосі. Глибоке навчання,
зокрема, дозволяє нейронним мережам ефективно виконувати завдання класифікації
та прогнозування, адаптуючись до нових даних і вдосконалюючись із кожним новим
аналізом.
Інтеграція нейронних мереж у аудіоаналіз відкриває широкі перспективи для
розвитку цієї області. Це не тільки підвищує точність обробки аудіоданих, але й
робить можливим впровадження нових інноваційних функцій, таких як
автоматизоване створення музики чи розуміння складних мовних контекстів. Завдяки
нейронним мережам, системи аудіоаналізу стають більш адаптивними та
інтелігентними, забезпечуючи високий рівень ефективності у різних застосуваннях,
від медіа та розваг до безпеки та охорони здоров'я..
30

2.3.2 Глибоке навчання для розпізнавання мовлення


Глибоке навчання, підгалузь машинного навчання, є революційним підходом у
розпізнаванні мовлення. Воно включає використання глибоких нейронних мереж
(Deep Neural Networks, DNNs), які ефективно моделюють складні патерни в
аудіоданих. Ці мережі складаються з багатьох шарів (рис. 2.2), де кожен шар виконує
певні перетворення даних, дозволяючи системі "вчитися" і вдосконалюватися в
процесі роботи.
У розпізнаванні мовлення, глибоке навчання дозволяє системам більш точно
виявляти та розпізнавати мовленнєві патерни, що значно підвищує якість та точність
розпізнавання. Використання таких моделей, як конволюційні нейронні мережі
(CNNs) та рекурентні нейронні мережі (RNNs), особливо LSTM, стало стандартом у
цій галузі. Ці моделі ефективно обробляють послідовні дані, що є ключовим для
розуміння мовлення, яке природньо є послідовним і динамічним.
Системи на основі глибокого навчання можуть бути навчені на величезних
наборах мовленнєвих даних, що дозволяє їм розпізнавати мовлення різних мовців,
акцентів та діалектів. Вони також здатні адаптуватися до змінних умов, наприклад, у
випадку шуму на тлі, що робить їх ідеальними для використання в реальному світі.

Рис. 2.2. Архітектура глибокої нейронної мережі


31

2.3.3 Аудіо класифікація за допомогою нейронних мереж


Нейронні мережі можуть вчитися від великої кількості аудіоданих,
ідентифікувати закономірності та особливості в цих даних, і застосовувати ці знання
для класифікації нових невідомих аудіосигналів. Таким чином, система може
виявляти, наприклад, жанри музики, виділяти певні звуки (наприклад, мовлення
проти фонового шуму), або навіть ідентифікувати емоційний стан мовця.
Ключовими технологіями у цій області є конволюційні нейронні мережі (CNN)
та рекурентні нейронні мережі (RNN), зокрема LSTM. CNN ефективні у виявленні
специфічних шаблонів та особливостей в аудіосигналах, тоді як RNN і LSTM
особливо корисні для роботи з послідовними даними, які є характерними для аудіо.

2.3.4 Нейронні мережі у системах автоматичного субтитрування


Застосування нейронних мереж у системах автоматичного субтитрування
відкриває нові можливості для точного та ефективного перетворення мовлення в
текст. Це стає можливим завдяки глибокому навчанню, яке дозволяє мережам
виявляти та інтерпретувати складні патерни в мовленнєвих даних. Моделі на кшталт
LSTM або трансформерів, що ефективно працюють з послідовними даними, є
ключовими в цьому процесі.
Одним з головних завдань таких систем є не тільки розпізнавання та
відтворення словесного змісту, але й аналіз емоційного забарвлення, інтонації та
акцентів у мовленні. Це забезпечує створення природніх і точних субтитрів, що
відображають не просто літеральний текст, а й загальний тон висловлювань. Крім
того, синхронізація тексту з аудіо та відео є важливою частиною процесу, що дозволяє
глядачам слідкувати за контентом без відчуття дискомфорту або розбіжності між
зображенням та текстом

2.3.5 Рекурентні нейронні мережі


Рекурентні нейронні мережі (РНМ) представляють собою клас штучних
нейронних мереж, який спеціалізується на обробці послідовностей даних, таких як
мовлення, текст або часові ряди (рис 2.3.). Відмітна особливість РНМ полягає у їх
32

здатності "пам'ятати" попередню інформацію та використовувати її для обробки


нових даних, що робить їх особливо ефективними для завдань, де контекст і
послідовність мають важливе значення.

Рис. 2.2. Архітектура рекурентної нейронної мережі

Основні Принципи РНМ:


1) Зворотній Зв'язок: В РНМ є зворотні зв'язки, що дозволяють інформації
"подорожувати" не тільки вперед, як у традиційних нейронних мережах, а й назад. Це
означає, що вихід певного нейрона може бути використаний як вхід для того ж або
попереднього нейрона в мережі.
2) Внутрішній Стан: РНМ мають внутрішній стан або "пам'ять", яка зберігає
інформацію про попередні входи. Це дозволяє мережі утримувати інформацію
протягом тривалого часу та використовувати її для аналізу нових даних.
3) Послідовні Дані: Оскільки РНМ можуть обробляти інформацію, яка
змінюється з часом.

2.3.6 Виклики та перспективи розвитку нейронних мереж в аудіоаналізі


Нейронні мережі в аудіоаналізі відкривають значні можливості для розвитку та
покращення систем обробки аудіоданих. Проте, цей напрямок також стикається з
33

рядом викликів, які потребують уваги та інноваційних рішень. Одним з основних


викликів є необхідність обробки великих обсягів аудіоданих, що вимагає значних
обчислювальних ресурсів, особливо при використанні методів глибокого навчання.
Крім того, аудіодані часто характеризуються великою різноманітністю, включаючи
різні типи звуків та шумів, що ускладнює процес їх класифікації та аналізу.
З іншого боку, перспективи розвитку нейронних мереж у цій сфері виглядають
дуже обнадійливо. Існують значні можливості для покращення алгоритмів глибокого
навчання, зокрема, у вдосконаленні методів тренування мереж, що може сприяти
більш ефективній обробці аудіоданих. Інтеграція нейронних мереж з іншими
технологіями, такими як Big Data та штучний інтелект, відкриває нові можливості для
комплексного аналізу аудіоданих. Розвиток більш гнучких моделей, які здатні
адаптуватися до різних типів аудіоданих і умов, є ще одним важливим напрямком для
підвищення ефективності аудіоаналізу. Однак, з розвитком цих технологій зростає і
важливість врахування етичних аспектів та забезпечення приватності, особливо в
умовах обробки чутливих аудіоданих.

2.4 Необхідність інтелектуального аналізу для розпізнавання елементів


мовлення

2.4.1 Інтелектуальний аналіз у розпізнаванні мовлення


Застосування рекурентних нейронних мереж (РНМ) для виявлення елементів
аналізу мовлення є ключовим у завданнях розпізнавання та аналізу аудіоданих. РНМ
мають декілька шарів, кожен з яких виконує важливу роль у процесі розпізнавання
мовлення.
Важливість кожного шару:
1) Вхідний шар: В цьому шарі вхідні аудіодані перетворюються у відповідний
формат для подальшого аналізу. Це може бути, наприклад, спектрограма чи
кепстральні коефіцієнти (MFCCs). Важливо правильно відобразити аудіосигнал у
числовий вектор, щоб РНМ могли працювати з ним ефективно.
34

2) Приховані шари: Ці шари є основним компонентом РНМ та відповідають за


аналіз та виявлення патернів у мовленні. Вони включають в себе рекурентні вузли,
які забезпечують зворотні зв'язки та пам'ять. Приховані шари відповідають за
виявлення акустичних особливостей, фонем, слів, та інших мовленнєвих елементів.
3) Вихідний шар: В цьому шарі зазвичай реалізовано механізми для
класифікації виявлених мовленнєвих елементів. Наприклад, він може визначати, яке
слово було сказано або яку фонему представлено в аудіосигналі.
Важливість кожного з цих шарів полягає в їхньому внеску у процес
розпізнавання мовлення. Вхідний шар забезпечує обробку аудіоданих, приховані
шари виявляють мовленнєві патерни та контекст, а вихідний шар класифікує
результати.

2.4.2 Алгоритм розпізнавання елементів мовлення


Алгоритм розпізнавання елементів мовлення включає такі ключові етапи:
1) Попередня Обробка Аудіоданих: Здійснюється фільтрація шуму,
нормалізація та фрагментація аудіосигналу.
2) Витягування Особливостей: Виділення важливих характеристик з
аудіосигналу, таких як мел-частотні кепстральні коефіцієнти (MFCCs) та
спектральний аналіз.
3) Класифікація Мовленнєвих Патернів: Використання нейронних мереж,
таких як RNNs та CNNs, для ідентифікації мовленнєвих патернів.
4) Перетворення Мовлення на Текст: Синтез тексту з ідентифікованих
мовленнєвих патернів.

2.5 Кластерний аналіз

2.5.1 Визначення кластерного аналізу


Кластерний аналіз - це метод аналізу даних, який використовується для
групування подібних об'єктів або даних у кластери чи групи на основі їхньої схожості
35

(рис. 2.3). Основною метою кластерного аналізу є виявлення структури у наборі


даних, розподілу даних на групи та виявлення закономірностей або подібностей між
об'єктами.
У контексті аудіоаналізу, кластерний аналіз може використовуватися для
категоризації аудіоданих або для групування схожих аудіофрагментів. Наприклад, за
допомогою кластерного аналізу можна групувати аудіофайли за жанрами,
ідентифікувати подібні мовленнєві акустичні особливості або виділяти схожі звуки у
мовленні.

Рис. 2.3. Приклад групування п’яти кластерів

Однією зі специфічних особливостей кластерного аналізу в аудіоаналізі є


використання акустичних ознак для визначення схожості аудіоданих. Наприклад,
можна використовувати мел-кепстральні коефіцієнти (MFCCs) як акустичні ознаки та
застосовувати алгоритми кластерного аналізу для групування аудіофрагментів, які
мають схожий спектральний склад або інші акустичні подібності (рис. 2.6).

Рис. 2.4. Голосова хвиля слова “Один”


36

Рис. 2.5. Спектр вихідного сигналу

Рис. 2.6. Послідовність MFCC

2.5.2 Кластеризація k-means


Алгоритм кластеризації k-means - це один із найпоширеніших методів
кластеризації в машинному навчанні та аналізі даних. Цей алгоритм є особливо
корисним у ваших дослідженнях з аудіоаналізу, оскільки він дозволяє групувати
аудіодані на основі їхньої схожості за акустичними ознаками.
Основна ідея алгоритму k-means полягає в розділенні набору даних на k груп
або кластерів таким чином, щоб об'єкти в межах кожного кластеру були схожими між
собою, а об'єкти з різних кластерів були якнайбільш відмінними. Процес
кластеризації полягає у призначенні кожного об'єкта до одного з k кластерів на основі
подібності або відстані між об'єктами.
Кроки алгоритму k-means:
1) Ініціалізація: Спочатку вибирається кількість кластерів k та випадковим
чином ініціалізуються центри кластерів.
37

2) Призначення кластерів: Кожен об'єкт даних призначається до найближчого


центру кластера на основі обраної метрики відстані (зазвичай використовується
евклідова відстань).
3) Перерахунок центрів: Обчислюються нові центри кластерів як середнє
значення всіх об'єктів, що належать до кожного кластера.
4) Повторення: Кроки 2 і 3 повторюються до тих пір, поки центри кластерів не
стабілізуються, тобто досягнуто зближення.
Алгоритм k-means допомагає групувати аудіодані на основі їхньої спектральної
схожості чи інших акустичних ознак. Це може бути корисним для виділення
акустичних шаблонів у мовленні, категоризації аудіофрагментів за їхнім змістом чи
ідентифікації схожих звуків.

2.6 Висновки до розділу

Алгоритми розпізнавання елементів мовлення та їх ідентифікації можуть бути


побудовані на базі рекурентних нейронних мереж, які дозволяють враховувати
контекст та послідовність в аудіоданих. Глибоке навчання та застосування нейронних
мереж в аудіоаналізі стає все більш актуальним та ефективним підходом.
Також важливо враховувати можливості кластерного аналізу, зокрема
алгоритму k-means, для групування аудіоданих за акустичними ознаками. Це
дозволяє виділити схожі звуки та структурувати дані для подальшого аналізу.
Застосування інтелектуальних методів, зокрема нейронних мереж та
кластерного аналізу допомагає покращити розпізнавання елементів мовлення та
роблять аудіоаналіз більш точним та ефективним.
38

РОЗДІЛ 3
ЕТАПИ ОБРОБКИ АУДІОФРАГМЕНТІВ

3.1 Аналіз спектральних характеристик аудіосигналу

3.1.1 Визначення характеристик аудіосигналу


Визначення характеристик аудіосигналу є важливою складовою процесу
аудіоаналізу і відіграє ключову роль у розпізнаванні елементів мовлення та інших
аудіоданих.
Визначення характеристик аудіосигналу включає в себе процес визначення
різних параметрів та особливостей аудіосигналу, які можуть бути використані для
його опису та подальшого аналізу. Основні характеристики аудіосигналу включають:
1) Частота;
2) Амплітуда;
3) Форма хвилі;
4) Часовий домен;
5) Частотний домен.
Частота - це одна з основних характеристик аудіосигналу, яка визначає, які
звукові коливання спостерігаються в сигналі. Ця характеристика вимірюється в
герцах (Гц) і вказує на кількість коливань або циклів, які відбуваються протягом одної
секунди (рис. 3.1). Важливою особливістю аудіосигналів є те, що вони можуть
містити суміш різних частот.

Рис. 3.1. Осцилограма чистого тона середньої ноти До (262 Гц)


39

Однією з основних концепцій у звуку є поняття частотного спектру. Це описує,


які конкретні частоти і з якою інтенсивністю входять до складу аудіосигналу. Такий
спектр може включати низькі (низькочастотні) та високі (високочастотні)
компоненти, а також інші проміжні частоти.
Амплітуда - це інша важлива характеристика аудіосигналу, яка визначає
величину коливань звукового сигналу. Вона вимірюється у децибелах (дБ) або в
абсолютних одиницях, таких як паскалі (Па) для акустичних сигналів. Амплітуда
вказує на рівень стиснення і розтягнення частини аудіосигналу, що відбувається під
час поширення звуку.
Амплітуда визначає величину коливань звуку. Гучні звуки мають велику
амплітуду, тоді як тихі звуки мають меншу амплітуду. Іншими словами, гучні звуки
мають більше стиснення і розтягнення коливань, що відбуваються в повітрі або
іншому носієві звуку, порівняно з тихими звуками (рис. 3.2).

Рис. 3.2. Амплітуди тихішого та гучнішого звуків

Форма хвилі аудіосигналу визначається тим, як змінюється амплітуда сигналу


відносно часу. Ця характеристика грає важливу роль у сприйнятті звуку і впливає на
його якість та характер. Форма хвилі може бути дуже різноманітною.
Основні типи форм хвиль (рис. 3.3):
1) Синусоїдна
2) Прямокутна
3) Трикутна
4) Пилчаста
40

Рис. 3.3. Основні типи форм хвиль

Синусоїдний сигнал має форму синусоїди, що є математичною ідеалізацією.


Він має одну основну частоту і використовується як відсилання для багатьох анв і
вимірювань. Синусоїдальні хвилі зазвичай характеризують звук природних
інструментів та людського голосу.
Прямокутна хвиля має різку зміну амплітуди між двома значеннями - високою
та низькою. Цей тип хвилі використовується, наприклад, у цифровому кодуванні та
синтезі звуку.
Трикутна хвиля має лінійне зростання та спад амплітуди. Вона може бути
використана для синтезу аудіосигналів та в музичних синтезаторах для створення
різноманітних звуків.
Пилчаста хвиля має різку зміну амплітуди в короткий період часу, подібно до
"пилу". Вона може мати багато високочастотних компонентів і використовується
для створення різноманітних звукових ефектів.

Рис. 3.4. Часовий домен


41

Часовий домен - інша важлива характеристика аудіосигналу, яка визначає, як


змінюється амплітуда сигналу відносно часу (рис. 3.4). Він відображає структуру та
динаміку сигналу у часі, а не у частотному домені.
Основні концепції часового домену включають:
1) Часова довжина сигналу;
2) Збіжність та розбіжність сигналу;
3) Амплітудні та фазові зміни;
4) Спрямованість.
Часова довжина сигналу вимірює, скільки часу триває сигнал або фрагмент
аудіосигналу. Це важливо для визначення тривалості звукового події.
Збіжність та розбіжність сигналу характеристика вказує на те, як змінюється
амплітуда сигналу з часом. Наприклад, збіжний сигнал зменшується з часом, тоді як
розбіжний може збільшуватися.
Амплітудні та фазові зміни сигналу визначають, як амплітуда і фаза сигналу
змінюються з часом. Вони можуть бути важливими для аналізу та обробки сигналів.
Спрямованість Вказує на те, чи є сигнал однонаправленим або має різні
джерела звуку, які приймають участь у формуванні сигналу.
Часовий домен використовується для аналізу сигналів у реальному часі та для
визначення таких параметрів, як атака та затухання в музиці, виявлення звукових
подій, фільтрація та обробка шумів, а також для синтезу та моделювання звуку.
Розуміння часового домену допомагає інженерам та музикантам працювати з
аудіосигналами, вдосконалювати їх якість та створювати нові акустичні ефекти.

Рис. 3.5. Частотний домен


42

Частотний домен - це інша важлива характеристика аудіосигналу, яка


визначає, які частоти складають сигнал і з якою інтенсивністю. У частотному домені
аудіосигнал аналізується за відношенням до частоти або частотного складу, і
використовується для визначення, які конкретні частоти присутні в сигналі та як
вони розподілені (рис. 3.5).
Основні концепції частотного домену:
1) Спектр сигналу;
2) Основна частота;
3) Гармоніки;
4) Ширина смуги.
Спектр сигналу - це представлення частотного складу сигналу. Спектр вказує
на наявність і інтенсивність різних частот в сигналі. Спектр може бути графічно
представлений у вигляді графіку амплітуди частот по вісі частот.
Основна частота - це частота, яка має найбільшу інтенсивність в спектрі
сигналу. Вона визначає "тон" сигналу і часто відповідає основному музичному звуку
або голосу.
Гармоніки є кратними частотами основної частоти. Вони вносять
характеристики звуку, такі як яскравість та тимбр. Гармоніки можуть бути
важливими для визначення характеру музичного інструменту чи голосу.
Ширина смуги визначає, як широкий діапазон частот включений до сигналу.
Ширина смуги може вказувати на товщину звуку, а також на наявність різних
акустичних подій в сигналі.
Частотний домен використовується для аналізу та обробки аудіосигналів,
таких як еквалайзери для налаштування спектру, виявлення і усунення шумів,
компресія та обробка динаміки, синтез та обробка звуку.

3.1.2 Спектральний аналіз аудіосигналу


Спектральний аналіз аудіосигналу - це процес розкладання аудіосигналу на
його складові частоти або спектральні компоненти для отримання інформації про
частотний склад та інтенсивність кожної частоти в сигналі. Цей аналіз глибоко вивчає
43

структуру та властивості аудіосигналів у частотному домені і є важливим


інструментом для багатьох аудіоінженерних та оброблювальних застосувань.
Основні етапи та концепції спектрального аналізу аудіосигналу включають:
1) Перетворення Фур'є;
2) Спектрограма;
3) Основна частота;
4) Гармоніки;
5) Зміна спектра в часі.
Перетворення Фур'є - це математичний алгоритм, який дозволяє розкласти
часовий сигнал на суму синусоїдальних компонентів різних частот. Результатом
перетворення Фур'є є спектральна інформація сигналу.
Спектрограма - це графічне представлення спектрального аналізу сигналу у
часовому вигляді. Вона показує, які частоти домінують у сигналі протягом певного
часового інтервалу. Спектрограми часто використовуються для візуалізації
спектральних властивостей музики та звукових сигналів.
В спектральному аналізі основною частотою називають частоту, яка має
найвищу амплітуду або найбільший інтенсивний вклад в сигнал. Вона може вказувати
на основний музичний тон або домінуючий звук у сигналі.
Гармоніки - це кратні частоти основної частоти в спектрі сигналу. Вони вносять
характер та тимбр в аудіосигнал і грають важливу роль у сприйнятті звуку.
Спектральний аналіз може бути проведений для різних часових вікон, що
дозволяє вивчити, як змінюється частотний склад сигналу з плином часу. Це корисно
для виявлення ефектів, які змінюються в часі, таких як атака та затухання в музиці.

3.1.3 Використання спектрограми


Використання спектрограми - це важливий інструмент у сфері аналізу та
обробки аудіосигналів, що дозволяє отримувати детальну інформацію про частотний
склад сигналу в залежності від часу. Спектрограма є графічним візуальним
представленням спектрального аналізу аудіосигналу, яке може бути використане для
багатьох цілей у різних областях, таких як акустика, обробка мови, музична індустрія
44

та багато інших.
Спектрограма полягає в розбитті аудіосигналу на короткі часові вікна, після
чого для кожного вікна обчислюється його спектральний склад за допомогою
алгоритму перетворення Фур'є. Отримані спектральні дані відображаються на
графіку, де по осі X відображається час, по осі Y - частота, а кольором чи яскравістю
позначається інтенсивність спектральних компонентів (рис. 3.6).

Рис. 3.6. Спектрограма. Розбір короткого фрагменту Месії Генделя на його


часово-змінні складові частоти

Загалом, спектрограма є потужним інструментом для аналізу та обробки


аудіосигналів, який знаходить застосування в багатьох дисциплінах і допомагає
вивчати, розуміти та вдосконалювати звукову інформацію для різноманітних цілей.

3.1.4 Використання мел-шкали


Використання мел-шкали - це важливий аспект аналізу аудіосигналів та
сприйняття звуку, який базується на концепції мелової шкали, розробленої в рамках
психоакустичних досліджень. Мел-шкала використовується для моделювання
сприйняття людьми різних частот звуку та забезпечення більш точного відображення
аудіоінформації у відповідності зі сприйняттям людей.
Мел-шкала визначається наступним чином: вона перетворює частоти звуку у
мелові одиниці (мел) замість герців (Гц), де відношення двох частот у мелах
визначається логарифмічною функцією імпульсного відгуку вуха. Отже, мел-шкала
45

більш точно відображає сприйняття звуку людьми, оскільки наше вухо має
неоднакову чутливість до різних частот звуку.
Застосування мел-шкали включає:
1) Мовна та акустична обробка;
2) Аудіоаналіз;
3) Розпізнавання музики;
4) Психоакустичні дослідження;
5) Комунікація та технології розпізнавання мови.
Мовна та акустична обробка використовується для розпізнавання голосу,
синтезу мовлення, компресії аудіо та інших завдань обробки звуку.
Аудіоаналіз використовується для аналізу аудіосигналів у музичних індустріях,
сприйнятті музики та аудіоінженерії для аналізу мелодій, ритмів та характеристик
інструментів.
Розпізнавання музики допомагає в розпізнаванні композицій та музичних
фрагментів на основі специфічних мел-шкал.
Психоакустичні дослідження використовується для вивчення сприйняття та
реакції людей на різні аудіофактори.
Комунікація та технології розпізнавання мови допомагає в покращенні якості
акустичних систем для розпізнавання мови та мовленнєвих інтерфейсів.

3.2 Перетворення Фур'є

3.2.1 Дискретне перетворення Фур'є


Дискретне перетворення Фур'є (DFT) є важливою та потужною математичною
технікою, використовуваною для аналізу та обробки дискретних сигналів у
частотному домені. Цей метод базується на теоремі про розкладання довільного
сигналу на суму синусоїдальних та косинусоїдальних компонент у різних частотах.
Вперше запропонований Жозефом Фур'є в 1822 році, DFT відіграє важливу роль у
багатьох наукових та інженерних застосуваннях, включаючи обробку сигналів,
обробку зображень, криптографію, астрономію та інші області.
46

Для зрозуміння DFT важливо спершу розглянути властивості і обмеження


дискретних сигналів. Дискретний сигнал представляє собою послідовність значень,
отриманих у дискретні моменти часу. DFT дозволяє перетворити цей сигнал у
частотний домен, визначаючи амплітуди та фази синусоїдальних та косинусоїдальних
компонент у різних частотах (рис. 3.7).
Дискретне перетворення Фур'є визначається наступним чином:

(3.1)
де - вхідний дискретний сигнал;
- кількість відліків у сигналі;
- результат DFT;
- комплексна експонента, що представляє сигнал у частотному
домені.

Рис. 3.7. Розбивка сигналу, який дискретизовано, на інтервали відповідно до розміру


дискретного перетворення Фур’є
Основні властивості DFT включають:
1) Перетворення часу в частоту: дозволяє розкрити сигнал у вигляді суми
компонентів у частотному домені, що допомагає виявити наявність певних
частотних компонентів;
2) Лінійність: DFT - лінійний операція, що спрощує обчислення композитних
сигналів;
47

3) Вплив розміру вікна: Розмір вікна аналізу впливає на роздільну здатність


DFT і точність визначення частот.

3.2.2 Швидке перетворення Фур'є


Швидке перетворення Фур'є (FFT) є ключовим алгоритмом для ефективного
обчислення дискретного перетворення Фур'є (DFT) у великих обсягах даних. Цей
алгоритм винайдений Кузьмою Фалунь і Джеймсом Кули в 1965 році та став
вирішальним кроком у розвитку сучасної обробки сигналів та аналізу даних. FFT
знаходить застосування в різних областях, включаючи акустику, зображення,
криптографію, медицинську діагностику та багато інших.
За своєю суттю FFT є алгоритмом для розкладання довільного сигналу на
суму синусоїдальних та косинусоїдальних компонент у частотному домені (рис.
3.7). Його швидкодія полягає в тому, що він зменшує кількість обчислень,
необхідних для цього, з O(N2 ) до O(N log N), де N - розмір вхідного сигналу.

Рис. 3.7. Перетворення сигналу за допомогою швидкого перетворення Фур’є

Алгоритм FFT базується на розділій і перемножувачі Баттерворта, і його


ключовою ідеєю є розділення вхідного сигналу на парні та непарні відліки, а потім
комбінування їх у більші DFT. Цей процес рекурсивно повторюється до тих пір,
поки не досягнемо базового випадку для обчислення DFT для невеликих частин
сигналу.
48

FFT використовується для вирішення таких завдань, як аналіз спектрального


складу аудіо- та сигналів, комп'ютерне зорове сприйняття, стиснення даних,
шумозаглушення, криптографія, медична обробка зображень та багато інших. Його
досконала ефективність робить його необхідним інструментом для багатьох
додатків, де потрібно аналізувати та обробляти сигнали у частотному домені.

3.2.3 Фільтрація у частотному домені


Фільтрація у частотному домені є важливою частиною обробки аудіосигналів,
яка дозволяє впливати на спектральні характеристики сигналу з метою підсилення
або приглушення певних частот. Цей процес базується на використанні перетворення
Фур'є для аналізу та маніпуляції частотними компонентами сигналу. Основні методи
фільтрації у частотному домені включають приглушення шуму та підсилення певних
частот, і вони знаходять застосування в багатьох аспектах аудіоаналізу.
Одним із ключових методів фільтрації є приглушення шуму. Цей процес
передбачає виділення шумових компонентів у спектрі сигналу та їх приглушення або
видалення. Для цього можуть використовуватися фільтри нижньої частоти або
фільтри середньої частоти, які дозволяють підсилити сигнал у вибраних діапазонах
та приглушити шумові складові. Цей підхід допомагає покращити якість
аудіосигналу та знизити рівень шуму.
Другим важливим аспектом є підсилення певних частот аудіосигналу. Це може
бути корисним для виділення важливих акустичних подій, таких як мовлення або
музичні інструменти, шляхом збільшення амплітуди відповідних частот. Для цього
також можуть використовуватися фільтри верхньої частоти або фільтри підсилення,
які акцентують певні спектральні складові.
Основні методи фільтрації у частотному домені вимагають використання
математичних алгоритмів та апаратури для обчислення перетворення Фур'є та
подальшої обробки спектральних даних. Ці методи знаходять застосування у великій
кількості завдань аудіоаналізу, включаючи фільтрацію шуму у голосових розмовах,
підсилення музичних інструментів у звукозаписах та багато інших областей.
49

3.3 Мел-частотні кепстральні коефіцієнти

3.3.1 Поняття мел-частотних кепстральних коефіцієнтів


Мел-частотні кепстральні коефіцієнти (MFCC) є важливими характеристиками
аудіосигналу, які використовуються в аналізі мовлення, розпізнаванні мовлення,
аудіосигналоведенні та багатьох інших областях обробки аудіоданих. MFCC є
відображенням акустичних особливостей аудіосигналу у спеціальному просторі
ознак, який розроблений так, щоб бути більш чутливим до сприйняття людиною.
Основні компоненти поняття MFCC включають:
- Мел-шкала;
- Фільтрація в мел-шкалі;
- Логарифмування;
- Кепстральне перетворення;
- Кепстральні коефіцієнти.
Мел-шкала є психоакустичною шкалою, яка вимірює частоти так, як їх
сприймає людське вухо. Вона є нелінійною шкалою і призначена для моделювання
сприйняття висоти звуку людьми. Для отримання MFCC спочатку подається
аудіосигнал через набір фільтрів в мел-шкалі. Кожен фільтр реагує на певний діапазон
частот. Логарифмується енергія сигналу після проходження через фільтри в мел-
шкалі. Це дозволяє зменшити різницю між великими та малими значеннями і
підсилити низькі амплітуди. Логарифмовані значення проходять кепстральне
перетворення, яке використовується для отримання кепстральних коефіцієнтів (рис.
3.8). Кепстральні коефіцієнти є коефіцієнтами у спеціальному просторі ознак і
відображають енергію сигналу на різних частотах.
MFCC використовуються в аналізі мовлення та розпізнаванні мовлення для
виділення акустичних особливостей мовлення, таких як форманти (резонансні
частоти), ритмічні характеристики та інші аспекти, що сприймаються людським
вухом. Вони є потужними ознаками для класифікації та аналізу аудіосигналів у різних
областях, включаючи розпізнавання мовлення, емоційний аналіз, визначення голосу,
та багато інших застосувань у сферах інформатики, біомедицини та музики. Метою
50

використання MFCC є створення компактного та репрезентативного вектора ознак,


який максимально відображає важливі акустичні характеристики аудіосигналу для
подальшого аналізу та розпізнавання. Кожен MFCC відображає амплітуду енергії
сигналу на певній частоті у мел-шкалі.

Рис. 3.8. Представлення часового домену сигналу у вигляді спектрокрами мел-


частотних кепстральних коефіцієнтів

3.3.2 Перетворення частоти в мел-шкалу


Перетворення частоти в мел-шкалу є важливою технікою в аналізі
аудіосигналів, яка базується на психоакустичних особливостях сприйняття звуку
людиною. Ця техніка дозволяє нам представити аудіосигнал у вигляді, близькому до
сприйняття людиною, де важливі акустичні події виділяються більш яскраво. Однією
з формул для перетворення частоти f в мел-шкалу є формула О'Шонессі:

f
m = 2595 log10 (1 + ) (3.2)
100

де m - значення в мел-шкалі;
f - частота в герцах.

Ця формула покликана враховувати неоднорідність сприйняття звуку людиною


за різних частот. Вона обирається на підставі психоакустичних досліджень, де
51

встановлено, що людське сприйняття звукових частот не лінійне, і вищі частоти


вимагають більше енергії для сприйняття.

3.3.3 Особливості витягування та обробки MFCC


Витягування та обробка кепстральних коефіцієнтів Мел-частотного
кепстрального аналізу (MFCC) є ключовим етапом у аналізі аудіосигналів. Цей
процес включає в себе декілька важливих етапів, які допомагають отримати
репрезентативне представлення аудіосигналу для подальшого аналізу та
розпізнавання.
По-перше, визначаються параметри MFCC, такі як кількість кепстральних
коефіцієнтів, кількість фільтрів Мел, довжина кадру та крок перекриття. Вибір цих
параметрів залежить від конкретного завдання аналізу та може впливати на якість
результатів.
Після цього вхідний аудіосигнал піддається препроцесінгу, включаючи
видалення шуму та нормалізацію. Фільтрація Мел використовується для
перетворення спектрограми сигналу у відповідну Мел-шкалу, що відповідає
сприйняттю звуку людиною.
Логарифмування дозволяє перейти до логарифмічної шкали, що відображає
психоакустичні особливості сприйняття звуку (рис. 3.8). Після цього застосовується
дискретне косинусне перетворення (DCT) для отримання кепстральних коефіцієнтів.

Рис. 3.9. Логарифмічний графік рівня інтенсивності звуку


52

Далі може проводитися видалення низькочастотних кепстрів та нормалізація


кепстральних коефіцієнтів для зменшення впливу змін амплітуди сигналу. Вибір
фреймів або вікон, які аналізуються, також важливий.
Остаточні кепстральні коефіцієнти фреймів можуть бути агреговані або
середньозважені, щоб отримати представлення всього аудіосигналу. Важливо
враховувати завдання аналізу та забезпечити, щоб отримані кепстральні коефіцієнти
були репрезентативними та відповідали конкретному завданню аналізу.

3.4 Сегментація аудіосигналу

3.4.1 Сегментація аудіоданих для розпізнавання мови


Сегментація аудіоданих для розпізнавання мови є важливим завданням у сфері
обробки аудіоданих та призначена для виділення окремих фрагментів мовлення з
аудіосигналу. Ця процедура має на меті поділити аудіосигнал на логічні сегменти, які
можуть бути подальше оброблені системами розпізнавання мови. Сегментація
аудіоданих є необхідним етапом у процесі розпізнавання мови та забезпечує
підготовку даних для аналізу та ідентифікації мовленнєвих одиниць.

Рис. 3.10. Приклад сегментації аудіо

Однією з ключових задач сегментації аудіоданих є визначення моментів


початку та закінчення окремих фраз, слів або речень у мовленні. Це завдання включає
53

в себе виявлення акустичних ознак, які вказують на перехід від однієї мовленнєвої
одиниці до іншої. Серед таких ознак можна виділити паузи, зміни амплітуди та
інтенсивності, а також характеристики мовленнєвих звуків.
У сучасних системах сегментації використовуються різноманітні методи та
алгоритми, включаючи прикладне машинне навчання, які навчаються виділяти
моменти переходу між мовленнєвими одиницями на основі акустичних та
статистичних ознак. Також використовуються алгоритми кластеризації та аналізу
часових рядів для виділення сегментів мовлення.

3.4.2 Сегментація аудіосигналів у реальному часі


Сегментація аудіосигналів у реальному часі - це процес автоматичного
розділення аудіозапису на окремі фрагменти або сегменти в режимі реального часу.
Ця задача має важливе застосування в області обробки мовлення, аналізу аудіоданих
та інших аудіовимірювань.
Основні завдання сегментації:
1) Визначення моментів початку і завершення окремих аудіосегментів;
2) Аналіз акустичних ознак;
3) Моделювання контексту;
4) Автоматичне прийняття рішень;
5) Реалізація в реальному часі.
Система повинна виявити моменти, коли розпочинається і закінчується
окремий аудіосегмент, такі як фрази мовлення, речення або акустичні події. Для
сегментації аудіосигналів в реальному часі використовуються акустичні ознаки, такі
як енергія, частотні характеристики, спектрограми та інші параметри сигналу. Ці
ознаки використовуються для виявлення характерних змін у сигналі, які вказують на
потребу в сегментації.
В реальному часі може виникати потреба в врахуванні контексту аудіосигналу,
такого як інформація з попередніх фрагментів сигналу для правильної сегментації.
Система сегментації повинна приймати рішення щодо того, коли починати новий
54

сегмент і коли завершувати попередній. Це може включати в себе використання


різних алгоритмів і методів машинного навчання.
Важливо забезпечити, щоб система могла працювати з аудіосигналами у
реальному часі без помітних затримок, що вимагає оптимізації алгоритмів та
використання обчислювальних ресурсів.

3.4.3 Оцінка точності сегментації


Оцінка точності сегментації є важливим етапом в процесі аналізу аудіосигналів
та розпізнавання мовлення. Ця оцінка дозволяє визначити, наскільки добре алгоритм
сегментації відокремлює окремі фрагменти мовлення від інших частин аудіосигналу.
У наукових дослідженнях і реальних застосуваннях важливо вимірювати точність
сегментації для оцінки якості та ефективності систем розпізнавання мовлення.
Один з найпоширеніших метрик для оцінки точності сегментації є метрика
відношення перетину до об'єднання (IoU), також відома як коефіцієнт подібності
Жаккара (3.3). Ця метрика вимірює подібність між реальною сегментацією і
сегментацією, отриманою від алгоритму.. Значення пікселів вихідного зображення
обчислюються за формулою (3.4).

TP
IoU = (3.3)
TP+FP+FN

де TP - кількість правильно визначених сегментів мовлення;


FP - кількість неправильно визначених сегментів мовлення;
FN - кількість невизначених правильно сегментів мовлення.

Інша важлива метрика - точність (Accurancy), яка вимірює загальну точність


сегментації:

TP
Accurancy = (3.4)
TP+FP
55

Ця метрика визначає відсоток правильно визначених сегментів мовлення


відносно загальної кількості сегментів, визначених алгоритмом.
Однак ці метрики можуть бути недостатньою оцінкою якості сегментації,
оскільки не враховують контекст та послідовність сегментів мовлення. Таким
чином, у деяких випадках використовуються більш складні метрики, які оцінюють
послідовність сегментів та їх відношення.
Додатково, можуть використовуватися метрики, які вимірюють часову
точність та розмір сегментів. Однією з таких метрик є Коефіцієнт помилок
сегментації (SER), яка враховує різницю між реальними та сегментами, отриманими
від алгоритму.

S+D+I
SER = (3.5)
N

де S - кількість сегментів мовлення, які були визначені неправильно;


D - кількість сегментів мовлення, які були пропущені алгоритмом;
I - кількість неправильно визначених сегментів мовлення;
N - загальна кількість сегментів мовлення.

Важливо відзначити, що вибір конкретної метрики залежить від конкретного


завдання та вимог до точності сегментації. У деяких випадках може бути важливо
враховувати якість сегментації з більш деталізованою точністю, тому можуть
використовуватися різні метрики та їх комбінації.

3.5 Рекурентні нейронні мережі

3.5.1 Особливості рекурентних нейронних мереж


Рекурентні нейронні мережі (RNN) є особливим класом нейронних мереж, які
призначені для роботи з послідовними даними, такими як текст, аудіосигнали та
часові ряди. Однією з головних особливостей рекурентних нейронних мереж є їхня
56

здатність моделювати залежності в часі, що робить їх потужним інструментом для


завдань, де важливий контекст та послідовність подій. Вони досягають цього завдяки
наявності рекурентних зв'язків, які дозволяють інформації передаватися від
попередніх кроків до поточного.
Рекурентні нейронні мережі є класом нейронних мереж, які мають деякі
важливі особливості. Перша особливість полягає в їхній здатності обробляти
послідовні дані завдяки використанню рекурентних зв'язків. Це дозволяє RNNs
враховувати контекст і залежності від часу, що робить їх корисними у задачах аналізу
послідовностей.
Однією з ключових областей застосування рекурентних нейронних мереж є
аналіз мовлення. Вони використовуються для розпізнавання мовлення, синтезу
мовлення та визначення елементів аналізу мовлення. Їхня здатність працювати з
аудіосигналами робить їх важливим інструментом у цих завданнях.
Деякі варіації рекурентних нейронних мереж, такі як Довга короткочасна
пам'ять (LSTM) (рис. 3.11), володіють механізмами для збереження довгострокових
залежностей в послідовностях, що робить їх ефективними для моделювання
віддалених зв'язків.

Рис. 3.11. Архітектура LSTM

Однак звичайні рекурентні нейронні мережі можуть стикатися з проблемою


зникання або виринаючого градієнту, що обмежує їхню здатність до моделювання
тривалих залежностей в послідовностях.
57

3.6 Висновки до розділу

Аналіз спектральних характеристик аудіосигналу, таких як частота, амплітуда


та форма, є важливим кроком у розпізнаванні мовлення та аналізі звуку.
Перетворення Фур'є, зокрема швидке перетворення Фур'є (FFT), допомагають
отримувати спектральне представлення аудіосигналу, що дозволяє виділити частотні
складові сигналу.
Мел-частотні кепстральні коефіцієнти (MFCC) є важливим методом аналізу
аудіосигналів, який враховує особливості сприйняття звуку людиною та
використовується в задачах розпізнавання мовлення та аналізу аудіоданих.
Ці методи та підходи грають важливу роль у вивченні та розумінні
аудіосигналів, їхній обробці та використанні у різних застосуваннях, таких як
розпізнавання мовлення, музична аналітика, аудіосигнали в системах
інтелектуального аналізу, та інших.
58

РОЗДІЛ 4
ПРОЕКТУВАННЯ ТА РЕАЛІЗАЦІЯ АЛГОРИТМУ ДЛЯ ВІДСТЕЖЕННЯ
ЕЛЕМЕНТІВ АНАЛІЗУ МОВЛЕННЯ В АУДІОПОТОЦІ

4.1 Мова програмування та програмне середовище

4.1.1 Вибір мови програмування


У процесі розробки алгоритму для відстеження елементів аналізу мовлення в
аудіопотоці було вирішено використовувати мову програмування Java. Вибір Java
обумовлений кількома ключовими факторами, які роблять її ідеальною для цього
завдання:
- Кросплатформенність;
- Об'єктно-орієнтований підхід;
- Безпека та надійність;
- Багатопотоковість;
- Широке співтовариство та підтримка;
- Застосування у наукових дослідженнях.
Java відома своєю кросплатформенністю завдяки віртуальній машині Java
(JVM), що дозволяє запускати програми, написані на Java, на будь-якій операційній
системі без змін у коді. Це надає велику гнучкість для розгортання алгоритмів на
різних платформах, від серверів до мобільних пристроїв.
Java є суто об'єктно-орієнтованою мовою, що сприяє створенню модульного та
легко масштабованого коду. Такий підхід дозволяє легко управляти складними
системами, якими є алгоритми обробки мовлення, із чітко визначеними об'єктами та
класами.
Java має сильні засоби безпеки, включаючи управління пам'яттю, виключення
помилок часу виконання та строгу типізацію. Це знижує ризик виникнення помилок
у роботі алгоритму, особливо важливо при обробці великих об'ємів даних і в роботі в
реальному часі.
59

Java ефективно підтримує багатопотоковість, що є критично важливим для


алгоритмів обробки аудіопотоків. Здатність одночасно обробляти декілька потоків
даних без конфліктів і забезпечення високої продуктивності є однією з переваг Java.
Java має одне з найбільших програмістських співтовариств, що забезпечує
велику кількість ресурсів для навчання та підтримки. Наявність численних бібліотек
та фреймворків спрощує процес розробки і впровадження нових технік і алгоритмів.
Java широко використовується у наукових дослідженнях, особливо в областях,
пов'язаних з обробкою природної мови та машинним навчанням. Це робить її
привабливою для розробки алгоритмів виявлення та аналізу мовлення.
Завдяки своїм особливостям Java є оптимальним вибором для розробки
алгоритму обробки аудіопотоків. Ці характеристики сприяють створенню надійного,
ефективного та масштабованого рішення, що відповідає вимогам сучасних
досліджень у сфері аналізу мовлення.

4.1.2 Вибір програмного середовища


Для реалізації алгоритму аналізу мовлення в аудіопотоці було обрано
програмне середовище IntelliJ IDEA, розроблене компанією JetBrains. IntelliJ IDEA є
одним з найпопулярніших інтегрованих середовищ розробки (IDE) для Java, яке
відрізняється потужними можливостями для розробки, налагодження та оптимізації
коду.
IntelliJ IDEA, розроблена компанією JetBrains, є передовим інтегрованим
середовищем розробки (IDE), яке забезпечує широкий спектр можливостей для
ефективної розробки програмного забезпечення, особливо в мові програмування Java.
Однією з ключових особливостей IntelliJ IDEA є її інтелектуальна система
автозавершення коду, яка значно спрощує процес написання коду, пропонуючи
релевантні варіанти та покращуючи продуктивність розробника.
Середовище також славиться своєю високою продуктивністю завдяки
потужним інструментам аналізу коду, які допомагають виявляти потенційні
проблеми на ранніх етапах розробки, забезпечуючи високу якість та надійність
фінального продукту. IntelliJ IDEA підтримує багатопотоковість та надає зручні
60

інструменти для налагодження коду, що є важливим для розробки складних


алгоритмів, таких як обробка аудіоданих.
Це середовище включає інтегровану підтримку для різноманітних технологій
та фреймворків, що робить його універсальним інструментом для різних областей
розробки. Також, IntelliJ IDEA пропонує широкі можливості для персоналізації та
налаштування середовища під індивідуальні потреби користувача, включаючи
різноманітні плагіни та теми.
Крім того, середовище має вбудовану підтримку систем контролю версій, таких
як Git, що полегшує співпрацю в команді та управління версіями проекту. Всі ці
характеристики роблять IntelliJ IDEA ідеальним вибором для розробки алгоритмів в
області аналізу мовлення та обробки аудіоданих.

4.2 Kubernetes. Визначення та використання

4.2.1 Застосування платформи Kubernetes


Для реалізації алгоритму виявлення елементів аналізу мовлення в аудіопотоці
на мові програмування Java було обрано Kubernetes як платформу для розгортання та
управління контейнеризованими додатками. Kubernetes є відкритою платформою, яка
надає високий рівень гнучкості та масштабованості, що є ключовим для ефективної
роботи з великими обсягами аудіоданих.
Kubernetes відрізняється рядом переваг, які роблять його ідеальним рішенням
для розгортання та управління програмами, написаними на Java, особливо для тих,
що вимагають високої пропускної спроможності та масштабованості, як у випадку з
алгоритмами для аналізу мовлення в аудіопотоках.
Перш за все, Kubernetes надає потужні можливості для масштабування
додатків. Ця функція критично важлива для обробки великих обсягів даних, які
характерні для аудіоаналізу. Завдяки Kubernetes, система може динамічно
збільшувати або зменшувати кількість ресурсів, що використовуються, відповідно до
поточних потреб. Це забезпечує оптимальне використання ресурсів, знижуючи
вартість та підвищуючи ефективність обробки.
61

Крім того, Kubernetes спрощує управління контейнерами, надаючи засоби для


їх розгортання, моніторингу та масштабування. Це дозволяє розробникам
зосередитися на самій логіці алгоритму, а не на управлінні інфраструктурою. Такий
підхід є надзвичайно важливим у контексті розробки складних систем, таких як
алгоритми обробки мовлення.
Важливою перевагою Kubernetes є також забезпечення високої доступності
додатків. Система автоматично відновлює непрацюючі контейнери, забезпечуючи
безперервну роботу додатку. Це особливо значуще для систем, що працюють в
реальному часі, таких як алгоритми обробки аудіо, де будь-які перерви в роботі
можуть призвести до втрати важливих даних.
Ще одним важливим аспектом є гнучке управління ресурсами. Kubernetes
дозволяє точно налаштовувати обсяг ресурсів, призначених для кожного контейнера,
включаючи ЦПУ та пам'ять. Це дозволяє оптимізувати використання
обчислювальних потужностей, забезпечуючи високу продуктивність за
раціонального використання ресурсів.

4.2.2 Поди в Kubernetes


Поди в Kubernetes є фундаментальними будівельними блоками в екосистемі
Kubernetes, яка є провідною платформою для оркестрації контейнерів. Науковий
підхід до розуміння подів полягає у вивченні їх структури, функціональності та ролі
в управлінні контейнеризованими додатками.
Кожен под має унікальну IP-адресу в межах кластера Kubernetes, що дозволяє
контейнерам спілкуватися один з одним та із зовнішнім світом.
Контейнери в межах одного пода ділять однаковий мережевий простір, тобто
вони можуть спілкуватися між собою через 'localhost'. Вони також можуть ділити
носії даних, які є визначені в поді, що дозволяє здійснювати обмін даними між
контейнерами.
Основною функцією пода є управління життєвим циклом контейнерів.
Kubernetes використовує поди для створення, запуску, зупинки та видалення
контейнерів. Коли под створюється, Kubernetes розгортає вказані контейнери та
62

гарантує їх запуск і працездатність. В разі збою контейнера, Kubernetes може


автоматично перезапустити його, забезпечуючи високу доступність та надійність
додатків.
Поди відіграють ключову роль у процесі оркестрації контейнерів в Kubernetes.
Вони дозволяють гнучко управляти розміщенням та масштабуванням контейнерів у
межах кластера. Kubernetes використовує різні контролери, такі як ReplicaSets та
Deployments, для управління подами, забезпечуючи їх створення, масштабування та
оновлення.

4.2.3 Переваги використання Helm


Helm значно спрощує процес управління конфігураціями в Kubernetes.
Використання Helm дозволяє уникнути складності безпосередньої роботи з
численними YAML-файлами, які часто використовуються в Kubernetes для
визначення ресурсів.
Замість цього, можна використовувати шаблони Helm для створення та
управління цими ресурсами.
Helm дозволяє уніфікувати та перевикористовувати конфігурації для різних
середовищ або проектів. Це робить можливим легко адаптувати існуючі шаблони
(чарти) для вашого проекту, зменшуючи необхідність створення кожної конфігурації
з нуля. Це підвищує ефективність та забезпечує консистентність в управлінні
розгортаннями.
Даний інструмент вирішує проблему управління залежностями в Kubernetes.
Ваш додаток може потребувати різних сервісів, як-от бази даних або інші сервіси, і
Helm дозволяє вам визначати та автоматично встановлювати ці залежності разом із
вашим додатком.
Helm полегшує управління випусками додатків, дозволяючи легко
відстежувати історію випусків, відкатувати до попередніх версій та тестувати зміни
перед їх застосуванням.
Це забезпечує безпеку та стабільність при оновленні або модифікації додатків.
63

4.3 База даних. MongoDB

4.3.1 Бази даних


Бази даних є ключовим елементом у сучасних інформаційних системах та
інформатиці, відіграючи вирішальну роль у зберіганні, обробці та управлінні даними.
Науковий підхід до вивчення баз даних зосереджується на їх структурі, типах,
методах обробки даних та застосуванні в різних областях.
Бази даних можна класифікувати за різними критеріями, залежно від їх
структури, моделі даних та способів використання.
Основними типами баз даних є:
- Реляційні бази даних, де дані організовані у формі таблиць. Кожен рядок у
таблиці представляє запис, а стовпці - атрибути;
- NoSQL, що охоплює широкий спектр технологій, що зберігають дані у
форматах, відмінних від традиційних реляційних таблиць.
Сучасні бази даних підтримують різноманітні методи обробки та запитів до
даних. Важливі характеристики включають:
- Транзакційність;
- Оптимізація запитів;
- Індексація.
Транзакційність забезпечує надійність та послідовність даних, особливо в
багатокористувацьких системах. Оптимізація запитів забезпечує ефективне
виконання запитів. Структури індексації підвищують швидкость доступу до даних.

4.3.2 Особливості мови запитів MongoDB


MongoDB, яка є представником NoSQL баз даних, розрізняється своєю
унікальною мовою запитів, яка значно відрізняється від стандартного SQL, що
використовується в реляційних базах даних. Ця мова запитів розроблена з
урахуванням гнучкості, продуктивності та легкості використання, що робить
MongoDB особливо привабливою для розробників, що працюють з великими
обсягами неструктурованих або напівструктурованих даних.
64

В основі MongoDB лежить концепція неструктурованих даних. Вона


використовує формат BSON (Binary JSON) для зберігання даних, який дозволяє
більшу гнучкість порівняно з традиційними реляційними базами даних. BSON
підтримує різноманітні типи даних, включаючи масиви та вкладені об'єкти, що
робить MongoDB ідеальною для зберігання складних структур даних.
Запити в MongoDB виконуються на основі документів. MongoDB надає велику
гнучкість у формулюванні запитів. Ви можете використовувати різноманітні
оператори, такі як `$gt` (більше), `$lt` (менше), `$eq` (рівне), та багато інших для
створення складних запитів. Ця гнучкість робить MongoDB особливо потужною для
роботи з складними запитами та агрегацією даних.
MongoDB підтримує потужну систему індексації, яка дозволяє значно
підвищити швидкість запитів. Індекси можуть бути створені для різних полів у
документах, включаючи вкладені об'єкти та масиви. Ефективне використання
індексів є ключем до оптимізації продуктивності запитів в MongoDB.
MongoDB має потужну систему агрегації, яка дозволяє виконувати складні
аналітичні запити в базі даних. Агрегаційний пайплайн MongoDB дозволяє обробляти
та аналізувати великі обсяги даних, використовуючи послідовність обробки даних.

4.3.3 MongoDB Compass


MongoDB Compass – це офіційний графічний інтерфейс користувача (GUI)
(рис. 4.1), розроблений MongoDB Inc.

Рис. 4.1. Інтерфейс MongoDB Compass


65

Він дозволяє користувачам легко взаємодіяти з базою даних, виконувати


запити, аналізувати структуру даних, встановлювати індекси та виявляти медленні
запити.
Особливості MongoDB Compass:
1) Візуалізація Структури Даних;
2) Побудова Запитів без Кодування;
3) Моніторинг Продуктивності;
4) Управління Індексами.

4.4 Бібліотека MaryTTS

4.4.1 Особливості бібліотеки


MaryTTS відрізняється своєю модульною архітектурою, яка дозволяє легко
розширювати її функціональність. Бібліотека забезпечує високоякісний синтез
мовлення, використовуючи різні техніки обробки мовлення, що включають:
- Процесинг Тексту, тобто перетворення вхідного тексту на фонеми та інші
мовленнєві одиниці;
- Синтез Голосу, тобто використання цифрових образів голосу для створення
природного мовлення.
Однією з ключових переваг MaryTTS є її підтримка багатьох мов та акцентів.
Це робить її ідеальною для міжнародних проектів, що вимагають локалізації та
адаптації до різних мовних груп.
Як бібліотека, написана на Java, MaryTTS легко інтегрується з Java-проектами.
Це дозволяє розробникам використовувати потужні можливості синтезу мовлення в
їх програмах, не вдаючись до складних зовнішніх залежностей.
MaryTTS не просто обмежується стандартним набором можливостей. Вона дає
розробникам можливість розширювати та налаштовувати систему відповідно до
специфічних потреб проекту, включаючи розробку власних голосів та підтримку
додаткових мов.
66

4.5 RabbitMQ. Обробка потокових даних

4.5.1 Система RabbitMQ


RabbitMQ є відкритим брокером повідомлень, який служить для забезпечення
ефективної обробки та маршрутизації повідомлень між різними частинами
розподілених систем. Він використовує протокол Advanced Message Queuing Protocol
(AMQP) для гарантування надійного та гнучкого обміну даними.
RabbitMQ використовує AMQP як основний протокол обміну повідомленнями.
AMQP є відкритим стандартом для обміну повідомленнями, що забезпечує високу
сумісність між різними системами.
RabbitMQ дозволяє гнучко управляти маршрутами повідомлень за допомогою
різних типів обмінників (exchanges), включаючи direct, topic, headers та fanout. Це
забезпечує потужні можливості маршрутизації для різних сценаріїв використання.
Даний інструмент пропонує високий рівень надійності та доступності. Він
підтримує класичну та зеркальну реплікацію черг для забезпечення відновлення в разі
збоїв та автоматичного відновлення повідомлень.
RabbitMQ підтримує горизонтальне масштабування, що дозволяє збільшувати
пропускну здатність системи шляхом додавання додаткових вузлів.
Дане рішення може інтегруватися з широким спектром мов програмування та
платформ, включаючи Java, Python, Ruby, .NET, PHP та інші, завдяки багатому набору
клієнтських бібліотек.

4.5.2 Обмінники в RabbitMQ


Обмінники в RabbitMQ - це механізми, які визначають правила та логіку
маршрутизації повідомлень від продюсерів (відправників) до черг, де ці повідомлення
споживаються. Обмінники в RabbitMQ відповідають за прийом повідомлень від
продюсерів та їхнє направлення до відповідних черг на основі визначених правил
маршрутизації. Це включає в себе визначення, до якої черги або черг потрібно
доставити повідомлення, виходячи з атрибутів повідомлення, таких як ключ
маршрутизації.
67

В RabbitMQ існує кілька типів обмінників, кожен з яких підтримує свою логіку
маршрутизації:
1) Direct Exchange, який аправляє повідомлення до черг на основі точної
відповідності ключа маршрутизації;
2) Topic Exchange, що використовує шаблони ключів маршрутизації для більш
гнучкої маршрутизації;
3) Fanout Exchange, який розсилає повідомлення усім прив'язаним чергам без
урахування ключа маршрутизації;
4) Headers Exchange, який використовує атрибути заголовків повідомлень для
маршрутизації.
Однією з ключових переваг обмінників в RabbitMQ є їхня здатність
забезпечувати гнучку маршрутизацію повідомлень. Завдяки цьому RabbitMQ може
бути конфігурований для обробки широкого спектру вимог до маршрутизації в
розподілених системах.
Обмінники в RabbitMQ розроблені таким чином, щоб забезпечувати високу
продуктивність та надійність у обробці повідомлень. Вони відіграють ключову роль
у забезпеченні стійкості та ефективності в обробці повідомлень у великих
розподілених системах.

4.5.3 Сховище даних Mnesia


RabbitMQ для зберігання даних використовує власне вбудоване сховище,
засноване на технології Mnesia. Mnesia - це розподілена система управління базами
даних, розроблена в мові програмування Erlang, яка є основою для RabbitMQ.
Mnesia розроблена як розподілена, високонадійна система управління базами
даних. Це дозволяє зберігати дані у розподіленій мережі вузлів, що ідеально
підходить для високодоступних систем, таких як RabbitMQ.
Однією з ключових особливостей Mnesia є її здатність підтримувати транзакції.
Це означає, що всі операції з даними в RabbitMQ можуть бути надійно контрольовані,
що забезпечує цілісність даних, навіть у випадку відмови системи.
68

Вона оптимізована для високої продуктивності, що є критично важливим для


систем обробки повідомлень, як RabbitMQ. Вона підтримує як дискове, так і
оперативне зберігання, дозволяючи гнучко налаштовувати систему відповідно до
потреб застосування.
Дане сховище має вбудовані можливості для відновлення після збоїв, що
забезпечує стійкість RabbitMQ до відмов. Система може автоматично синхронізувати
дані між вузлами після відновлення після збою, забезпечуючи неперервну роботу
системи.
Оскільки Mnesia розроблена в Erlang, вона ідеально інтегрується з RabbitMQ,
який також написаний на Erlang. Ця сумісність забезпечує високу стабільність та
ефективність в роботі RabbitMQ.

4.6 Структура проекту

4.6.1 Опис структури проекту


Даний програмний продукт вміщує в собі наступні модулі, кожен із яких
містить функціонал для вирішення конкретних завдань. (рис. 4.2).

Рис. 4.2. Структура проекту


69

Папка «src» є кореневою папкою для вихідного коду. Вона містить наступні
компоненти:
1) Директорія logs - папка для зберігання логів;
2) Директорія main - Тут розміщується основний Java код додатку;
3) Директорія target для зберігання скомпільованих файлів та артефактів збірки;
4) Директорія test викориристовується для зберігання тестових класів;
5) .mvn - папки, що містять скрипти та налаштування для забезпечення збірки
проекту;
6) Dockerfile - цей файл визначає інструкції для створення Docker образу вашого
застосунку;
7) pom.xml - файл конфігурації залежностей та плагінів проекту;
8) README.md - файл з описом проекту, інструкціями зі збірки та
використання;
9) .gitignore - файл, що вказує Git, які файли або папки ігнорувати;
10) Audio Elements Detection.iml - зберігає інформацію про модуль розробки
Склад папки main:
- директорія resources для зберігання ресурсів проекту, таких як конфігураційні
файли;
- клас AudioProcessor;
- клас DatabaseManager;
- клас SpeechRecognizer;
- клас MainApplication.
Директорія target містить docker-compose.yml, який використовується для
визначення та запуnску множини контейнерів Docker для MongoDB.
Даний проект має певну структуру. Кожний файл має певний функціонал, який
відповідає за певну ділянку додатку:
- AudioProcessor.java - клас, який займається первинною обробкою аудіоданих,
відповідає за перетворення аудіопотоку у формат байтовий масиву;
- DatabaseManager.java - клас відіграє ключову роль у зберіганні та управлінні
даними, встановлює з'єднання з MongoDB, забезпечує виконання операцій з базою
70

даних, таких як вставка розпізнаного тексту, гарантує належне закриття з'єднання


після завершення операцій;
- SpeechRecognizer.java є серцем системи розпізнавання мовлення,
використовує алгоритми машинного навчання та API для розпізнавання мовлення,
конвертує оброблені аудіодані в текст;
- MainApplication.java координує взаємодію між цими компонентами,
ініціалізує екземпляри інших класів, управляє загальним процесом від читання
аудіопотоку, його обробки, розпізнавання мовлення до зберігання результатів у базі
даних;
- docker-compose-dev.yml використовується для визначення та запуску
множини контейнерів Docker для MongoDB.

Рис. 4.3. Використані бібліотеки


71

4.6.2 Особливості координації взаємодії між компонентами


У даному фрагменті коду відбувається процес обробки аудіофайлу, його
перетворення на текст та збереження результату. При виникненні помилок вони
фіксуються в системі логування.:

Лістинг 4.1
try {

AudioProcessor audioProcessor = new AudioProcessor();

SpeechRecognizer speechRecognizer = new


SpeechRecognizer();

DatabaseManager databaseManager = new DatabaseManager();

byte[] audioData =
audioProcessor.processAudioFile(audioFilePath);

String recognizedText =
speechRecognizer.recognizeSpeech(audioData);

databaseManager.saveRecognitionResult(recognizedText);

logger.info("Розпізнане мовлення: " + recognizedText);

writeRecognizedTextToFile(recognizedText,
"src/logs/recognizedText.txt");

} catch (Exception e) {

logger.severe("Помилка в обробці аудіофайлу: " +


e.getMessage());

У цьому фрагменті коду налаштовується система логування, яка записує події


у файл з логами. У разі помилок у процесі налаштування виводиться повідомлення
про помилку:
72

Лістинг 4.2
private static void setupLogging() {

try {

FileHandler fileHandler = new


FileHandler("src/logs/application.log", true);

fileHandler.setFormatter(new SimpleFormatter());

logger.addHandler(fileHandler);

} catch (IOException e) {

System.err.println("Помилка при налаштуванні логування:


" + e.getMessage());

Повністю код класу модуля можна розглянути в додатку А.

4.7 Аналіз аудіопотоку та виявлення елементів мовлення

4.7.1 Опис класу MainApplication

При запуску MainApplication, він ініціалізує інші класи, необхідні для роботи
програми. Це включає створення екземплярів класів AudioProcessor,
SpeechRecognizer, і DatabaseManager.

Лістинг 4.3
AudioProcessor audioProcessor = new AudioProcessor();

SpeechRecognizer speechRecognizer = new


SpeechRecognizer();

DatabaseManager databaseManager = new


DatabaseManager();
73

Оброблені аудіодані передаються в SpeechRecognizer. Цей клас використовує


вбудовані алгоритми або зовнішні сервіси для розпізнавання мовлення в аудіопотоці.
SpeechRecognizer аналізує аудіодані і конвертує їх у текстову форму.

Лістинг 4.5
private static void writeRecognizedTextToFile(String text, String
filePath) {

try (BufferedWriter writer = new BufferedWriter(new


FileWriter(filePath))) {

writer.write(text);

} catch (IOException e) {

logger.severe("Помилка при записі розпізнаного тексту


в файл: " + e.getMessage());

Отриманий текст (результат розпізнавання мовлення) передається в


DatabaseManager. DatabaseManager використовується для збереження цього тексту в
базі даних MongoDB. Він виконує такі операції, як вставка нового запису з
розпізнаним текстом.

Лістинг 4.6
databaseManager.saveRecognitionResult(recognizedText);

logger.info("Розпізнане мовлення: " + recognizedText);

MainApplication керує цілим потоком роботи від початку до кінця. Він гарантує,
що кожен компонент виконує свою частину роботи в правильній послідовності.
У разі виникнення помилок або виключних ситуацій, MainApplication може
логувати ці події та вживати відповідних заходів.
74

Лістинг 4.7
private static void setupLogging() {

try {

FileHandler fileHandler = new


FileHandler("src/logs/application.log", true);

fileHandler.setFormatter(new SimpleFormatter());

logger.addHandler(fileHandler);

} catch (IOException e) {

System.err.println("Помилка при налаштуванні


логування: " + e.getMessage());

4.7.2 Підготовка аудіоданих до розпізнавання мовлення


Спочатку AudioProcessor завантажує аудіофайл з диску. Це може бути зроблено
за допомогою стандартних методів вводу/виводу Java. Файл може бути у різних
форматах, таких як WAV, MP3 тощо.

Рис. 4.4. Перетворення аудіофрагменту в байтовий масив

Якщо аудіофайл не у форматі, який підходить для подальшої обробки


(наприклад, потрібен формат PCM для обробки мовлення), AudioProcessor виконує
необхідне перетворення формату.
Після обробки, аудіофайл конвертується в байтовий масив, щоб можна було
легко передати його наступному компоненту (наприклад, SpeechRecognizer). Це
зазвичай включає читання аудіопотоку та його перетворення у послідовність байтів.
75

Нарешті, оброблені аудіодані у формі байтового масиву повертаються для


подальшого використання іншими компонентами системи.

4.7.3 Процес розпізнавання мовлення


SpeechRecognizer приймає оброблені аудіодані, які можуть бути у вигляді
байтового масиву, аудіопотоку або іншої форми. Ці дані зазвичай походять від
компонента, такого як AudioProcessor, який вже виконав попередню обробку
аудіофайлу.
Основна мета SpeechRecognizer - перетворити мовлення з аудіоданих у текстову
форму. Це означає ідентифікацію слів та фраз у мовленні та їх конвертацію в
письмовий текст.
Під час процесу розпізнавання мовлення можуть виникати помилки або
виключні ситуації, наприклад, через погану якість аудіо або нерозпізнавані слова.
SpeechRecognizer повинен вміти впоратися з такими ситуаціями, надаючи
повідомлення про помилку або використовуючи запасні механізми обробки.

Лістинг 4.8

if (!AudioSystem.isLineSupported(info)) {

System.err.println("Line not supported");

return;

Після завершення процесу розпізнавання, SpeechRecognizer повертає


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

Рис. 4.5. Вивід даних про відсутність підтримки лінії


76

4.7.4 Взаємодія з системою управління базою даних


DatabaseManager ініціалізує та відкриває з'єднання з базою даних. Це включає
конфігурацію параметрів підключення, таких як адреса сервера, порт, ім'я бази даних,
а також реквізити для аутентифікації.

Лістинг 4.8
public DatabaseManager(String dbName, String collectionName) {

mongoClient = new InnerMongoClient();

database = mongoClient.getDatabase(dbName);

collection = database.getCollection(collectionName);

Після завершення операцій з даними, DatabaseManager відповідає за коректне


закриття з'єднання з базою даних, щоб уникнути витоку ресурсів та забезпечити
стабільність системи.
Під час роботи з базою даних можуть виникати різні виключні ситуації,
наприклад, проблеми з мережею, помилки запитів або проблеми з доступом до даних.
DatabaseManager включає механізми обробки цих виключень, щоб забезпечити
стабільну роботу програми.
Відповідальності класу також включають в себе забезпечення безпеки даних,
наприклад, шляхом імплементації аутентифікації та авторизації при виконанні
операцій з базою даних.

Лістинг 4.8
public void saveRecognitionResult(String text) {

Document doc = new Document("recognizedText", text)

.append("timestamp", System.currentTimeMillis());

collection.insertOne(doc);

System.out.println("Результат розпізнавання збережено у MongoDB.");

}
77

Рис. 4.6. Повідомлення про результат збереження розпізнавання

Рис. 4.7. Результуючий розпізнаваний текст

DatabaseManager є ключовим компонентом, який вирішує задачі взаємодії


програми з базою даних, забезпечуючи ефективне та безпечне управління даними.

4.8 Висновки до розділу

У розділі було розглянуто ключові аспекти проектування та реалізації


алгоритму аналізу мовлення в аудіопотоках. Було виконано детальний розгляд вибору
відповідних технологій та інструментів, включаючи мову програмування Java,
середовище розробки IntelliJ IDEA, систему керування базами даних MongoDB та
брокера повідомлень RabbitMQ. Також було розроблено структуру основних класів
програми, що включає обробку аудіофайлів, розпізнавання мовлення, зберігання
даних та їх логування.
Ефективна реалізація цих компонентів забезпечила можливість точного
розпізнавання елементів мовлення в аудіопотоках, їх обробку та аналіз. Розроблений
алгоритм може бути використаний у різних сферах, включаючи розробку
інтерактивних систем, автоматизацію обробки природної мови та інші застосування,
де важливе розуміння та аналіз мовлення.
78

ВИСНОВКИ

У даній магістерській роботі було проведено всебічне дослідження та розробку


в області реалізації функціональності мультимедійного інтелекту, з акцентом на
розпізнаванні елементів мовлення в аудіопотоках. Робота охоплює комплексний
теоретичний аналіз сучасних методів та інструментів у цій сфері, а також практичну
розробку власного алгоритму для обробки мовлення.
На початковому етапі був зроблений глибокий огляд існуючих підходів у сфері
аудіоаналізу та мультимедійного інтелекту, що допомогло виявити ключові напрямки
для дослідження та визначити потенційні проблеми, з якими можна зіткнутися.
Особлива увага була приділена методам машинного навчання та штучного інтелекту,
які відіграють важливу роль у сучасному аудіоаналізі.
У практичній частині роботи було зосереджено увагу на розробці та
впровадженні алгоритму для розпізнавання мовлення в аудіопотоках. Завдяки
використанню мови програмування Java та інструментів розробки, таких як IntelliJ
IDEA, було створено ефективний та функціональний інструментарій. Використання
MongoDB для зберігання даних та RabbitMQ для обробки повідомлень забезпечило
високу продуктивність та масштабованість системи.
Результати тестування розробленого алгоритму продемонстрували його високу
ефективність та точність у розпізнаванні мовлення. Це підтверджує потенціал
використання розроблених методів для подальших досліджень та практичного
застосування у різноманітних сферах, пов'язаних з аудіоаналізом та обробкою
мовлення.
Розробка демонструє значний потенціал для використання в різних галузях, які
потребують аналізу мовлення та аудіоданих. Можливість адаптації алгоритму для
специфічних потреб різних сфер, таких як розробка інтерактивних систем,
автоматизація процесів розпізнавання мовлення, медіа аналітика та інші, відкриває
шлях для широкого використання цієї технології. Ця робота закладає фундамент для
подальших досліджень та розвитку у сфері мультимедійного інтелекту, сприяючи
технологічному прогресу в області обробки та аналізу аудіоданих.
79

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1. ЗапоSpeech recognition – IBM – [Електронний ресурс]. – Режим доступу:


https://www.ibm.com/topics/speech-recognition.
2. Speech recognition - Wikipedia, the free encyclopedia – [Електронний ресурс]. –
Режим доступу: https://en.wikipedia.org/wiki/Speech_recognition.
3. Neural Network Architecture: Components & Algorithms - UpGrad Blog –
[Електронний ресурс]. – Режим доступу: https://www.upgrad.com/blog/neural-
network-architecture-components-algorithms/.
4. Mel-frequency cepstrum - Wikipedia, the free encyclopedia – [Електронний
ресурс]. – Режим доступу:
https://en.wikipedia.org/wiki/Mel-frequency_cepstrum.
5. Audio frequency - Wikipedia, the free encyclopedia – [Електронний ресурс]. –
Режим доступу: https://en.wikipedia.org/wiki/Audio_frequency.
6. Форма хвилі - Wikipedia, the free encyclopedia – [Електронний ресурс]. – Режим
доступу:
https://uk.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_
%D1%85%D0%B2%D0%B8%D0%BB%D1%96.
7. Time and Frequency Domain of Audio - ResearchGate – [Електронний ресурс]. –
Режим доступу: https://www.researchgate.net/figure/Figure-1-Time-and-
Frequency-Domain-of-Audio-display_fig1_325020418.
8. Audio Classification Based on Content Features - ResearchGate – [Електронний
ресурс]. – Режим доступу:
https://www.researchgate.net/publication/325020418_Audio_Classification_Based
_on_Content_Features.
9. Spectrogram - MathWorks – [Електронний ресурс]. – Режим доступу:
https://www.mathworks.com/help/signal/ref/spectrogram.html.
10. Music analysis - University of Washington – [Електронний ресурс]. – Режим
доступу:
https://atmos.washington.edu/~breth/classes/AS552/matlab/lect/html/music.html.
80

11. Discrete Fourier transform - Wikipedia, the free encyclopedia – [Електронний


ресурс]. – Режим доступу:
https://en.wikipedia.org/wiki/Discrete_Fourier_transform.
12. Дискретне перетворення Фур'є - Донецький національний технічний
університет – [Електронний ресурс]. – Режим доступу:
https://ea.donntu.edu.ua/bitstream/123456789/7719/1/DFT%20theory.pdf.
13. Fast Fourier transform - Wikipedia, the free encyclopedia – [Електронний ресурс].
– Режим доступу: https://en.wikipedia.org/wiki/Fast_Fourier_transform.
14. Mel scale - Wikipedia, the free encyclopedia – [Електронний ресурс]. – Режим
доступу: https://en.wikipedia.org/wiki/Mel_scale.
15. Waveforms and Spectrogram - ResearchGate – [Електронний ресурс]. – Режим
доступу: https://www.researchgate.net/figure/Different-Waveforms-Showing-the-
Scale-Spectrogram-Uses-Linear-Spaced-Frequency-Scale-and_fig1_350084563.
16. Audio segmentation - ResearchGate – [Електронний ресурс]. – Режим доступу:
https://www.researchgate.net/figure/An-example-of-audio-segmentation-Vertical-
lines-represent-actual-boundaries-either_fig1_221258872.
17. Long short-term memory - Wikipedia, the free encyclopedia – [Електронний
ресурс]. – Режим доступу: https://en.wikipedia.org/wiki/Long_short-
term_memory.
18. Java Speech API - Oracle – [Електронний ресурс]. – Режим доступу:
https://www.oracle.com/java/technologies/speech-api-frequently-asked-
questions.html.
19. Comprehensive Guide to Speech Libraries in Java - Medium – [Електронний
ресурс]. – Режим доступу: https://medium.com/@224vinod/comprehensive-guide-
to-speech-libraries-in-java-boost-your-application-with-voice-recognition-
f45027d5bfde.
20. Processing Speech in Java - JavaTpoint – [Електронний ресурс]. – Режим
доступу: https://www.javatpoint.com/processing-speech-in-java.
21. SpeechRecognizer in Azure Java SDK - Microsoft – [Електронний ресурс]. –
Режим доступу: https://learn.microsoft.com/en-
81

us/java/api/com.microsoft.cognitiveservices.speech.speechrecognizer?view=azure-
java-stable.
22. Converting Text to Speech in Java - GeeksforGeeks – [Електронний ресурс]. –
Режим доступу: https://www.geeksforgeeks.org/converting-text-speech-java/.
23. Java Speech Recognition Systems - LinkedIn – [Електронний ресурс]. – Режим
доступу: https://www.linkedin.com/pulse/java-speech-recognition-systems-
transforming-verbal-input-unhef/.
24. Adding Offline Speech Recognition to a Java Application - Medium –
[Електронний ресурс]. – Режим доступу:
https://medium.com/picovoice/prioritizing-privacy-add-offline-speech-recognition-
to-a-java-application-1c864574fb7e.
25. How to Convert Speech to Text in Java - Stack Overflow – [Електронний ресурс].
– Режим доступу: https://stackoverflow.com/questions/4292004/how-to-convert-
speech-to-text-in-java.
26. Introduction to the Java Speech API - Object Computing – [Електронний ресурс].
Режим доступу: https://objectcomputing.com/resources/publications/sett/march-
2006introduction-to-the-java-speech-api.
27. MongoDB - W3Schools – [Електронний ресурс]. – Режим доступу:
https://www.w3schools.com/mongodb/.
28. MongoDB - Wikipedia, the free encyclopedia – [Електронний ресурс]. – Режим
доступу: https://en.wikipedia.org/wiki/MongoDB.
29. MongoDB - IBM – [Електронний ресурс]. – Режим доступу:
https://www.ibm.com/topics/mongodb.
30. "What is a Recurrent Neural Network (RNN)?" - AWS – [Електронний ресурс]. –
Режим доступу: https://aws.amazon.com/what-is/recurrent-neural-
network/?nc1=h_ls.
31. "RNN Tutorial: What is a Recurrent Neural Network?" - Simplilearn –
[Електронний ресурс]. – Режим доступу:
https://www.simplilearn.com/tutorials/deep-learning-tutorial/rnn.
82

32. "Recurrent Neural Networks (RNN) and Long Short-Term Memory (LSTM)" -
Built In – [Електронний ресурс]. – Режим доступу: https://builtin.com/data-
science/recurrent-neural-networks-and-lstm.
33. "Educational Java Simulations" - ComPADRE – [Електронний ресурс]. – Режим
доступу: https://www.compadre.org/osp/EJSS/4487/272.htm.
34. "How are Neural Networks Related to Fourier Transforms?" - Medium –
[Електронний ресурс]. – Режим доступу: https://medium.com/@lorenzojcducv/how-
are-neural-networks-related-to-fourier-transforms-54e0b78e50de.
35. "Audio Data Processing: Feature Extraction and the Science Behind Them" -
Analytics Vidhya – [Електронний ресурс]. – Режим доступу:
https://www.analyticsvidhya.com/blog/2021/06/part-14-audio-data-processing-
feature-extraction-science-concepts-behind-them/.
35. "Spatial and Spectral Methods of Image Coding" - University of Auckland –
[Електронний ресурс]. – Режим доступу:
https://www.cs.auckland.ac.nz/compsci708s1c/lectures/jpeg_mpeg/spatial_spectral.ht
ml.
36. "Speech-to-Text: Automatic Speech Recognition" - Google Cloud – [Електронний
ресурс]. – Режим доступу: https://cloud.google.com/speech-to-text.
37. "Speech Recognition: Comprehensive Guide" - AIMultiple – [Електронний
ресурс]. – Режим доступу: https://research.aimultiple.com/speech-recognition/.
39. "Computational Linguistics" - Wikipedia – [Електронний ресурс]. – Режим
доступу: https://en.wikipedia.org/wiki/Computational_linguistics.
40. "RNN Explained: What is a Recurrent Neural Network?" - IBM Cloud Education –
[Електронний ресурс]. – Режим доступу:
https://www.ibm.com/cloud/learn/recurrent-neural-networks.
41. "Understanding LSTM Networks" - Colah's Blog – [Електронний ресурс]. –
Режим доступу: https://colah.github.io/posts/2015-08-Understanding-LSTMs/.
ДОДАТКИ
Додаток А

MainApplication.java координує взаємодію між всіма компонентами

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.logging.FileHandler;

import java.util.logging.Logger;

import java.util.logging.SimpleFormatter;

public class MainApplication {

private static final Logger logger =


Logger.getLogger(MainApplication.class.getName());

public static void main(String[] args) {

setupLogging();

String audioFilePath = "src/logs/yourAudioFile.wav";

File audioFile = new File(audioFilePath);

if (!audioFile.exists()) {

logger.severe("Аудіофайл не знайдено за шляхом: " +


audioFilePath);

return;

try {

AudioProcessor audioProcessor = new AudioProcessor();

SpeechRecognizer speechRecognizer = new SpeechRecognizer();

DatabaseManager databaseManager = new DatabaseManager();

byte[] audioData =
audioProcessor.processAudioFile(audioFilePath);

String recognizedText =
speechRecognizer.recognizeSpeech(audioData);
Продовження додатку А

databaseManager.saveRecognitionResult(recognizedText);

logger.info("Розпізнане мовлення: " + recognizedText);

writeRecognizedTextToFile(recognizedText,
"src/logs/recognizedText.txt");

} catch (Exception e) {

logger.severe("Помилка в обробці аудіофайлу: " +


e.getMessage());

private static void setupLogging() {

try {

FileHandler fileHandler = new


FileHandler("src/logs/application.log", true);

fileHandler.setFormatter(new SimpleFormatter());

logger.addHandler(fileHandler);

} catch (IOException e) {

System.err.println("Помилка при налаштуванні логування: " +


e.getMessage());

private static void writeRecognizedTextToFile(String text, String


filePath) {

try (BufferedWriter writer = new BufferedWriter(new


FileWriter(filePath))) {

writer.write(text);

} catch (IOException e) {

logger.severe("Помилка при записі розпізнаного тексту в файл: "


+ e.getMessage());

}
Додаток Б

AudioProcessor.java відповідає за первинну обробку аудіоданих

import javax.sound.sampled.*;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.IOException;

public class AudioProcessor {

public byte[] processAudioFile(String filePath) {

try {

File audioFile = new File(filePath);

AudioInputStream audioStream =
AudioSystem.getAudioInputStream(audioFile);

AudioFormat format = audioStream.getFormat();

AudioFormat decodedFormat = new AudioFormat(

AudioFormat.Encoding.PCM_SIGNED,

format.getSampleRate(),

16,

format.getChannels(),

format.getChannels() * 2,

format.getSampleRate(),

false);

AudioInputStream decodedAudioStream =
AudioSystem.getAudioInputStream(decodedFormat, audioStream);

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int bytesRead;

while ((bytesRead = decodedAudioStream.read(buffer)) != -1) {


Продовження додатку Б
baos.write(buffer, 0, bytesRead);

return baos.toByteArray();

} catch (UnsupportedAudioFileException | IOException ex) {

ex.printStackTrace();

return null;

}
Додаток В

SpeechRecognizer.java конвертує оброблені аудіодані в текст

import javax.sound.sampled.*;

import java.io.File;

import java.io.IOException;

public class SimpleSpeechRecognizer {

public void recognizeSpeech(String audioFilePath) {

try {

File audioFile = new File(audioFilePath);

AudioInputStream audioStream =
AudioSystem.getAudioInputStream(audioFile);

AudioFormat format = audioStream.getFormat();

DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);

if (!AudioSystem.isLineSupported(info)) {

System.err.println("Line not supported");

return;

TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);

line.open(format);

line.start();

byte[] buffer = new byte[1024];

int bytesRead;

System.out.println("Start speaking...");

while ((bytesRead = line.read(buffer, 0, buffer.length)) != -1) {

String analyzedResult = analyzeAudioBuffer(buffer, bytesRead);


Продовження додатку В
System.out.println("Analyzed result: " + analyzedResult);

} catch (LineUnavailableException | UnsupportedAudioFileException |


IOException ex) {

ex.printStackTrace();

private String analyzeAudioBuffer(byte[] buffer, int length) {

// Проста логіка аналізу: визначення наявності звуку у буфері

boolean soundDetected = false;

for (int i = 0; i < length; i++) {

if (buffer[i] != 0) {

soundDetected = true;

break;

return soundDetected ? "Sound detected" : "No sound";

}
Додаток Д

DatabaseManager.java відіграє ключову роль у зберіганні та управлінні


даними

import com.mongodb.client.MongoClients;

import com.mongodb.client.MongoDatabase;

import com.mongodb.client.MongoCollection;

import org.bson.Document;

public class DatabaseManager {

private InnerMongoClient mongoClient;

private MongoDatabase database;

private MongoCollection<Document> collection;

public DatabaseManager(String dbName, String collectionName) {

mongoClient = new InnerMongoClient();

database = mongoClient.getDatabase(dbName);

collection = database.getCollection(collectionName);

public void saveRecognitionResult(String text) {

Document doc = new Document("recognizedText", text)

.append("timestamp", System.currentTimeMillis());

collection.insertOne(doc);

System.out.println("Результат розпізнавання збережено у MongoDB.");

private class InnerMongoClient {

private com.mongodb.client.MongoClient client;

public InnerMongoClient() {

client = MongoClients.create(); // Створення реального


MongoClient
Продовження додатку Д
}

public MongoDatabase getDatabase(String dbName) {

return client.getDatabase(dbName);

public void close() {

if (client != null) {

client.close();

}
Додаток Е

docker-compose-dev.yml використовується для визначення та запуску


множини контейнерів Docker для MongoDB

version: '3.8'

services:

mongodb:

image: mongo:latest

container_name: mongodb_dev

ports:

- "27018:27017"

environment:

MONGO_INITDB_ROOT_USERNAME: UserPC

MONGO_INITDB_ROOT_PASSWORD: mongopass

volumes:

- mongodb_data_dev:/data/db

networks:

- mongo-network

networks:

mongo-network:

driver: bridge

volumes:

mongodb_data_dev:

You might also like