Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМНА "Ефективність застосування ПММ для поб...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
690.8 Кб
Скачать

Розділ 3 розробка програм з голосовим інтерфейсом

3.1 Вибір інструментальної платформи

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

  1. JDK ( J2SE );

  2. Eclipse;

  3. Sphinx-4;

  4. JSAPI ( Included in Sphinx);

  5. Apache Ant.

Далі більш детально розглянемо:

  1. JDK – Java Development Kit (засіб розробки на Java). Java дозволяє створювати самодостатні програми для різних операційних систем як то Windows, Linux тощо. Крім того, в даний час Java широко застосовується для програмування різних пристроїв, наприклад, мобільних телефонів, на ній також пишуться комп'ютерні ігри для них, створюють також програми для інтернету – аплети і програми для серверів – сервлети та JSP (Java Server Pages).

Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти, доручено віртуальній машині. Передусім, Java розроблялась як платформо-незалежна мова, тому вона має менше низькорівневих можливостей для роботи з апаратним забезпеченням. За необхідності таких дій java дозволяє викликати підпрограми, написані іншими мовами програмування.

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

Об’єктно-орієнтована

Термін “об’єктно-орієнтована мова” для програміста означає, що при розробці додатків він оперує, головним чином, даними і засобами їхньої обробки, а не мислить на мові процедур (як робиться це в Pasсal і С).

Інтерпретована

Java – мова, що інтерпретується. Компилятор Java створює байт-код для віртуальної машини Java (JVM – Java Virtual Machine), а не “нинішній” машинний код для машини, на якій працює програма. Щоб запустити програму на Java, необхідно використати інтепретатор Java, що буде виконувати інструкції відкомпільованого байт-коду.

Архітектурно-нейтральна і переносима

Програми на Java компілюється в байт-код архітектурно-нейтрального формату, тому додатки на Java можуть працювати на будь-якій платформі, для якої реалізована виртуальна машина Java. Це особливо важливо для додатків, що функціонують в мережі Internet або інших неоднорідних мережах. Архітектурно-нейтральний підхід також корисний і поза сферою діяльності мережевих додатків. Для розробника додатків на сучасному ринку програмного забезпечення, виникає потреба створювати свої додатки таким чином, щоб вони працювали на комп'ютерах PC, Mac і робочих станціях UNIX. З урахуванням відмінностей в роботі UNIX, Windows95 і Windows NT на платформі PC і нових PowerPC Macintosh стає все важче виробляти програмне забезпечення для всіх можливих платформ. Однак якщо додаток написаний на Java, він може працювати на всіх платформах.

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

Динамічна і розподілена

Java – це динамічна мова. Кожний клас Java може бути завантажений працюючим інтерпретатором Java в будь-який момент часу. Внутрішні бібліотеки теж завантажуються динамічно.

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

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

Проста

Java – проста мова. Розробники Java поставили перед собою мета створити мову, легку для вивчення, тому число мовних конструкцій в ній порівняно невелике. Іншою метою було зробити мову, що здавалася б знайомим більшості програмістів, що полегшило б їх міграцію.

Стійка

Мова Java служить для написання дуже надійного або стійкого програмного забезпечення. Java строго типізована мова, що допускає достатньо простору перевірку можливої невідповідності типів на етапі компіляції. Автоматичний “збір сміття” в Java відвертає втрати блоків в пам'яті і інші фатальні помилки, пов'язані з її виділенням і вивільненням.

Безпечна

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

Високоефективна

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

Багатопотокова

Java – багатопотокова мова. Вона забезпечує підтримку багатьох потоків виконання, що одночасно розв’язують різноманітні задачі. Одна з переваг багатопоточності полягає в поліпшенні інтерактивності графічних додатків[22].

Технологія Java™ складається з двох елементів: мови програмування – Java та програмної платформи підтримки мови Java. Однією з таких платформ є Eclipse.

  1. Eclipse – спільнота розробників відкритого вихідного коду, чиї проекти націлені на побудову відкритої платформи для розробки, що складається з розширюваного середовища розробки, інструментарію та бібліотек для побудови, розгортання та управління програмним забезпеченням в період його життєвого циклу[21].

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

  3. JSAPI ( Included in Sphinx) – це програма, яка дозволяє безлічі програм використовувати одні й ті ж функції[31].

  4. Apache Ant - це заснований на Java набір інструментів для зборки додатків.

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

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

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

Кожна задача є об'єктом, який успадковує відповідний інтерфейс класу Task. Все це дає можливість переносити програму з платформи на платформу. І якщо дійсно необхідно викликати який-небудь процес у Ant є задача <exec>, яка дозволяє це зробити в залежності від платформи[30].