Уявіть собі хірурга, який проводить відеодзвінки з пацієнтами по всьому світу без допомоги перекладача. Що, якби молодий стартап міг легко розширити свій продукт за кордон і на нові географічні ринки, пропонуючи плавну, точну, багатомовну підтримку клієнтів і продажі, і все це без потреби перекладача? Що станеться з вашим бізнесом, коли ви більше не зв’язані мовою?
Віртуальні зустрічі з міжнародними командами та клієнтами, які розмовляють різними мовами, сьогодні є звичайним явищем. Незалежно від того, чи це внутрішні чи зовнішні зустрічі, значення часто губиться в складних обговореннях, і ви можете зіткнутися з мовними бар’єрами, які завадять вам бути настільки ефективними, як могли б.
У цій публікації ви дізнаєтеся, як використовувати три повністю керовані служби AWS (Амазонська розшифровка, Amazon Translate та Амазонка Поллі), щоб створити рішення перекладача мовлення майже в реальному часі, яке може швидко перекладати живий голосовий ввід вихідного мовця на розмовну, точну, перекладену цільову мову, і все з нульовим досвідом машинного навчання (ML).
Огляд рішення
Наш перекладач складається з трьох повністю керованих служб AWS ML, які працюють разом в одному сценарії Python за допомогою AWS SDK для Python (Boto3) для наших частин перекладу тексту та синтезу мовлення, а також SDK для асинхронної потокової передачі для транскрипції вхідного аудіо.
Amazon Transcribe: потокове перетворення мовлення в текст
Перший сервіс, яким ви користуєтеся в нашому наборі, — Amazon Transcribe, повністю керована служба перетворення мовлення в текст, яка приймає вхідне мовлення та транскрибує його в текст. Amazon Transcribe має гнучкі методи прийому, пакетне або потокове, оскільки приймає або збережені аудіофайли, або потокові аудіодані. У цій публікації ви використовуєте асинхронний потоковий SDK Amazon Transcribe для Python, який використовує потоковий протокол HTTP/2 для потокової передачі аудіо в реальному часі та отримання транскрипцій у реальному часі.
Коли ми вперше створили цей прототип, потокова передача Amazon Transcribe не підтримувала автоматичне визначення мови, але з листопада 2021 року це більше не так. І пакетна, і потокова передача тепер підтримують автоматичне визначення мови для всіх підтримувані мови. У цьому дописі ми показуємо, як можливе рішення на основі параметрів, хоча це безперебійний багатомовний дизайн без параметрів, завдяки використанню потокового автоматичного визначення мови. Після того, як наш транскрибований мовний сегмент буде повернено як текст, ви надсилаєте запит до Amazon Translate на переклад і повертаєте результати в нашій Amazon Transcribe EventHandler
метод.
Amazon Translate: сучасний, повністю керований API перекладу
Наступним у нашому наборі є Amazon Translate, служба нейронного машинного перекладу, яка забезпечує швидкий, високоякісний, доступний і настроюваний переклад мовою. Станом на червень 2022 року Amazon Translate підтримує переклад 75 мовами, постійно додаючи нові мовні пари та вдосконалюючись. Amazon Translate використовує моделі глибокого навчання, розміщені на високомасштабованій і стійкій архітектурі AWS Cloud, щоб швидко надавати точні переклади в режимі реального часу або пакетно, залежно від вашого випадку використання. Використання Amazon Translate просте і не вимагає керування базовою архітектурою чи навичок ML. Amazon Translate має кілька функцій, як-от створення та використання нестандартна термінологія для обробки відповідності між галузевими термінами. Додаткову інформацію про обмеження служби Amazon Translate див Рекомендації та обмеження. Після того, як програма отримає перекладений текст цільовою мовою, він надсилає перекладений текст до Amazon Polly для негайного відтворення перекладеного аудіо.
Amazon Polly: повністю керований API синтезу мовлення
Нарешті, ви надсилаєте перекладений текст до Amazon Polly, повністю керованої служби синтезу мовлення, яка може або надсилати реалістичні відповіді аудіокліпів для негайного потокового відтворення, або групувати та зберігати в Служба простого зберігання Amazon (Amazon S3) для подальшого використання. Ви можете керувати різними аспектами мовлення, такими як вимова, гучність, висота, швидкість мовлення тощо за допомогою стандартизованих Мова розмітки мови синтезу мови (SSML).
Ви можете синтезувати мовлення для деяких Amazon Polly Нейронні голоси використовуючи стиль диктора новин, щоб вони звучали як диктор теле- чи радіо новин. Ви також можете визначити, коли промовляються певні слова чи речення в тексті на основі метаданих, включених до аудіопотоку. Це дозволяє розробнику синхронізувати графічне підсвічування та анімацію, наприклад рухи губ аватара, із синтезованим мовленням.
Ви можете змінити вимову певних слів, наприклад назв компаній, абревіатур, іноземних слів або неологізмів, наприклад «P!nk», «ROTFL» або «C'est la vie» (якщо вони вимовляються нефранцузькою мовою). голос), використовуючи спеціальні лексикони.
Огляд архітектури
Наступна схема ілюструє нашу архітектуру рішення.
Порядок роботи такий:
- Аудіо завантажується пакетом SDK Python.
- Amazon Polly перетворює мову на текст 39 можливими мовами.
- Amazon Translate перетворює мови.
- Amazon Live Transcribe перетворює текст на мовлення.
- Аудіо виводиться на динаміки.
Передумови
Вам потрібна хост-машина з мікрофоном, динаміками та надійним підключенням до Інтернету. Сучасний ноутбук повинен добре працювати для цього, оскільки додаткове обладнання не потрібне. Далі вам потрібно налаштувати машину за допомогою деяких програмних засобів.
Ви повинні встановити Python 3.7+, щоб використовувати асинхронний потоковий SDK Amazon Transcribe і модуль Python під назвою pyaudio
, який ви використовуєте для керування мікрофоном і динаміками машини. Цей модуль залежить від бібліотеки C під назвою portaudio.h
. Якщо у вас виникли проблеми з pyaudio
помилок, радимо перевірити свою ОС, щоб перевірити, чи є у вас portaudio.h
встановлена бібліотека.
Для авторизації та автентифікації викликів служби ви створюєте Управління ідентифікацією та доступом AWS (IAM) роль служби з дозволами на виклик необхідних служб AWS. Налаштувавши Інтерфейс командного рядка AWS (AWS CLI) з цією роллю служби IAM ви можете запустити наш сценарій на своєму комп’ютері без необхідності передавати ключі чи паролі, оскільки бібліотеки AWS написані для використання налаштованих облікових даних користувача AWS CLI. Це зручний метод для швидкого створення прототипів і гарантує, що наші служби викликаються авторизованою особою. Як завжди, дотримуйтесь принципу найменших привілеїв під час призначення політик IAM під час створення користувача або ролі IAM.
Підводячи підсумок, вам потрібні наступні передумови:
- ПК, Mac або Linux з мікрофоном, динаміками та підключенням до Інтернету
- Команда
portaudio.h
Бібліотека C для вашої ОС (brew, apt get, wget), яка потрібна для роботи pyaudio - AWS CLI 2.0 із належним чином авторизованим користувачем IAM, налаштованим за допомогою запуску aws configure у AWS CLI
- Python 3.7+
- Асинхронний SDK Amazon Transcribe Python
- Наступні бібліотеки Python:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
Реалізуйте рішення
Ви будете значною мірою покладатися на асинхронний потоковий SDK Amazon Transcribe для Python як вихідну точку, і збираєтеся створювати поверх цього конкретного SDK. Після того, як ви поекспериментували з потоковим SDK для Python, ви додаєте потоковий мікрофон введення за допомогою pyaudio
, широко використовувана бібліотека з відкритим вихідним кодом Python, яка використовується для обробки аудіоданих. Потім ви додаєте виклики Boto3 до Amazon Translate і Amazon Polly для наших функцій перекладу та синтезу мовлення. Нарешті, ви знову транслюєте перекладене мовлення через динаміки комп’ютера pyaudio
. Модуль Python concurrent
дає вам можливість запускати блокувальний код у власному асинхронному потоці, щоб відтворювати повернуту промову Amazon Polly безперебійним способом без блокування.
Давайте імпортуємо всі наші необхідні модулі, транскрибуємо потокові класи та створимо екземпляри деяких глобальних елементів:
По-перше, ви використовуєте pyaudio
щоб отримати частоту дискретизації пристрою введення, індекс пристрою та кількість каналів:
Якщо це не працює, ви також можете прокрутити та надрукувати свої пристрої, як показано в наступному коді, а потім використовувати індекс пристроїв, щоб отримати інформацію про пристрій за допомогою pyaudio
:
Ти використовуєш channel_count
, sample_rate
та dev_index
як параметри мікрофонного потоку. У функції зворотного виклику цього потоку ви використовуєте asyncio
неблокуючий потокобезпечний зворотний виклик для розміщення вхідних байтів мікрофонного потоку в an asyncio
вхідна черга. Зверніть увагу на об’єкти циклу та input_queue, створені за допомогою asyncio
і як вони використовуються в наступному коді:
Тепер, коли функція генератора mic_stream()
викликається, він постійно видає вхідні байти, доки в черзі введення є дані мікрофона.
Тепер, коли ви знаєте, як отримати вхідні байти з мікрофона, давайте розглянемо, як записати вихідні аудіобайти Amazon Polly у вихідний потік динаміка:
Тепер розповімо про те, що ви створили в публікації Асинхронний Amazon Transcribe Streaming SDK для Python. У наведеному нижче коді ви створюєте об’єкт виконавця за допомогою ThreadPoolExecutor
підклас з трьома працівниками з одночасним. Потім ви додаєте виклик Amazon Translate до завершеної поверненої транскрипції в EventHandler і передаєте цей перекладений текст, об’єкт виконавця та наш aws_polly_tts()
функція в an asyncio
петля с loop.run_in_executor()
, який запускає нашу функцію Amazon Polly (з перекладеним введеним текстом) асинхронно на початку наступної ітерації asyncio
петлі.
Нарешті, у нас є loop_me()
функція. У ньому ви визначаєте write_chunks()
, який приймає потік Amazon Transcribe як аргумент і асинхронно записує в нього фрагменти потокового мікрофонного введення. Потім ви використовуєте MyEventHandler()
з вихідним потоком транскрипції як аргументом і створіть об’єкт обробки. Потім ви використовуєте await з asyncio.gather()
і передайте write_chunks() і обробник з методом handle_events() для обробки можливих майбутніх цих співпрограм. Нарешті, ви збираєте всі цикли подій і запускаєте цикл loop_me()
функція за допомогою run_until_complete()
. Дивіться наступний код:
Коли попередній код виконується разом без помилок, ви можете говорити в мікрофон і швидко почути, як ваш голос перекладається китайською мовою. Функція автоматичного визначення мови для Amazon Transcribe і Amazon Translate перекладає будь-яку підтримувану мову введення на цільову мову. Ви можете говорити досить довго, і через те, що виклики функцій не блокуються, усі ваші мовні дані перекладаються та озвучуються, що робить це чудовим інструментом для перекладу живих виступів.
Висновок
Незважаючи на те, що ця публікація продемонструвала, як ці три повністю керовані API AWS можуть бездоганно функціонувати разом, ми радимо вам подумати про те, як ви можете використовувати ці служби іншими способами, щоб забезпечити багатомовну підтримку для служб або засобів масової інформації, як-от багатомовні закриті субтитри, за незначну частину поточної вартості. . Медицина, бізнес і навіть дипломатичні відносини можуть отримати вигоду від постійно вдосконалюваних, недорогих і невибагливих послуг перекладу.
Для отримання додаткової інформації про базу коду для підтвердження концепції для цього випадку використання перегляньте наш Github.
Про авторів
Майкл Тран є архітектором рішень у команді Envision Engineering в Amazon Web Services. Він надає технічне керівництво та допомагає клієнтам прискорити свою здатність до інновацій, демонструючи мистецтво можливого на AWS. Він створив кілька прототипів на основі AI/ML та IoT для наших клієнтів. Ви можете зв’язатися зі мною @Mike_Trann у Twitter.
Кемерон Вілкс є архітектором прототипування в команді AWS Industry Accelerator. Перебуваючи в команді, він надав клієнтам кілька прототипів на основі ML, щоб продемонструвати «мистецтво можливого» ML на AWS. Він захоплюється створенням музики, бездоріжжям і дизайном.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Амазонка Поллі
- Амазонська розшифровка
- Amazon Translate
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- Технічні інструкції
- зефірнет