Сейчас машинное обучение ежедневно используется для нескольких целей, одна из которых — понимание и преобразование речи в текст. Amazon Transcribe — это сервис на основе машинного обучения, который позволяет с помощью процесса глубокого обучения, называемого автоматическим распознаванием речи (ASR) и обработкой естественного языка (NLP), расшифровывать аудиофайлы. Amazon Transcribe может распознавать разных носителей и разговорный язык более чем на 30 различных языках, включая арабский, японский, русский и китайский, поддерживая различные форматы, такие как AMR, FLAC, MP3, MP4, Ogg, WebM, WAV, для автоматизации медиаконтента. и субтитры.

Сегодня мы увидим, как использовать этот сервис для создания субтитров для наших любимых видео. Для создания нашей архитектуры мы будем использовать другие сервисы, предлагаемые AWS. Мы будем использовать Amazon S3 для загрузки нашего аудио/видео и хранения сгенерированных файлов субтитров, AWS Lambda, чтобы начать преобразование через Amazon Transcribe и Правило Amazon EventBridge для получения электронного письма через Amazon SNS после завершения задания преобразования.

Первое, что нужно сделать, — это создать две корзины S3: одну для загрузки файлов для расшифровки и другую, в которой Amazon Transcribe будет хранить соответствующие файлы расшифровки (вы можете создать только одну корзину, но я предпочитаю хранить файлы в порядке). Помните, что имена корзин S3 уникальны в глобальном масштабе, поэтому выбирайте имя, которое еще не используется. Мы можем продолжить создание через консоль AWS

или из терминала с помощью команд

а потом

чтобы заблокировать общий доступ.

Теперь давайте создадим функцию Lambda, которая создаст задание транскрипции в Amazon Transcribe, как только новый файл будет загружен в ранее созданную корзину ввода. Прежде чем сделать это, нам нужно создать политику для привязки к роли, которая будет гарантировать доступ функции к корзинам Amazon Transcribe и S3. Откройте консоль службы управления идентификацией и доступом (IAM), выберите «Роли», а затем «Создать роль».

В качестве «Тип доверенного объекта» выберите сервис AWS, а в качестве «Сценарий использования» — Lambda. Добавьте политику разрешений «AmazonTranscribeFullAccess» и создайте пользовательскую политику, в которую вставьте следующий код:

чтобы обеспечить доступ к ранее созданному сегменту вывода.
Теперь перейдите к сервису Lambda в консоли AWS и выберите «Создать функцию». Выберите "Автор с нуля", дайте имя функции, выберите "Python" в качестве среды выполнения, выберите ранее созданную роль, а затем "Создать функцию'.

Вставьте следующий код и нажмите «Развернуть».

Теперь давайте добавим триггер, который будет активировать функцию Lambda, в нашем случае, когда файл загружается в корзину ввода.

Теперь давайте создадим тему SNS, которая позволит нам получать электронное письмо, когда задание транскрипции будет завершено. В консоли AWS откройте Amazon SNS и выберите «Создать тему». Выберите тип «Стандартный», назовите тему и выберите «Создать тему». После создания темы добавьте подписку, выбрав «Создать подписку», в ARN темы мы выбираем ARN вновь созданной темы, в качестве протокола выбираем «Электронная почта», введите адрес электронной почты, на который вы хотите получать уведомления в Endpoint, и выберите «Создать подписку». Вы получите электронное письмо для подтверждения подписки на тему.

Ну вот почти все готово, не хватает только триггера темы SNS. В консоли AWS выберите Amazon EventBridge, а затем «Правила», выберите «Создать правило», дайте правилу имя, убедитесь, что выбрано «Правило с шаблоном события» и перейдите на следующую страницу, в Шаблон события вставьте следующий код

перейдите на следующую страницу, выберите тему SNS в качестве цели и выберите ранее созданную тему и продолжайте, пока не создадите правило.

Таким образом, каждый раз, когда мы загружаем файл из тех, которые поддерживаются Amazon Transcribe, в нашу корзину S3, он запускает функцию Lambda, которая создает задание транскрипции, которое сохраняет результаты, в данном случае файл .srt и файл .json. который содержит всю аудиотранскрипцию и информацию о транскрипции, в корзине вывода, и мы получим электронное письмо, которое уведомит нас о завершении задания транскрипции.

Это всего лишь пример того, как можно использовать Amazon Transcribe, который также может выполнять транскрипцию в режиме реального времени, может создавать задания по анализу вызовов и может использоваться для медицинской транскрипции, например для клинической документации, анализа вызовов в фармаконадзоре и доступности. во время сеансов телемедицины.