‘акалаври...  · web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп....

69
Комп’ютерна система підготовки вхідних даних для розпізнавання ключових слів Пояснювальна записка КПІ ім. Ігоря СікорськогоФПМ, КВ-32 51 1 Аркушів Аркуш Літ. Тіменко А.О. Тарасенко В.П. Терейковський І.А. Клятченко Я.М. Затв. Перевір . Н. контр. Розроб. Дата Підп. № докум. Арк. Зм .м ІАЛЦ.045490.004 ПЗ ЗМІСТ СПИСОК ТЕРМІНІВ, СКОРОЧЕНЬ ТА ПОЗНАЧЕНЬ___________________ ВСТУП_____________________________________________________ 1. АНАЛІЗ ІСНУЮЧИХ РІШЕНЬ ТА ОБҐРУНТУВАННЯ ТЕМИ ДИПЛОМНОГО ПРОЕКТУ________________________________________ 1.1 Аналіз існуючих рішень підготовки звукових даних для систем розпізнавання голосових сигналів____________________________ 1.2 Загальна характеристика методів обробки голосових даних_____ 1.3 Загальна характеристика систем фільтрації голосового сигналу___________________________________________________________ 1.4 Обґрунтування теми дипломного проекту______________________ 2. ХАРАКТЕРИСТИКА ІНСТРУМЕНТАРІЮ ТА ВИКОРИСТАНИХ ПРОГРАМНИХ БІБЛІОТЕК_____________________________________ 2.1 Опис інструментарію________________________________________ 2.2 Загальна характеристика вхідних та вихідних форматів даних_____________________________________________________________ 3. ОПИС РОЗРОБЛЕНИХ АЛГОРИТМІВ___________________________ 3.1 Вибір алгоритму фільтрації голосових даних_________________ 3.2 Алгоритм спектрального віднімання__________________________ 3.3 Дискретне перетворення Фур’є_______________________________ 3.4 Інтерфейсні алгоритми______________________________________ 4. ІНТЕРФЕЙСИ ТА АНАЛІЗ РОЗРОБЛЕНОЇ СИСТЕМИ______________ ВИСНОВКИ_________________________________________________ СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ___________________________

Upload: others

Post on 18-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

ЗМІСТ

СПИСОК ТЕРМІНІВ, СКОРОЧЕНЬ ТА ПОЗНАЧЕНЬ_______________________

ВСТУП_______________________________________________________________

1. АНАЛІЗ ІСНУЮЧИХ РІШЕНЬ ТА ОБҐРУНТУВАННЯ ТЕМИ

ДИПЛОМНОГО ПРОЕКТУ_____________________________________________1.1 Аналіз існуючих рішень підготовки звукових даних для систем розпізнавання

голосових сигналів_________________________________________________________________

1.2 Загальна характеристика методів обробки голосових даних_______________________

1.3 Загальна характеристика систем фільтрації голосового сигналу__________________

1.4 Обґрунтування теми дипломного проекту_____________________________________

2. ХАРАКТЕРИСТИКА ІНСТРУМЕНТАРІЮ ТА ВИКОРИСТАНИХ

ПРОГРАМНИХ БІБЛІОТЕК____________________________________________2.1 Опис інструментарію______________________________________________________

2.2 Загальна характеристика вхідних та вихідних форматів даних____________________

3. ОПИС РОЗРОБЛЕНИХ АЛГОРИТМІВ_________________________________3.1 Вибір алгоритму фільтрації голосових даних__________________________________

3.2 Алгоритм спектрального віднімання_________________________________________

3.3 Дискретне перетворення Фур’є______________________________________________

3.4 Інтерфейсні алгоритми_____________________________________________________

4. ІНТЕРФЕЙСИ ТА АНАЛІЗ РОЗРОБЛЕНОЇ СИСТЕМИ__________________

ВИСНОВКИ_________________________________________________________

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ_______________________________

ІАЛЦ.045490.004 ПЗЗм Арк. № докум. Підп. Дата

Розроб.

Н. контр.

Перевір.

Затв.Клятченко Я.М.

Терейковський І.А.

Тарасенко В.П.

Тіменко А.О. Літ. Аркуш Аркушів

1 51КПІ ім. Ігоря Сікорського

ФПМ, КВ-32

Комп’ютерна система підготовки вхідних даних для розпізнавання ключових слів

Пояснювальна записка

Page 2: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

ДОДАТКИ

Д.1 Копії графічних матеріалів

ІАЛЦ.045490.005 Д1 Система фільтрації звуку. Схема

структурна.

ІАЛЦ.045490.006 Д2 Фільтрація звукових даних. Схема

алгоритму.

ІАЛЦ.045490.007 Д3 Дискретне розкладання Фур’є. Схема

алгоритму.

ІАЛЦ.045490.008 Д4 Метод спектрального віднімання. Схема

принципова.

Д.2 Лістинг програми

Зм. Арк. № докум. Підп. Дата

Арк.

2ІАЛЦ.045490.004 ПЗ

Page 3: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

СПИСОК ТЕРМІНІВ, СКОРОЧЕНЬ ТА ПОЗНАЧЕНЬ

ПЗ – програмне забезпечення

UNIX – сімейство операційних систем

Qt – бібліотека для створення користувацьких інтерфейсів

PyQt – додаток Qt для мови Python

Linux – підсімейство операційних систем UNIX

Ubuntu – Linux-подібна операційна система

FFmpeg – набір бібліотек для роботи з мультимедіа

NUMPY – бібліотека Python

WAV – формат аудіофайлів

Зм. Арк. № докум. Підп. Дата

Арк.

3ІАЛЦ.045490.004 ПЗ

Page 4: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

ВСТУП

Попередня обробка і фільтрація даних - це важливі етапи, що

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

голосових даних будь-якого типу. Необроблені дані часто спотворені і

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

даних при моделюванні може призводити до невірних результатів. Ці

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

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

використовується для визначення і планування необхідної попередньої

обробки.

Зазвичай набори даних для навчання систем розпізнавання звукових

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

даних у відкритому доступі дуже мала кількість. Крім того, такі набори

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

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

дані дооброблювати. Очевидно, що досить зручно було б мати програмний

продукт, що дозволить виконувати гнучку обробку сирих звукових даних.

Метою даної роботи є розробка системи, що буде підготовлювати,

фільтрувати та очищувати звукові дані для комп’ютерної системи

розпізнавання голосових сигналів. Джерелом даних для системи був обраний

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

розробникам систем розпізнавання голосових сигналів самим формувати

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

аудіофайлів у широковживаному форматі wav.

Зм. Арк. № докум. Підп. Дата

Арк.

4ІАЛЦ.045490.004 ПЗ

Page 5: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

1. АНАЛІЗ ІСНУЮЧИХ РІШЕНЬ ТА ОБҐРУНТУВАННЯ ТЕМИ

ДИПЛОМНОГО ПРОЕКТУ

1.1 Аналіз існуючих рішень підготовки звукових даних для

систем розпізнавання голосових сигналів

Вибір засобів фільтрації та шумоподавлення аудіо дуже мізерний і

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

лінійного монтажу. Застосування шумоподавлення є не у багатьох. Для

огляду були обрані шість з них.

Modplug - це багатофункціональний плагін обробки аудіо, сумісний з

VLC і використовує бібліотеку libmodplug.

Його функціонал доступний в VLC через ключі:

--mod-noisereduction (boolean) - ввімкнути шумоподавлення. За

замовчуванням ввімкнено в VLC. Не потребує зразка шуму.

--mod-reverb (integer between 0 and 100) - рівень ефекту реверберації.

За умовчанням 0.

--mod-reverb-delay (integer between 0 and 1000) - затримка

реверберації в мілісекундах. Нормальні значення лежать в діапазоні

від 40 до 200. За умовчанням 40.

--mod-megabass (boolean) - ввікнути ефект mega bass. За

замовчуванням вимкнений.

--mod-megabass-level (integer between 0 and 100) - рівень ефекту

mega bass. За умовчанням 0.

--mod-megabass-range (integer bewteen 10 and 100) - частота

відсічення ефекту mega bass в герцах. На високих частотах ефект не

застосовується. За замовчуванням 10.

--mod-surround (boolean) - ефект оточення. За замовчуванням

вимкнений.

