На конференції AWS re:Invent 2021 року в Лас-Вегасі ми показали демонстрацію Читайте для мене на AWS Builders Fair — веб-сайті, який допомагає людям із вадами зору почути документи.
Для кращої якості перегляньте відео тут.
Адаптивні технології та функції доступності часто дорогі, якщо вони взагалі доступні. Аудіокниги допомагають читати людям з вадами зору. Аудіоопис робить фільми доступними. Але що робити, якщо вміст ще не оцифрований?
Ця публікація присвячена службам AWS AI Текст Amazon та Амазонка Поллі, що надає можливість людям з порушенням зору. Read For Me було спільно розроблено Джеком Маркетті, який є інвалідом по зору.
Огляд рішення
Завдяки безсерверній архітектурі, що керується подіями, і комбінації кількох служб штучного інтелекту, ми можемо створювати аудіофайли, які звучать на кількох мовах, із зображення документа або будь-якого зображення з текстом. Наприклад, лист від IRS, святкова листівка від родини або навіть початкові назви фільму.
Наступні Довідкова архітектура, опубліковані в Архітектурний центр AWS показує робочий процес користувача, який фотографує своїм телефоном і відтворює MP3 вмісту, знайденого в цьому документі.
Робочий процес включає наступні кроки:
- Статичний вміст (HTML, CSS, JavaScript) розміщено на AWS Amplify.
- Тимчасовий доступ надається анонімним користувачам до серверних служб через an Амазонка Когніто пул ідентичності.
- Файли зображень зберігаються в Служба простого зберігання Amazon (Amazon S3).
- Користувач робить запит POST через API -шлюз Amazon до аудіосервісу, який передає експрес Функції кроку AWS робочий процес.
- Робочий процес «Крокові функції» включає наступні кроки:
- Текст Amazon витягує текст із зображення.
- «Амазонка» визначає мову тексту.
- Якщо цільова мова відрізняється від виявленої мови, Amazon Translate перекладається на цільову мову.
- Амазонка Поллі створює аудіофайл як вихідний текст за допомогою тексту.
- Робочий процес AWS Step Functions створює аудіофайл як вихідний файл і зберігає його в Amazon S3 у форматі MP3.
- Попередньо підписана URL-адреса з розташуванням аудіофайлу, що зберігається в Amazon S3, надсилається назад у браузер користувача через API Gateway. Мобільний пристрій користувача відтворює аудіофайл, використовуючи попередньо підписану URL-адресу.
У наступних розділах ми обговорюємо причини, чому ми вибрали конкретні служби, шаблон архітектури та функції служби для цього рішення.
Сервіси AWS AI
Кілька служб штучного інтелекту об’єднані разом для живлення Read For Me:
- Amazon Textract ідентифікує текст на завантаженому зображенні.
- Amazon Comprehend визначає мову.
- Якщо користувач вибирає іншу розмовну мову, ніж мова на зображенні, ми перекладаємо її за допомогою Amazon Translate.
- Amazon Polly створює файл MP3. Ми використовуємо переваги нейронного механізму Amazon Polly, який створює більш природний, реалістичний аудіозапис.
Однією з головних переваг використання цих служб штучного інтелекту є простота запровадження з невеликим або зовсім відсутнім основним досвідом машинного навчання. Служби відкривають API, які клієнти можуть викликати за допомогою пакетів SDK, доступних на кількох мовах програмування, таких як Python і Java.
З Read For Me ми написали основне AWS Lambda функції в Python.
AWS SDK для Python (Boto3)
Команда AWS SDK для Python (Boto3) спрощує взаємодію зі службами AWS. Наприклад, наступні рядки коду Python повертають текст, знайдений у зображенні або документі, який ви надаєте:
Весь код Python виконується в окремих функціях Lambda. Немає серверів для надання та інфраструктури для підтримки.
Архітектурні візерунки
У цьому розділі ми обговорюємо різні архітектурні шаблони, використані в рішенні.
Без сервера
Ми впровадили безсерверну архітектуру з двох основних причин: швидкості створення та вартості. Не маючи базового обладнання для підтримки або інфраструктури для розгортання, ми повністю зосередилися на коді бізнес-логіки і ні на чому іншому. Це дозволило нам за лічені дні запустити функціонуючий прототип. Якщо користувачі активно не завантажують зображення та не прослуховують записи, нічого не працює, а отже, нічого не несе витрат за межами сховища. Правило керування життєвим циклом S3 видаляє завантажені зображення та файли MP3 через 1 день, тому витрати на зберігання є низькими.
Синхронний робочий процес
Коли ви створюєте безсерверні робочі процеси, важливо розуміти, коли синхронний виклик має більше сенсу з архітектури та взаємодії з користувачем, ніж асинхронний процес. З Read For Me ми спочатку пішли асинхронним шляхом і планували використовувати WebSockets для двостороннього зв’язку з інтерфейсом. Наш робочий процес включатиме крок, щоб знайти ідентифікатор з’єднання, пов’язаний з робочим процесом «Крокові функції», і по завершенні сповістити інтерфейс. Додаткову інформацію про цей процес див Від опитування до Push: трансформуйте API за допомогою REST API і WebSockets Amazon API Gateway.
Зрештою, ми вирішили не робити цього і використали експрес-покрокові функції, які є синхронними. Користувачі розуміють, що обробка зображення не буде миттєвою, але також знають, що це не займе 30 секунд чи хвилину. Ми перебували в просторі, де кілька секунд були задовільними для кінцевого користувача і не потребували переваг WebSockets. Це в цілому спростило робочий процес.
Робочий процес Express Step Functions
Можливість розбити ваш код на менші, ізольовані функції дає змогу детально контролювати, простіше обслуговування та можливість більш точного масштабування. Наприклад, якщо ми визначили, що функція Lambda, яка ініціювала створення аудіофайлу Amazon Polly, працювала повільніше, ніж функція, яка визначала мову, ми могли б вертикально масштабувати цю функцію, додаючи більше пам’яті, без необхідності робити це для інших. Аналогічно, ви обмежуєте радіус вибуху того, що може робити ваша лямбда-функція або доступ, коли ви обмежуєте її область та охоплення.
Однією з переваг організації робочого процесу за допомогою крокових функцій є можливість введення логіки потоку рішень без необхідності писати будь-який код.
Наш робочий процес крокових функцій не є складним. Він лінійний до кроку перекладу. Якщо нам не потрібно викликати лямбда-функцію перекладу, це буде для нас меншими витратами та швидше для користувача. Ми можемо використовувати візуальний конструктор на консолі Step Functions, щоб знайти певний ключ у вхідному корисному навантаженні і, якщо він присутній, викликати одну функцію над іншою за допомогою JSONPath. Наприклад, наше корисне навантаження містить ключ під назвою translate:
У візуальному дизайнері Step Functions ми знаходимо ключ перекладу та налаштовуємо правила для відповідності.
Безголова архітектура
Amplify розміщує інтерфейсний код. Передня частина написана на React, а вихідний код перевіряється Комісія AWS. Amplify вирішує декілька проблем для користувачів, які намагаються розгорнути статичні веб-сайти та керувати ними. Якщо ви робите це вручну (використовуючи сегмент S3, налаштований для статичного хостингу веб-сайтів і передаючи це за допомогою Amazon CloudFront), щоразу, коли ви робите розгортання, вам доведеться самостійно закривати кеш. Вам також доведеться написати свій власний конвеєр CI/CD. Amplify займається цим за вас.
Це дозволяє створити безголову архітектуру, де інтерфейсний код відокремлений від бекенда, і кожним рівнем можна керувати та масштабувати незалежно від іншого.
Аналізуйте ідентифікатор
У попередньому розділі ми обговорювали шаблони архітектури для обробки завантаженого зображення та створення з нього файлу MP3. Зачитати вам документ — це чудовий перший крок, але що робити, якщо ви хочете знати лише щось конкретне, не зачитуючи повністю? Наприклад, вам потрібно заповнити форму онлайн та вказати свій державний ідентифікаційний номер чи номер паспорта, або, можливо, термін його дії. Потім ви повинні сфотографувати своє посвідчення особи і, зачитуючи його, дочекатися цієї конкретної частини. Крім того, ви можете використовувати Analyze ID.
Analyze ID — це функція Amazon Textract, яка дає змогу запитувати документи. Read For Me містить спадне меню, де ви можете конкретно запитати дату закінчення терміну дії, дату видачі або номер документа. Ви можете використовувати той самий робочий процес для створення файлу MP3, який надає відповідь на ваше конкретне запитання.
Ви можете демонструвати функцію Analyze ID на сторінці readforme.io/analyze.
Додаткові функції Polly
- Read For Me пропонує кілька нейронних голосів, які використовують різні мови та діалекти. Зауважте, що є кілька інших голосів ви можете вибрати з чого ми не реалізували. Коли доступний новий голос, оновіть інтерфейсний код і лямбда-функцію, щоб скористатися цим.
- Служба Polly також пропонує інші варіанти, які ми ще не включили в Read For Me. До них відноситься регулювання швидкість голосів та мовленнєві знаки.
Висновок
У цій публікації ми обговорили, як використовувати численні сервіси AWS, у тому числі AI та безсерверні, для допомоги людям із вадами зору. Ви можете дізнатися більше про проект Read For Me та використати його, відвідавши сторінку readforme.io. Ви також можете знайти приклади Amazon Textract на сторінці GitHub репо. Щоб дізнатися більше про Analyze ID, перегляньте Оголошуємо підтримку вилучення даних із документів, що посвідчують особу, за допомогою Amazon Textract.
Вихідний код цього проекту буде з відкритим вихідним кодом і незабаром буде додано до загальнодоступного GitHub AWS.
Про авторів
Джек Маркетті є старшим архітектором рішень у AWS. Маючи досвід розробки програмного забезпечення, Джек насамперед зосереджений на допомозі клієнтам впроваджувати безсерверні архітектури, керовані подіями. Свій перший розподілений хмарний додаток він створив у 2013 році, відвідавши другу конференцію AWS re:Invent, і з тих пір був захоплений. До AWS Джек провів основну частину своєї кар’єри у створенні простору для рекламних агентств для деяких із найбільших брендів у світі. Джек юридично сліпий і проживає в Чикаго зі своєю дружиною Ерін і кішкою Міноу. Він також є сценаристом і режисером, який зосереджується на різдвяних фільмах і жахах. Перегляньте фільмографію Джека у нього IMDb стр.
Алак Есварадас є архітектором рішень в AWS, що базується в Чикаго, штат Іллінойс. Вона прагне допомагати клієнтам розробляти хмарні архітектури з використанням сервісів AWS для вирішення бізнес-задач. Має ступінь магістра комп’ютерної техніки. До того, як приєднатися до AWS, вона працювала в різних організаціях охорони здоров’я і має глибокий досвід розробки складних систем, технологічних інновацій та досліджень. У вільний час вона гуляє зі своїми дочками та досліджує природу.
Свагат Кулкарні є старшим архітектором рішень у AWS та ентузіастом AI/ML. Він захоплений вирішенням реальних проблем для клієнтів за допомогою хмарних сервісів і машинного навчання. Поза роботою Свагат любить подорожувати, читати та медитувати.
- Coinsmart. Найкраща в Європі біржа біткойн та криптовалют.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. БЕЗКОШТОВНИЙ ДОСТУП.
- CryptoHawk. Альткойн Радар. Безкоштовне випробування.
- Джерело: https://aws.amazon.com/blogs/machine-learning/enable-the-visually-impaired-to-hear-documents-using-amazon-textract-and-amazon-polly/
- "
- 100
- 2021
- МЕНЮ
- доступ
- доступність
- Ad
- Прийняття
- Перевага
- агентство
- AI
- Послуги ШІ
- ВСІ
- вже
- Amazon
- API
- Інтерфейси
- додаток
- архітектура
- аудіо
- доступний
- AWS
- фон
- Переваги
- книги
- border
- бренди
- браузер
- будувати
- Створюємо
- бізнес
- call
- кар'єра
- проблеми
- Чикаго
- різдво
- хмара
- код
- поєднання
- комплекс
- Інформатика
- конференція
- зв'язку
- Консоль
- містить
- зміст
- контроль
- Core
- витрати
- може
- створення
- Клієнти
- дані
- день
- розгортання
- дизайн
- виявлено
- пристрій
- DID
- різний
- Директор
- обговорювати
- розподілений
- документація
- вниз
- уповноважувати
- Машинобудування
- приклад
- досвід
- Досліди
- Виписки
- сім'я
- швидше
- особливість
- риси
- Фільм
- Перший
- потік
- Сфокусувати
- увагу
- після
- форма
- формат
- знайдений
- Безкоштовна
- функція
- функціонування
- GitHub
- великий
- апаратні засоби
- має
- охорона здоров'я
- допомога
- допомагає
- жах
- Як
- How To
- HTTPS
- Особистість
- Іллінойс
- зображення
- здійснювати
- реалізовані
- важливо
- включати
- У тому числі
- індивідуальний
- інформація
- Інфраструктура
- інновація
- IRS
- питання
- IT
- Java
- JavaScript
- ключ
- мова
- мови
- Лас-Вегас
- УЧИТЬСЯ
- вивчення
- Прослуховування
- трохи
- розташування
- машина
- навчання за допомогою машини
- управління
- матч
- Матерія
- пам'ять
- Mobile
- мобільний пристрій
- кіно
- Природний
- численний
- Пропозиції
- онлайн
- відкриття
- Опції
- організації
- Інше
- на відкритому повітрі
- паспорт
- Викрійки
- може бути
- картина
- голосування
- басейн
- влада
- представити
- первинний
- проблеми
- процес
- Програмування
- мови програмування
- проект
- забезпечувати
- забезпечує
- громадськість
- якість
- питання
- RE
- Реагувати
- читання
- Причини
- вимагається
- дослідження
- відповідь
- REST
- Правила
- прогін
- біг
- шкала
- наука
- Sdk
- сенс
- Без сервера
- обслуговування
- Послуги
- комплект
- простий
- So
- Софтвер
- розробка програмного забезпечення
- Рішення
- ВИРІШИТИ
- що в сім'ї щось
- вихідні
- Простір
- конкретно
- швидкість
- стан
- зберігання
- магазинів
- підтримка
- Systems
- Мета
- Технологія
- Джерело
- світ
- через
- час
- разом
- Перетворення
- Переклад
- подорожувати
- розуміти
- Оновити
- us
- використання
- користувачі
- VEGAS
- Відео
- вид
- бачення
- Голос
- ГОЛОСИ
- чекати
- веб-сайт
- веб-сайти
- Що
- ВООЗ
- в
- без
- Work
- працював
- світ