Зм. Арк. № докум. Підп. Дата

Арк.

5ІАЛЦ.045490.004 ПЗ

Page 6: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

--mod-surround-level (integer between 0 and 100) - рівень ефекту

оточення. За умовчанням 0.

--mod-surround-delay (integer between 0 and 100) - затримка звуку з

ефектом оточення. Нормальні значення лежать в діапазоні від 5 до

40, за замовчуванням 5.

Audacity - це найвідоміший і потужний звуковий редактор, доступний

під Linux.

У його функціонал входить, в тому числі, шумоподавлення методом

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

На жаль, Audacity має тільки графічний інтерфейс, управління з

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

Потокове аудіо не підтримується, можливий тільки запис із звукової

карти.

ReZound - це багатодоріжковий звуковий редактор, за функціоналом

трохи поступається Audacity. У його функціонал входить якийсь алгоритм

подавлення шуму без використання спектра віднімання.

Як і Audacity, ReZound не дає доступ до свого функціоналу через

інтерфейс командного рядка.

Потокове аудіо не підтримується.

Gnome Wave Cleaner (GWC) - це спеціалізована програма для

очищення звукових файлів від шуму.

В її функціонал, в тому числі, входить надзвичайно гнучка функція

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

Як і всі раніше перераховані програмні продукти, вона не підтримує

управління функціоналом через консоль.

Потокове аудіо не підтримується.

Також, до недоліків цієї програми можна віднести той факт, що при

застосуванні ефектів шумоподавлення вона вносить зміни безпосередньо у

відкритий файл.

Зм. Арк. № докум. Підп. Дата

Арк.

6ІАЛЦ.045490.004 ПЗ

Page 7: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

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

віднімання.

Незважаючи на консольний інтерфейс, Gramofile є лише інтерактивним

і не підтримує управління через ключі.

Потокове аудіо не підтримується.

Жодна з досліджених програм для вирішення поставленого завдання не

підходить.

Проте, оскільки всі перераховані програми є Free Software, залишається

можливість їх модифікації і створення засобів на їх основі.

1.2 Загальна характеристика методів обробки голосових даних

Обробка сигналу - це складна, ресурсомістка процедура. Вона

порівняно недавно стала проводитися в цифрових пристроях - раніше різні

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

Однак цей спосіб має масу недоліків. По-перше, страждає якість обробки,

адже кожен аналоговий елемент має свою похибку, а кілька десятків

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

результату. По-друге, майже кожен ефект досягається шляхом використання

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

дорого. Можливість же використання цифрових пристроїв має незаперечні

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

апаратури, головне - грамотно оцифрувати звук і мати можливість хорошого

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

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

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

які обмежені лише потужністю комп'ютерів (а вона збільшується з кожним

днем) і фантазією людини.

Зм. Арк. № докум. Підп. Дата

Арк.

7ІАЛЦ.045490.004 ПЗ

Page 8: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

характеристик - надання йому якихось нових якостей або усунення

небажаних ефектів.

Мова призначена для спілкування. Можливості мови з цієї точки

можна характеризувати по-різному. Один з підходів, заснований на теорії

інформації, розроблений Шенноном. Відповідно до цієї теорії, мову можна

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

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

Найбільш корисними на практиці є уявлення мови у вигляді коливання або у

вигляді непараметричної моделі.

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

деякий абстрактне повідомлення. В наслідок це повідомлення перетвориться

в акустичне мовне коливання. Повідомлення спочатку перетворюється в

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

(переміщення мови, губ, голосових зв'язок). Потім, артикулярний апарат

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

інформацію про вихідне повідомлення.

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

обробляється різними способами. Однак у всіх випадках їм притаманні такі

особливості:

Збереження інформаційного змісту мовного сигналу;

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

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

перетворювати мовної сигнал без істотних інформаційних змін.

При розробці способу представлення мовного сигналу істотний вплив

роблять методи обробки сигналу.

Схематично, обробка сигналу зображена на рисунку 1.1

Зм. Арк. № докум. Підп. Дата

Арк.

8ІАЛЦ.045490.004 ПЗ

Page 9: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 1.1 – Обробка звукового сигналу

Найбільш важливим фактором, що визначає вибір цифрового

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

задачі. На малюнку 1.2 приведено декілька прикладів з великої області

передачі та обробки мовних сигналів.

Зм. Арк. № докум. Підп. Дата

Арк.

9ІАЛЦ.045490.004 ПЗ

Page 10: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 1.2 – Система обробки голосового сигналу

Розглянемо більш детально кожен з методів.

Цифрова передача і зберігання мовної інформації. Одним з

найбільш ранніх і найбільш важливих прикладів застосування обробки

мовного сигналу є вокодер або кодер голоси (voice-coder). Метою розробки

вокодера було зниження пропускної здатності каналу зв'язку при передачі

мови. Одним з позитивних моментів застосування цифрових систем є

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

Системи верифікації та ідентифікації диктора. Методи верифікації

та ідентифікації диктора включають в себе встановлення автентичності, або

ідентифікації, особистості говорить. Система верифікації виносить рішення

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

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

Системи розпізнавання мови. Системи розпізнавання мови повинні

перетворювати мовне повідомлення в текст. Складність завдання

Зм. Арк. № докум. Підп. Дата

Арк.

10ІАЛЦ.045490.004 ПЗ

Page 11: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

вимовної фрази, а також наявністю або відсутністю можливості

налаштування на диктора.

Усунення дефектів мовлення. Тут передбачається обробка мовного

сигналу і відображення отриманої інформації у вигляді, найбільш зручною

для людини. Цифрова обробка сигналів для сенсорного і візуального

відображення інформації при навчанні глухих мови.

На жаль, всі перераховані вище методи працюють погано в системах

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

необхідності застосування нижченаведеного методу.

Поліпшення якості мовного сигналу. Іноді, мовний сигнал, що

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

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

поліпшення якості сприйняття. Прикладами подібних розробок є усунення

ефекту реверберації, усунення шуму в мовному сигналі, відновлення мовного

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

в якості дихальної суміші водолазами.

1.3 Загальна характеристика систем фільтрації голосового

сигналу

Щоб обрати оптимальний метод або спосіб фільтрації шуму,

підвищення розбірливості записаної усної мови і комфортність її

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

виникаючих завад і їх джерел.

Це можуть бути:

Завади, викликані каналом зв'язку;

Шуми і нелінійні спотворення звукозаписної апаратури;

Зм. Арк. № докум. Підп. Дата

Арк.

11ІАЛЦ.045490.004 ПЗ

Page 12: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Шуми, обумовлені дефектами і зношеністю звукозаписувальної та

відтворювальної апаратури;

Шуми і завади, викликані акустичним середовищем звукозапису і

звуковідтворення (приміщення для прослуховування).

Також необхідно відзначити, що до заважаючих факторів можна також

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

індивідуальній варіативності мовних параметрів, а також навмисну або

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

мовних параметрів. Зазначені фактори присутні практично завжди в мовному

сигналі, що вимагає обліку і нормалізації.

Що ж таке шум і як з ним боротися? Шум - це небажаний сигнал, який

виникає при передачі або вимірі іншого, чистого сигналу. Точно

математично описати шуми, як правило, неможливо. Інформативні

параметри шуму визначаються шляхом його аналізу. Якщо зашумленний

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

такий шум називається адитивний.

Основними причинами шумів є:

Недостатня звукоізоляція приміщень, де відбувається звукозапис

або де відтворюється звукова інформація;

Специфічні недоліки носіїв запису, а також копіреффект і

модуляційний шум.

Необхідно також звернути увагу на такі спотворення, як ревербераційні

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

(мовотворчого тракту людини) до приймача звукового тиску (мікрофон).

В даний час в світі є значна кількість, як апаратних, так і апаратно-

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

перешкодами, що заважають сприйняттю звуковій мові, записаної на

фонограмі. Причому основна маса таких пристроїв використовується в

музичному звукозаписі і в радіомовленні.

Зм. Арк. № докум. Підп. Дата

Арк.

12ІАЛЦ.045490.004 ПЗ

Page 13: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Маскування. Маскування залежить не тільки від присутності гучних

сигналів, але і від того, на якій частоті з'являються ці сигнали. Тобто, щоб

уникнути появи модуляції шуму, система повинна бути чутлива не тільки до

рівня, але і до частоти сигналів. Тому, широкосмуговий компандер

ефективно працює тільки при відтворенні «щільних» (наприклад,

симфонічний оркестр) записів. У них рівень сигналу підвищується відразу у

всьому спектрі і поріг чутності змінюється також по всьому діапазону, і

застосування компандеру достатньо, щоб придушити шум.

Але при відтворенні монологу, якщо ми говоримо про мови, або про

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

іншою. Такі фрагменти містять відносно гучні звуки, зосереджені у вузькій

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

спектрі, але при цьому шум не тільки маскується, але і посилюється.

Адаптивні компенсатори завад. Цей клас методів цифрової обробки

зашумлених мовних сигналів заснований на використанні, крім власне

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

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

корисним сигналом, що підлягають виділенню. За допомогою опорних

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

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

оцінка незашумленого сигналу.

Відомо, що адаптивні компенсатори перешкод дозволяють значно

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

вимоги наявності опорного сигналу суттєво звужує їх область застосування.

У багатьох додатках цифрової обробки мовних сигналів (наприклад,

криміналістиці), опорного сигналу, принаймні, в явному вигляді, немає. Тому

для застосування методів адаптивної компенсації перешкод опорний сигнал в

таких випадках доводиться отримувати на основі непрямих міркувань,

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

Зм. Арк. № докум. Підп. Дата

Арк.

13ІАЛЦ.045490.004 ПЗ

Page 14: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

виділення мовного сигналу.

Методи, засновані на використанні статистичних моделей мовного

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

цих методів швидко розвивається і в даний час ці методи приводять до самих

успішних результатів. Завдання виділення мовного сигналу з суміші з шумом

в разі використання досить адекватної моделі зводиться до оцінки будь-яким

чином параметрів цієї моделі і подальшим синтезом або фільтрації мовного

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

параметрів.

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

статистичної фільтрації в тимчасовій області. Фільтрація мовного сигналу,

що моделюється авторегресією, здійснюється при цьому методами теорії

оптимального оцінювання, наприклад, за допомогою оптимального лінійного

фільтра (фільтра Калмана).

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

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

мовного сигналу: +8 - +10 дб при первісному відношенні сигнал / шум

близько 0 дб.

Методи, засновані на обробці мовного сигналу з використанням

апарату прихованих марковських моделей. Іншим класом методів обробки

зашумлених мовних сигналів заснованих на використанні статистичних

моделей мовного сигналу є методи, в яких мовний сигнал моделюється

прихованим марковським ланцюгом. Тобто для моделювання мовного

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

Відомо, що традиційно використовувані методи фільтрації не

використовують фонетичну інформацію, що переноситься мовним сигналом.

Останні дослідження показали, що знання і застосування в процесі обробки

фонетичної структури сигналу призводить до поліпшення якості фільтрації.

Зм. Арк. № докум. Підп. Дата

Арк.

14ІАЛЦ.045490.004 ПЗ

Page 15: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

від шумів його статистичної моделі у вигляді прихованого марковського

ланцюга, який пов'язаний з фонетичною структурою сигналу.

Ідея реалізації такого підходу полягає в тому, що спочатку, по записах

незашумленого мовного сигналу будуються статистичні моделі одиниць

мовного потоку (фонів або більш широких класів звуків). Після того, як

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

розрахувати оптимальний фільтр Вінера.

При обробці на перешкоди сигналу спочатку оцінюється (по

відфільтрувати на попередньому кроці сигналу) поточний стан марковської

моделі, відповідно до якого вибирається оптимальний фільтр, який потім

використовується для фільтрації сигналу і отримання чергової оцінки.

У реальних експериментах по фільтрації мовного сигналу описаними

методами число станів марковської моделі вибиралося рівним 5, тобто

фактично мовної сигнал моделювався як послідовність фонів, відповідних

широким фонетичним категоріям (дзвінкий - галасливий - глухий і т.п.).

Порівняльні дослідження виконувалися на різних типах шумів (білий,

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

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

виході системи) показали очевидну перевагу описаної методики.

Слід зазначити, що очевидним недоліком підходу є необхідність мати

апріорну інформацію про можливі типи шумів. Крім того, якість обробки

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

характер.

Розвиток комп'ютерних технологій дозволив реалізовувати складні та

ефективні алгоритми цифрової обробки сигналів. Всі вони в тій чи іншій мірі

базуються на інформації про мовний сигнал і фоновий шум, і можуть бути

розбиті на декілька груп і засновані на наступних підходах:

Оцінка періодичності вокалізірованной мови;

Зм. Арк. № докум. Підп. Дата

Арк.

15ІАЛЦ.045490.004 ПЗ

Page 16: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Оцінювання параметрів цифрової моделі речеобразования, або

Марковська фільтрація;

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

мінімуму середньоквадратичної помилки фільтрації;

Безпосереднє оцінювання короткочасного амплітудного спектра

мови.

Закінчені системи шумоподавлення не ідеальні - вони видаляють

частину корисного сигналу разом з шумом і навіть вносять свої власні

характерні шуми. Чим більше корисний сигнал відділений від шуму - тим

ефективніше шум можна видалити без пошкодження матеріалу. Тому сильно

зашумлені записи складно очищати від шуму без внесення в сигнал

артефактів. Такі артефакти виражаються в: ефекті гребенчатого фільтра,

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

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

Гордон Рейс з Cedar пояснював: «Проблема полягає в тому, що реверберація

зливається з шумом. А дуже велику частину просторової інформації ми

отримуємо від реверберації. Тому, видаляючи реверберацію разом з шумом -

ви видаляєте стіни, підлогу і стелю приміщення». Щоб зрозуміти наявність

такої проблеми - постійно потрібно порівнювати вихідний сигнал з

результатом шумоподавлення. Навіть якщо все здається нормальним -

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

видаливши дратівливий шум, можливо, буде необхідно реконструювання

самих верхів.

Що відрізняє гарне шумоподавлення від поганого - це знаходження

правильного балансу, оскільки видалений шум може приховувати інший

шум, який раніше не було чутно, і який може створити набагато більшу

проблему, ніж попередній видалений. У будь-якому випадку потрібно дуже

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

більше самого звукового сигналу.

Зм. Арк. № докум. Підп. Дата

Арк.

16ІАЛЦ.045490.004 ПЗ

Page 17: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

На рисунку 1.3 представлений звуковий сигнал з шумом, на рисунку

1.4 - сигнал, після застосування системи шумоподавлення.

Рисунок 1.3 – Звуковий сигнал з шумом

Рисунок 1.4 – Сигнал після обробки

1.4 Обґрунтування теми дипломного проекту

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

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

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

робити певні налаштування та власне виконувати необхідні процеси

фільтрації голосових даних.

Отже, систему необхідно розробити, використовуючи сучасну мову

програмування. Для розробки системи було обрано мову програмування

Python. Для підготовки власне голосових даних було обрано набір відкритих

бібліотек ffmpeg та модуль мови Python numpy. Фільтрація звукових даних

буде виконуватись з використанням перетворення Фур’є та алгоритму

Зм. Арк. № докум. Підп. Дата

Арк.

17ІАЛЦ.045490.004 ПЗ

Page 18: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

фільтрації звуку за допомогою спектрального віднімання. Для побудови

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

для мови Python – PyQt.

У якості вхідних даних для системи буде використовуватись звуковий

потік з обраного користувачем звукозаписуючого пристрою. Вихідні дані

будуть оформлені у вигляді звукових файлів формату wav.

Зм. Арк. № докум. Підп. Дата

Арк.

18ІАЛЦ.045490.004 ПЗ

Page 19: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

2. ХАРАКТЕРИСТИКА ІНСТРУМЕНТАРІЮ ТА ВИКОРИСТАНИХ

ПРОГРАМНИХ БІБЛІОТЕК

2.1 Опис інструментарію

Для розробки системи використано мову програмування Python.

Python - високорівнева мова програмування загального призначення,

орієнтована на підвищення продуктивності розробника і читання коду.

Синтаксис ядра Python мінімалістичний. У той же час стандартна бібліотека

включає великий обсяг корисних функцій.

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

структурне, об'єктно-орієнтоване, функціональне, імперативне і аспектно-

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

автоматичне керування пам'яттю, повна інтроспекція, механізм обробки

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

структури даних. Код в Python організовується у функції та класи, які можуть

об'єднуватися в модулі (вони в свою чергу можуть бути об'єднані в пакети).

Еталонної реалізацією Python є інтерпретатор CPython, що підтримує

більшість активно використовуваних платформ. Він поширюється під

вільною ліцензією Python Software Foundation License, що дозволяє

використовувати його без обмежень в будь-яких додатках, включаючи

пропрієтарні. Є реалізації інтерпретаторів для JVM (з можливістю

компіляції), MSIL (з можливістю компіляції), LLVM та інших. Проект PyPy

пропонує реалізацію Python з використанням JIT-компіляції, яка значно

збільшує швидкість виконання Python-програм.

Python – мова програмування, що активно розвивається, нові версії (з

додаванням / зміною мовних властивостей) виходять приблизно раз в два з

половиною роки. Внаслідок цього і деяких інших причин на Python відсутні

стандарт ANSI, ISO або інші офіційні стандарти, їх роль виконує CPython.

Зм. Арк. № докум. Підп. Дата

Арк.

19ІАЛЦ.045490.004 ПЗ

Page 20: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Для побудови користувацького інтерфейсу у системі використовується

бібліотека Qt.

Qt –  це багатоплатформовий інструментарій розробки ПЗ на мові

програмування C++. Є також «прив'язки» до багатьох інших мов

програмування: Python - PyQt, PySide; Ruby - QtRuby; Java - Qt Jambi; PHP -

PHP-Qt і інші.

З часу своєї появи в 1996 році бібліотека Qt лягла в основу тисяч

успішних проектів у всьому світі. Крім того, Qt є фундаментом популярного

робочого середовища KDE, що входить до складу багатьох дистрибутивів

Linux.

Qt дозволяє запускати написане з його допомогою програмне

забезпечення в більшості сучасних операційних систем шляхом простої

компіляції програми для кожної операційної системи без зміни вихідного

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

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

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

XML. Qt є повністю об'єктно-орієнтованим, легко розширюваним і підтримує

техніку компонентного програмування.

Відмітна особливість Qt від інших бібліотек - використання Meta Object

Compiler (MOC) - попередньої системи обробки вихідного коду. MOC

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

поняття, як слоти і сигнали. Крім того, це дозволяє зробити код більш

лаконічним. Утиліта MOC шукає в заголовних файлах на C++ опису класів,

що містять макрос Q_OBJECT, і створює додатковий вихідний файл на C++,

що містить метаоб'ектний код.

Qt дозволяє створювати власні плагіни і розміщувати їх безпосередньо

в панелі візуального редактора. Також існує можливість розширення звичної

функціональності віджетів, пов'язаної з розміщенням їх на екрані,

відображенням, перемальовуванням при зміні розмірів вікна.

Зм. Арк. № докум. Підп. Дата

Арк.

20ІАЛЦ.045490.004 ПЗ

Page 21: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

інтерфейсу «Qt Designer», що дозволяє створювати діалоги і форми в режимі

WYSIWYG. У постачання Qt є «Qt Linguist» - графічна утиліта, що дозволяє

спростити локалізацію і переклад програми на багато мов; і «Qt Assistant» -

довідкова система Qt, що спрощує роботу з документацією по бібліотеці, а

також дозволяє створювати крос-платформену довідку для

розроблювального на основі Qt ПО. Починаючи з версії 4.5.0 в комплект Qt

включено середовище розробки «Qt Creator», яка включає в себе редактор

коду, довідку, графічні засоби «Qt Designer» і можливість налагодження

додатків. «Qt Creator» може використовувати GCC або Microsoft VC++ як

компілятор і GDB як відладчик. Для Windows версій бібліотека

комплектується компілятором, заголовними і об'єктними файлами MinGW.

PyQt - набір «прив'язок» графічного фреймворка Qt для мови

програмування Python, виконаний у вигляді розширення Python.

PyQt працює на всіх платформах, підтримуваних Qt: Linux та інші

UNIX-подібні ОС, Mac OS X і Windows. Існує 2 версії: PyQt5, що підтримує

Qt 5, і PyQt4, що підтримує Qt 4. PyQt поширюється під ліцензіями GPL (2 і 3

версії) і комерційної.

PyQt практично повністю реалізує можливості Qt. А це понад 600

класів, більше 6000 функцій і методів, включаючи:

існуючий набір віджетів графічного інтерфейсу;

стилі віджетів;

доступ до баз даних за допомогою SQL (ODBC, MySQL,

PostgreSQL, Oracle);

QScintilla, заснований на Scintilla віджет текстового редактора;

підтримку інтернаціоналізації (i18n);

парсер XML;

підтримку SVG;

інтеграцію з WebKit, рушієм рендеринга HTML;

Зм. Арк. № докум. Підп. Дата

Арк.

21ІАЛЦ.045490.004 ПЗ

Page 22: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

підтримку відтворення відео і аудіо.

PyQt також включає в себе Qt Designer (Qt Creator) - дизайнер

графічного інтерфейсу користувача. Програма pyuic генерує Python код з

файлів, створених в Qt Designer. Це робить PyQt дуже корисним

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

графічні елементи управління, написані на Python, в Qt Designer.

Раніше PyQt поставлявся разом із середовищем розробки Eric,

написаної на PyQt. Eric має вбудований відладчик і може бути використана

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

проекту.

Для маніпуляції зі звуковими файлами у системі використовується

модуль numpy.

Numpy - розширення мови Python, що додає підтримку великих

багатовимірних масивів і матриць, разом з великою бібліотекою

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

Numpy — відкрите програмне забезпечення і має багато розробників.

Оскільки Python — інтерпретована мова, математичні алгоритми, часто

працюють в ньому набагато повільніше ніж у компільованих мовах, таких як

C або навіть Java. NumPy намагається вирішити цю проблему для великої

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

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

Таким чином будь-який алгоритм який може бути виражений в основному як

послідовність операцій над масивами і матрицями працює також швидко як

еквівалентний код написаний на C.

NumPy можна розглядати як гарну вільну альтернативу MATLAB,

оскільки мова програмування MATLAB зовні нагадує NumPy: обидві вони

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

поки більшість операцій проводяться над масивами або матрицями, а не над

скалярами. Перевага MATLAB у великій кількості доступних додаткових

Зм. Арк. № докум. Підп. Дата

Арк.

22ІАЛЦ.045490.004 ПЗ

Page 23: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

тулбоксів, включаючи такі як пакет Simulink. Основні пакети, що

доповнюють NumPy, це: SciPy — бібліотека, що додає більше MATLAB-

подібної функціональності; Matplotlib — пакет для створення графіки в стилі

MATLAB. Внутрішньо як MATLAB, так і NumPy базується на

бібліотеці LAPACK, призначеної для вирішення основних задач лінійної

алгебри.

FFmpeg — це комплекс вільних комп'ютерних програм та програмних

бібліотек для маніпуляцій з цифровими відео- та аудіо-матеріалами — запис,

конвертація та пакування у різні формати контейнерів. Він включає

libavcodec - бібліотеку кодування і декодування аудіо та відео і libavformat -

бібліотеку мультиплексування і демультиплексування в медіаконтейнера.

Назва походить від назви експертної групи MPEG і FF, що означає fast

forward.

Проект славиться наявністю різних аудіо та відео кодеків.

Багато FFmpeg розробників працюють також над проектом MPlayer, а

FFmpeg розміщений на сервері проекту MPlayer.

Інтерфейс командного рядка має інтуїтивний вигляд.

FFmpeg було розроблено під Linux, але він успішно працює й у Apple

Mac OS X та Microsoft Windows.

FFmpeg складається з наступних компонентів:

ffmpeg - утиліта командного рядка для конвертації відео файлу з

одного формату в інший. З її допомогою можна також захоплювати

відео в реальному часі з TV-карти.

ffserver - HTTP- (RTSP в даний час розробляється) потоковий сервер

для відео- або радіомовлення.

ffplay - простий медіаплеєр, заснований на SDL і бібліотеках

FFmpeg.

Зм. Арк. № докум. Підп. Дата

Арк.

23ІАЛЦ.045490.004 ПЗ

Page 24: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

libavcodec - бібліотека з усіма аудіо / відеокодеками. Більшість

кодеків були розроблені «з нуля» для забезпечення його

оптимальної роботи.

libavformat - бібліотека з мультиплексорами і демультиплексор для

різних аудіо- і відеоформатів.

libavutil - допоміжна бібліотека зі стандартними загальними

подпрограммами для різних компонентів ffmpeg. Включає Adler-32,

CRC, MD5, SHA1, LZO-декомпресор, Base64-кодер / декодер, DES-

шифрувальник / розшифровує, RC4-шифрувальник / розшифровує і

AES-шифрувальник / розшифровує.

libpostproc - бібліотека стандартних підпрограм обробки відео.

libswscale - бібліотека для масштабування відео.

libavfilter - заміна vhook, яка дозволяє змінювати відеопотік між

декодером і кодером «на льоту».

2.2 Загальна характеристика вхідних та вихідних форматів

даних

Основним форматом даних, з яким працює розроблена система, є

аудіоформат wav.

WAV — формат аудіофайла розроблений компаніями Microsoft та IBM.

WAVE базується на форматі RIFF, поширюючи його на інформацію про такі

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

каналів. WAV як і RIFF передбачався для комп'ютерів IBM PC, тому

всі змінні записані у форматі little endian. Відповідником WAV для

комп'ютерів PowerPC є AIFF.

Хоча файли WAVE можуть бути записані за допомогою будь-

яких кодеків аудіо, зазвичай використовується нестиснений PCM, який

призводить до великих обсягів файлу (близько 172 кБ на секунду для CD-

Зм. Арк. № докум. Підп. Дата

Арк.

24ІАЛЦ.045490.004 ПЗ

Page 25: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

якості). Іншим недоліком файлу є обмеження обсягу до 4 ГБ, через 32-бітну

змінну. Формат WAV був частково витіснений стисненими форматами,

проте, завдяки своїй простоті, надалі знаходить широке використання в

процесі редагування звуку та на переносних аудіопристроях, як програвачі та

цифрові диктофони.

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

розділені області. Одна з них - заголовок файлу, інша - область даних. У

заголовку файлу зберігається інформація про:

Розмір файлу.

Кількості каналів.

Частоті дискретизації.

Кількості біт в семпли (цю величину ще називають глибиною

звучання).

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

розповісти про область даних і оцифровування звуку. Звук складається з

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

обумовлений тим, що комп'ютер може відтворювати в будь-який короткий

проміжок часу звук певної амплітуди (гучності) і цей короткий момент

далеко не нескінченно короткий. Тривалість цього проміжку і визначає

частота дискретизації. Наприклад, у нас файл з частотою дискретизації 44.1

kHz, це означає, що той короткий проміжок часу дорівнює 1/44100 секунди

(випливає з розмірності величини Гц = 1 / с). Сучасні звукові карти

підтримують частоту дискретизації до 192 kHz.

Що стосується амплітуди (гучності звуку в короткому проміжку часу).

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

займає в пам'яті (файлі) 8, 16, 24, 32 біт (теоретично можна і більше). Як

відомо, 8 біт = 1 байту, отже, якась одна амплітуда в якийсь короткий

проміжок часу в пам'яті (файлі) може займати 1, 2, 3, 4 байта відповідно.

Зм. Арк. № докум. Підп. Дата

Арк.

25ІАЛЦ.045490.004 ПЗ

Page 26: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Таким чином, чим більше число займає місця в пам'яті (файлі), тим більше

діапазон значень для цього числа, а значить і для амплітуди.

1 байт - 0..255

2 байта - 0..65 535

3 байта - 0..16 777 216

4 байта - 0..4 294 967 296

У моно варіанті значення амплітуди розташовані послідовно. У стерео

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

правого, потім знову для лівого і так далі.

Зм. Арк. № докум. Підп. Дата

Арк.

26ІАЛЦ.045490.004 ПЗ

Page 27: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

3. ОПИС РОЗРОБЛЕНИХ АЛГОРИТМІВ

3.1 Вибір алгоритму фільтрації голосових даних

У сучаних системах фільтрації звукових сигналів найбільш вживаними

є наступні алгоритми:

Метод спектрального віднімання;

Активне шумоподавлення;

Обмеження частот, що не наявні у голосі людини.

Метод спектрального віднімання - суть методу в тому, що з

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

заздалегідь (або виділяється автоматично) спектр чистого шуму. Число

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

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

ведеться обробка, становитиме одиниці Герц. Це дозволяє ефективно

фільтрувати гармоніки корисного звукового сигналу від шумових складових.

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

шуму

Активне шумоподавлення - суть полягає в тому, щоб отримувати

синхронний сигнал, що містить тільки шум (без вокалу, голоси і іншого

цікавить нас звуку). Далі цей сигнал інвертується в так звану протифазу, і

накладається на шумний запис. В результаті шум і антишум пригнічують

один одного, і на виході маємо чистий запис. В умовах розробки не має

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

лише один мікрофон, тому цей метод не використовується у розробленій

системі.

Зм. Арк. № докум. Підп. Дата

Арк.

27ІАЛЦ.045490.004 ПЗ

Page 28: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Обмеження частот, що не наявні у голосі людини – суть полягає у

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

Недолік методу – шум на частотах, що співпадають з діапазоном частот

голосу людини залишається.

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

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

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

З приходом цифрової обробки сигналів в звукорежисуру і зі

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

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

В 1988..1990 роках з'явилися перші системи, що дозволяють виконати

алгоритм спектрального віднімання (рис. 3.2.5) в реальному часі - Sonic

NoNoise і CEDAR.

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

точніше - в спектрограму, тобто існує залежність амплітуди від частоти і

часу. Далі користувач вручну вказує в звуці фрагмент чистого шуму, за яким

алгоритм обчислює спектр шуму. Відомо, що спектр від суми сигналу і шуму

дорівнює сумі спектрів сигналу і шуму. Тому для очищення сигналу від

шуму здійснюється спектральне віднімання амплітудного спектра шуму з

амплітудного спектра мовного сигналу в кожен момент часу. Фазовий спектр

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

випадковості шуму немає алгоритму що дозволить «очистити» і фазовий

спектр. Після такого вирахування по очищеній спектрограмі сигналу

проводитися синтез результуючого сигналу.

Даний алгоритм має схожість з алгоритмом багатополосного гейту,

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

пропущенні інших сигналів без змін. Спектрограму можна трактувати як

Зм. Арк. № докум. Підп. Дата

Арк.

28ІАЛЦ.045490.004 ПЗ

Page 29: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

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

І над кожною такою частотної смугою проводиться операція вирахування з її

амплітуди деякої константи - рівня шуму в цій смузі. Коли рівень сигналу в

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

в смузі. Коли рівень сигналу близький до рівня шуму, зменшення рівня

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

з «м'яким порогом». Тому весь процес спектрального віднімання можна

розглядати як багатосмуговий гейт з великим числом порогів і «м'яким

порогом».

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

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

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

Розглянемо основні етапи алгоритму:

1. Вхідний зашумленний сигнал y[n], що складається з чистого

мовного сигналу x[n] і некорельованого адитивного шуму d[n]:

y [ n ]=x [n ]+d [ n ] . (1)

Зм. Арк. № докум. Підп. Дата

Арк.

29ІАЛЦ.045490.004 ПЗ

Page 30: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 3.1 – Чистий сигнал x[n]

Рисунок 3.2 – Зашумлений голосовий сигнал y[n]

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

Рисунок 3.3 – Сигнал з перекриттям

3. Застосовуємо дискретне перетворення Фур'є:

(2)

Зм. Арк. № докум. Підп. Дата

Арк.

30ІАЛЦ.045490.004 ПЗ

Page 31: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Y ( f )=∑ y [ n ]¿e− j∗2∗π∗k∗n

N .

Рисунок 3.4 – Спектр зашумленого сигналу (1 фрейм)

4. Проводимо розрахунок шумової огинаючої:Noise=p∗|d (i−1)|+(1−p )∗|d (i)|, (3)

5. На даному етапі відбувається віднімання шумової

огинаючої із сигналу:

S=Y [ f ]−∝∗Noise [ f ],(4)

де ∝ – коефіцієнт подавлення шуму, прийнятий за «1».

Рисунок 3.5 – Схема спектрального віднімання

6. Відновлення сигналу здійснюється за допомогою зворотнього дискретного перетворення Фур'є:

Зм. Арк. № докум. Підп. Дата

Арк.

31ІАЛЦ.045490.004 ПЗ

Page 32: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

S [ n ]=∑ S [ n ]∗ej∗2∗π∗k∗n

N , (5)

3.3 Дискретне перетворення Фур’є

Дискретне перетворення Фур'є (ДПФ) - один з поширених інструментів

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

науки і техніки. При цьому розроблено безліч швидких алгоритмів для

високої обчислювальної ефективності ДПФ.

В даному розділі буде надано особливу увагу переходу від

безперервного інтеграла Фур'є до дискретно-тимчасового перетворення Фур'є

(ДВПФ) і, далі, до дискретного перетворення Фур'є. Розуміння даного

переходу дозволить краще зрозуміти властивості ДПФ і сутність цифрового

спектрального аналізу в цілому.

Пара безперервного перетворення Фур'є (інтеграл Фур'є) має вигляд:

S (ω )=∫−∞

s ( t )∗exp (− jωt ) dt ;

s ( t )= 12 π

∗∫−∞

S (ω)∗exp ( jωt ) dω;

(1)

де S (ω ) - спектр сигналу s (t ) (в загальному випадку і сигнал і спектр -

комплексні).

Вирази для прямого ДПФ і зворотного дискретного перетворення Фур'є

(ОДПФ) мають вигляд:

Sd ( k )=∑n=0

N−1

s (n )∗exp(− j 2 πN

nk) , k=0 … N−1

s (n )= 1N ∑

k=0

N−1

Sd (k )∗exp( j 2 πN

nk ) , n=0 …N−1

(2)

ДПФ ставить у відповідність Nвідлікам сигналу s (n ) , n=0 …N−1 N

відліків комплексного спектру Sd ( k ) ,k=0… N−1. Тут і далі змінна n індексує

тимчасові відліки сигналу, а змінна k індексує спектральні відліки ДПФ.

Зм. Арк. № докум. Підп. Дата

Арк.

32ІАЛЦ.045490.004 ПЗ

Page 33: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Як в безперервному, так і в дискретному випадках у виразах для

зворотного перетворення є нормувальний коефіцієнт. У разі інтеграла Фур'є

це 12π , в разі ОДПФ - 1

N .

Нормувальний коефіцієнт необхідний для коректного масштабування

сигналу з частотною області в тимчасову. Нормувальний коефіцієнт зменшує

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

збігалася з амплітудою вихідного сигналу. Якщо послідовно розрахувати

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

перетворення Фур'є, то результат зворотного перетворення повинен повністю

збігатися з вихідним сигналом.

Дискретизація сигналу за часом. Дискретно-тимчасове

перетворення Фур'є.

Розглянемо дискретний сигнал Sd ( t ) як результат множення

безперервного сигналу s (t ) на решітчасту функцію:

Sd ( t )=s (t )∗∑n=0

N−1

δ (t−n∗Δt )=∑n=0

N −1

s (t )∗δ ( t−n∗Δt )

(3)

де δ (t ) - дельта-функція:

δ (t )= f ( x )={∞ ,∧t=00 ,∧t ≠ 0

(4)

Δt - інтервал дискретизації. Графічно процес дискретизації можна

уявити, як це показано на рисунку 3.6.

Зм. Арк. № докум. Підп. Дата

Арк.

33ІАЛЦ.045490.004 ПЗ

Page 34: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 3.6 – Процес дискретизації сигналу

Обчислимо перетворення Фур'є дискретного сигналу Sd (t ), для цього підставимо вираз (3) в вираз для перетворення Фур'є (1):

Sd (ω )=∫−∞

Sd ( t )∗exp (− jωt ) dt

¿∫−∞

∑n=0

N −1

s ( t )∗δ (t−n∗Δt )∗exp (− jωt)dt

(5)

Поміняємо місцями операції підсумовування і інтегрування і

використовуємо фільтруючу властивість дельта-функції:

∫−∞

s (t )∗δ (t−τ ) dt=s (τ)

(6)

Тоді вираз (5) з урахуванням (6) набуває вигляду:

Sd (ω )=∫−∞

∑n=0

N−1

s (t )∗δ ( t−n∗Δt )∗exp (− jωt )dt=∑n=0

N −1

s (n∗Δt )∗exp (− jωn∗Δ t)

Зм. Арк. № докум. Підп. Дата

Арк.

34ІАЛЦ.045490.004 ПЗ

Page 35: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

(7)

Таким чином, ми позбулися інтегрування в нескінченних межах,

замінивши його кінцевим підсумовуванням комплексних експонент.

Комплексні експоненти exp (− jωn Δt ) виразу (7) є періодичними

функціями з періодом:

Ω (n )= 2 πn∗Δt

=2 π∗n∗F s , радс

, n=1 … N−1

(8)

де F s=1

Δt - частота дискретизації сигналу (Гц).

Необхідно відзначити, що n=0 виключено з виразу (8), так як при n=0

комплексна експонента дорівнює одиниці. Максимальний період повторення

спектра Sd (ω ) буде приn=1, в цьому випадку він дорівнює

Ωmax=Ω (1 )=2 πΔt

=2 π∗F s рад/с.

Таким чином, спектр Sd (ω ) дискретного сигналу Sd ( t ), є 2π∗F s -

періодична функція циклічної частоти ω, відома як (7). Якщо ми введемо

нормування частоти дискретизації F s=1 Гц, то (7) переходить до вираження

дискретно-часового перетворення Фур'є (ДВПФ):

S (ωн )=∑n=0

N−1

s (n )∗exp (− j ωн n)

(9)

ДВПФ використовує тільки індекси відліків вхідного сигналу s(n) при

частоті дискретизації F s=1 Гц. В результаті ДВПФ ми отримаємо 2 π

періодичну функцію Sd ( ωн )= ωF s

.

Оскільки спектр дискретного сигналу - періодична функція, то можна

розглядати тільки один період повторення спектра Sd (ω ) при ω=[0,2 π∗F s ] рад/с

або Sd (f ) при f =[0 , F s ] Гц.

Повторення сигналу в часі. Дискретне перетворення Фур'є.

Зм. Арк. № докум. Підп. Дата

Арк.

35ІАЛЦ.045490.004 ПЗ

Page 36: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Для програмної реалізації алгоритмів цифрової обробки потрібні як

дискретні відліки сигналу, так і дискретні відліки спектру. Відомо що

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

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

Фур'є періодичного сигналу. Значить, щоб отримати дискретний спектр,

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

даного сигналу в часі нескінченну кількість разів з деяким періодом T . Тоді

спектр періодичного сигналу буде містити дискретні гармоніки, кратні

Δ ω=2 πt рад/c.

Графічно процес повторення сигналу в часі представлений на рисунку

3.7.

Рисунок 3.7 – Повторення сигналу в часі

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

деякий період T .

Повторювати сигнал можна з різним періодом T , однак необхідно, щоб

період повторення був більше або дорівнює тривалості сигналу T ≥ N∗Δt, щоб

сигнал і його періодичні повторення не перекривалися в часі. При цьому

мінімальний період повторення сигналу T min, при якому сигнал і його

повторення не накладаються один на одного, дорівнюєT min=N∗Δ t , сек .

(10)

Повторення сигналу з мінімальним періодом T min=N∗Δ t показано на

рисунку 3.8.

Зм. Арк. № докум. Підп. Дата

Арк.

36ІАЛЦ.045490.004 ПЗ

Page 37: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 3.8 – Повторення сигналу з мінімальним періодом

При повторенні сигналу з мінімальним періодом T min отримаємо

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

Δ ω= 2πT min

= 2πN∗Δt

, рад /с .

(11)

Таким чином, ми можемо продескритизувати спектр Sd (ω ) дискретного

сигналу s(n) на одному періоді повторення 2π∗F s з кроком Δ ω= 2 πN∗Δt і

отримаємо

2π∗F s

Δω=

2 πΔt2 π

N∗Δ t

=N

(12)

відліків спектру.

Врахуємо вищесказане в виразі (7):

Sd ( k∗Δ ω)=∑n=0

N −1

s (n∗Δt )∗exp (− j∗n∗Δt∗k∗Δω )=∑n=0

N−1

s (n∗Δt )∗exp (− j∗n∗Δ t∗k∗2 πN∗Δt

)=∑n=0

N −1

s ( n∗∆t )∗exp (− j∗2πN

∗n∗k) , k=0 … N−1

(13)

Якщо опустити в виразі (13) крок дискретизації за часом Δt і по частоті

Δω, то отримаємо остаточний вираз для ДПФ:

Sd ( k )=∑n=0

N−1

s (n )∗exp(− j∗2 πN

∗n∗k ) , k=0 …N−1

(14)

Зм. Арк. № докум. Підп. Дата

Арк.

37ІАЛЦ.045490.004 ПЗ

Page 38: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

ДПФ ставить у відповідність N відлікам дискретного сигналу s(n), N

відліків дискретного спектра Sd ( k ), при цьому передбачається, що і сигнал і

спектр є періодичними і аналізуються на одному періоді повторення.

Зворотне дискретне перетворення Фур'є

Аналогічно (3) можна записати вираз для дискретного спектра через

решітчасту функцію:

SD (ω)=∑n=0

N −1

Sd (ω)∗δ (ω−k∗Δω)

(15)

де SD (ω) - дискретні відліки спектру Sd (ω ) на одному періоді повторення 2 π∗F s рад/с.

Підставимо (15) у вираз для зворотного перетворення Фур'є (1):

s (t )=C∗∫−∞

SD (ω )∗exp ( jωt ) dω=C∗∫−∞

∑n=0

N−1

Sd (ω)∗δ (ω−k∗Δ ω)∗exp ( jωt )dω

(16)

де C - коефіцієнт пропорційності, завдання якого - забезпечити рівність

по амплітуді вихідного дискретного сигналу і результату ОДПФ. Коефіцієнт

пропорційності C враховує коефіцієнт 12 π зворотного перетворення Фур'є.

Поміняємо місцями операції підсумовування і інтегрування і врахуємо

фільтруючу властивість дельта-функції:

s (t )=C∗∑n=0

N −1

∫−∞

Sd (ω)∗δ (ω−k∗Δ ω )∗exp ( jωt )dω=C∗∑n=0

N−1

Sd ( k∗Δ ω)∗exp ( j∗k∗Δω∗t)

(17)

Візьмемо дискретні відліки s(t ) через інтервал Δt= 1F s

сек, тоді (17)

можно записати:

s (n∗Δt )=C∗∑n=0

N−1

Sd (k∗Δ ω)∗exp ( j∗k∗Δω∗n∗Δt ) ,n=0 … N−1

(18)

Врахуємо (11) і отримаємо:

Зм. Арк. № докум. Підп. Дата

Арк.

38ІАЛЦ.045490.004 ПЗ

Page 39: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

s (n∗Δt )=C∗∑n=0

N−1

Sd (k∗Δ ω)∗exp( j∗2 πN

∗n∗k ) , n=0 …N−1

(19)

Опустивши в (19) інтервали дискретизації по частоті і по часу,

отримаємо вираз для ОДПФ, в якому залишився невідомим коефіцієнт

пропорційності C:

s (n )=C∗∑n=0

N −1

Sd (k )∗exp( j∗2 πN

∗n∗k ) , n=0 …N−1

(20)

Для того щоб розрахувати коефіцієнт C, необхідно в вираз для ОДПФ

(20) підставити вираз для ДПФ (14):

s (n )=C∗∑k=0

N −1

∑m=0

N−1

s (m )∗exp(− j∗2 πN

∗m∗k )∗exp ( j∗2 πN

∗n∗k ) ,n=0 … N−1

(21)

Поміняємо місцями в (21) порядок підсумовування і об'єднаємо

експоненти:

s (n )=C∗∑m=0

N −1

s (m )∗∑k=0

N −1

exp( j∗2πk

∗(n−m )∗k ) , n=0…N−1

(22)

Розглянемо докладніше суму комплексних експонент входить в (22).

При m=n маємо:

∑k =0

N−1

exp( j∗2 πN

∗(n−n )∗k )=∑k=0

N −1

1=N

(23)

Тепер розглянемо цю ж суму при m≠ n.

Нехай L=n−m, тоді:

∑k =0

N−1

exp ¿¿

(24)

3.4 Інтерфейсні алгоритми

Зм. Арк. № докум. Підп. Дата

Арк.

39ІАЛЦ.045490.004 ПЗ

Page 40: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Як зазначено вище, інтерфейсна частина системи розроблена за

допомогою бібліотек Qt та PyQt.

Розглянемо реалізацію основних алгоритмів.import reimport sys

import subprocessfrom PyQt5.QtWidgets import *

from PyQt5.QtCore import *

Наведений код імпортує необхідні бібліотеки Python для роботи

програмного продукту (re – бібліотека роботи з регулярними виразами, sys –

для роботи з функціями операційної системи, subprocess – для виклику

підпрограмм), а також ключові модулі бібліотеки PyQt.if __name__ == '__main__':

proc = subprocess.run(['arecord', '-l'], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL)

micros = re.findall(r'(card \d*: .*?)\n', proc.stdout.decode('utf-8'), re.S)

app = QApplication(sys.argv) w = MainWindow(micros)

sys.exit(app.exec_())

Код на першому рядку (if __name__ == '__main__':) перевіряє, що файл з

кодом програми був запущений, а не імпортований з іншого файлу Python.

На другому рядку (proc = subprocess.run(['arecord', '-l'],

stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL))

відбувається виклик підпрограмми arecord з ключем “-l” для того, щоб

отримати список доступних для запису звукозаписуючих пристроїв. Приклад

виводу цієї підпрограми:**** List of CAPTURE Hardware Devices ****card 1: Generic [HD-Audio Generic], device 0: ALC3234 Analog [ALC3234 Analog]

Subdevices: 1/1 Subdevice #0: subdevice #0

card 2: Headset [Siberia Raw Prism Headset], device 0: USB Audio [USB Audio] Subdevices: 0/1

Subdevice #0: subdevice #0

Бачимо 2 доступних пристрої. За допомогою рядка 3 (micros =

re.findall(r'(card \d*: .*?)\n', proc.stdout.decode('utf-8'), re.S)), де

Зм. Арк. № докум. Підп. Дата

Арк.

40ІАЛЦ.045490.004 ПЗ

Page 41: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

використаємо регулярний вираз, отримаємо зручні імена пристроїв без зайвої

службової інформації. Вони необхідні нам для ініціалізації динамічного

списку вибору звукозаписуючого пристрою.

Далі програма ініціює екземпляр QApplication (основний класс програми у

бібліотеці Qt) (app = QApplication(sys.argv)). Потім створює нове вікно (w =

MainWindow(micros)) та запускає цикл подій Qt (sys.exit(app.exec_())).

Варто зазначити, що для створення необхідного інтерфейсу та

з’єднання інтерфейсу с розробленими алгоритмами, необхідно створити свій

клас з наслідуванням класу QWidget. Саме таким класом є класс

MainWindow.class MainWindow(QWidget):

На початку ініціалізації цей клас задає почтакові параметри вікна

(розмір, позиція на моніторі, заборона масштабування та назва вікна): self.setFixedSize(500, 500) self.move(300, 300)

self.setWindowTitle('Noise reducer')

Далі налаштовує динамічний список вибору звукозаписуючого

пристрою: self.combobox = QComboBox(self)

self.combobox.addItems(micros) self.combobox.move(50, 50)

self.combobox.setMaximumWidth(400)

Наступним кроком є налаштування головної кнопки програми: self.btn = QPushButton('Record noise', self) self.btn.move(150, 100)

self.btn.setMinimumWidth(200) self.btn.clicked.connect(button_noise_callback)

Потім йде налаштування текстового поля: self.label = QLabel('Press button to record pure noise', self)

self.label.setAlignment(Qt.AlignCenter) self.label.move(50, 150)

self.label.setMinimumWidth(400)

Та, у самому кінці, виклик функції, що відтворює на моніторі

налаштоване вікно: self.show()

Зм. Арк. № докум. Підп. Дата

Арк.

41ІАЛЦ.045490.004 ПЗ

Page 42: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Розглянемо функцію, яка викликається при натиску на кнопку запису

шуму:def button_noise_callback(): nonlocal self

def on_process_end(): nonlocal self

def on_process_end_inner(): self.btn.setText('Record voice')

self.btn.setEnabled(True) self.btn.clicked.disconnect()

self.btn.clicked.connect(button_voice_callback) self.label.setText('Press button to record voice')

self.inner_process = QProcess() self.inner_process.finished.connect(on_process_end_inner)

self.card_num = int(re.match(r'^card (?P<card_num>\d*): .*$', self.combobox.currentText()).groupdict()['card_num'])

self.combobox.setEnabled(False) self.btn.setEnabled(False)

self.label.setText('Please wait 5 sec for noise to be recorded') self.process = QProcess()

self.process.finished.connect(on_process_end) self.process.start('ffmpeg -f alsa -i hw:{0} -t 5 -y

noise.wav'.format(str(self.card_num)))

Ця функція регулює значну кількість процесів:

Зміна стану динамічного списку, кнопки, текстового поля;

Запуск бібліотеки ffmpeg для запису звуку з шумом;

Збереження звуку шуму у звуковий файл;

Запуск алгоритмів спектрального розкладу файлу з шумом.

Також розглянемо функцію, яка викликається при натиску на кнопку

запису голосу диктора:def button_voice_callback():

nonlocal self def button_voice_end_callback():

self.voice_process.write('q'.encode())

Зм. Арк. № докум. Підп. Дата

Арк.

42ІАЛЦ.045490.004 ПЗ

Page 43: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

def on_process_end():

nonlocal self def on_process_end_inner():

self.btn.setText('Record voice') self.btn.setEnabled(True)

self.btn.clicked.disconnect() self.btn.clicked.connect(button_voice_callback)

self.label.setText('Press button to record voice') self.btn.setEnabled(False)

self.label.setText('Wait for noise reducing') self.voice_inner_process = QProcess()

self.voice_inner_process.finished.connect(on_process_end_inner) def timer_func():

self.btn.setEnabled(True) self.btn.setText('Stop recording')

self.btn.setEnabled(False) self.btn.clicked.disconnect()

self.btn.clicked.connect(button_voice_end_callback) self.label.setText('Press button to stop recording')

self.voice_process = QProcess() self.voice_process.finished.connect(on_process_end)

Ця функція також регулює значну кількість процесів:

Зміна стану кнопки, текстового поля;

Запуск бібліотеки ffmpeg для запису звуку з голосом диктора;

Відстеження коректного закриття ffmpeg після натиску кнопки

закінчення запису;

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

та його фільтрації;

Запис голосу диктора з шумом та голосу диктора без шуму у звукові

файли.

4. ІНТЕРФЕЙСИ ТА АНАЛІЗ РОЗРОБЛЕНОЇ СИСТЕМИ

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

поставленим на початку розробки задачам. Використання системи можливо

Зм. Арк. № докум. Підп. Дата

Арк.

43ІАЛЦ.045490.004 ПЗ

Page 44: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

за допомогою консольного командного інтерфейсу або за допомогою

мінімалістичного зручного інтерфейсу користувача. Нижче зупинимось на

функціоналі та інтерфейсі докладніше.

Рисунок 4.1 – Початковий стан

На старті програми відкривається головне вікно (рисунок 4.1), на якому

відображені:

Інтерактивний список для обрання необхідного звукозаписуючого

пристрою (мікрофону);

Кнопка для початкового запису фонового шуму;

Текстове поле для відображення поточного стану програми.

Зм. Арк. № докум. Підп. Дата

Арк.

44ІАЛЦ.045490.004 ПЗ

Page 45: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 4.2 – Запис чистого шуму

Після натиснення на кнопку запису шуму інтерактивний список з

вибором звукозаписуючого пристрою заблокується, а програма запише 5

секунд чистого шуму у окремий звуковий файл у поточній робочій

директорії (noise.wav), та виконає спектральний розклад шуму за допомогою

дискретного перетворення Фур’є. Результат спектрального розкладу буде

записано у файл (noise.prof).

Зм. Арк. № докум. Підп. Дата

Арк.

45ІАЛЦ.045490.004 ПЗ

Page 46: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 4.3 – Готовність до запису звукового файлу з голосом диктора

Через 5 секунд користувач має змогу почати запис звукових файлів з

голосом диктора, натиснувши на кнопку запису голосу диктора.

Зм. Арк. № докум. Підп. Дата

Арк.

46ІАЛЦ.045490.004 ПЗ

Page 47: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 4.4 – Запис голосу диктора

Після натиснення на кнопку почнеться запис голосу диктора. Для

зупинки та збереження поточного запису необхідно натиснути на кнопку

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

звукового файлу обмежені лише системними характеристиками

персонального комп’ютера. Після натиснення на кнопку завершення запису

программа збереже запис у звуковий файл (voice.wav) у поточній директорії.

Також програма автоматично запустить алгоритми фільтрації та

шумоподавлення звуку для цього звукового файлу, і збереже очищений

результат у звуковий файл (voice_clean.wav).

Також програма повернеться у стан готовності запису наступного звуку

з голосу диктора, що надає змогу не записувати звук чистого шуму ще раз

(рис. 4.5).

Зм. Арк. № докум. Підп. Дата

Арк.

47ІАЛЦ.045490.004 ПЗ

Page 48: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

Рисунок 4.5 – Готовність до запису наступного звукового файлу з

голосом диктора

Зм. Арк. № докум. Підп. Дата

Арк.

48ІАЛЦ.045490.004 ПЗ

Page 49: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

ВИСНОВКИ

Отже, за час роботи над дипломним проектом була створена система

підготовки вхідних даних для системи розпізнавання ключових слів. При

створенні було використано провідні технології розробки програмного

забезпечення, такі як: мова програмування Python, бібліотека Qt та PyQt,

cторонній модуль numpy, набір відкритих бібліотек ffmpeg, а також алгоритм

розкладання звуку за допомогою перетворення Фур'є та алгоритм фільтрації

звуку за допомогою спектрального віднімання.

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

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

у вигляді звукових файлів формату wav.

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

на ринку. Використання даної розробки на практиці дозволить швидко та

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

голосових сигналів будь якого типу.

Зм. Арк. № докум. Підп. Дата

Арк.

49ІАЛЦ.045490.004 ПЗ

Page 50: ‘акалаври...  · Web viewІАЛЦ.045490.004 ПЗ. 14. Арк. Дата. П. і. дп. № докум. Арк. Зм. І. АЛЦ.045490.004 ПЗ. 14. Арк. Дата. П

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Advanced Digital Signal Processing and Noise Reduction: Databook / IEEE

Transactions on speech and audio processing/ Second Edition. – John Wiley &

Sons Ltd, 2000.

2. Adaptive Time-Frequency Resolution for Analysis and Processing of Audio:

Databook/ IEEE Transactions on speech and audio processing. – A. Lukin, J.

Todd, 2006.

3. Efficient SNR-based subband post-processing for residual noise reduction in

speech enhancement algorithms: Databook/ 18-th European Signal Processing

Conference. – F. Mustiere, M. Bouchard, 2010.

4. Лукин, А. Подавление широкополосного шума: история и новые

разработки/ А.Лукин // Звукорежиссер. – 2008.

5. Анализатор речевых и звуковых сигналов. Методы, алгоритмы и практика

/ Под ред. А.А.Петровского. –Мн.: Белпринт, 2009. – 456 С. 397–430.

6. Robust Speech Recognition and Understanding: Databook / Intel

Corporation. – M. Grimm, K. Kroschel, 2001.

7. Рабинер, Л.Р., Шафер, Р.В. Цифровая обработка речевых сигналов / Л.Р. Рабинер, Р.В. Шафер. – М.: Радио и связь, 1981. – С. 110-161.

8. Speech enhancement for non-stationary noise environments: Databook/ Israel, Lamar Signal Processing Ltd. – I. Cohen, B. Berdugo, 2002.

9. Noise Estimation for Speech Enhancement in Non-Stationary Environments –

A New Method. : Databook / World Academy of Science Engineering and

Technology 70, 2010.

Зм. Арк. № докум. Підп. Дата

Арк.

50ІАЛЦ.045490.004 ПЗ