За последние несколько лет платформы онлайн-обучения стали свидетелями роста популярности и спроса на видеообучение, поскольку оно предлагает эффективную среду для вовлечения учащихся. Чтобы выйти на международные рынки и обратиться к разнообразному в культурном и языковом отношении населению, предприятия также рассматривают возможность диверсификации своих учебных предложений за счет локализации контента на несколько языков. Эти предприятия ищут надежные и экономичные способы решения своих задач локализации.
Локализация контента в основном включает перевод оригинальных голосов на новые языки и добавление визуальных средств, таких как субтитры. Традиционно этот процесс непомерно затратный, ручной и занимает много времени, включая работу со специалистами по локализации. Благодаря возможностям сервисов машинного обучения (ML) AWS, таких как Amazon транскрибировать, Amazon Translateи Amazon Polly, вы можете создать жизнеспособное и экономичное решение для локализации. Вы можете использовать Amazon Transcribe, чтобы создать расшифровку существующих аудио- и видеопотоков, а затем перевести эту расшифровку на несколько языков с помощью Amazon Translate. Затем вы можете использовать сервис преобразования текста в речь Amazon Polly, чтобы преобразовать переведенный текст в естественно звучащую человеческую речь.
Следующим шагом локализации является добавление к контенту субтитров, которые могут улучшить доступность и понимание, а также помочь зрителям лучше понять видео. Создание субтитров к видеоконтенту может быть сложной задачей, потому что переведенная речь не совпадает с синхронизацией исходной речи. Эта синхронизация между аудио и субтитрами является важной задачей, поскольку она может отключить аудиторию от вашего контента, если они не синхронизированы. Amazon Polly предлагает решение этой проблемы, позволяя речевые знаки, который вы можете использовать для создания файла субтитров, который можно синхронизировать с сгенерированным речевым выводом.
В этом посте мы рассматриваем решение для локализации с использованием сервисов AWS ML, где мы используем оригинальное видео на английском языке и конвертируем его в испанский язык. Мы также сосредоточены на использовании речевых меток для создания синхронизированного файла субтитров на испанском языке.
Обзор решения
Следующая диаграмма иллюстрирует архитектуру решения.
Решение использует видеофайл и настройки целевого языка в качестве входных данных и использует Amazon Transcribe для создания расшифровки видео. Затем мы используем Amazon Translate для перевода стенограммы на целевой язык. Переведенный текст предоставляется в качестве входных данных для Amazon Polly для создания аудиопотока и речевых меток на целевом языке. Амазонка Полли возвращается вывод речевой метки в потоке JSON с разделителями строк, который содержит такие поля, как время, тип, начало, конец и значение. Значение может варьироваться в зависимости от типа речевой метки, запрошенной во входных данных, например ССМЛ, визема, слово или предложение. Для нашего примера мы запросили тип речевой метки as word
. С помощью этого параметра Amazon Polly разбивает предложение на отдельные слова в предложении и время их начала и окончания в аудиопотоке. Затем с помощью этих метаданных речевые метки обрабатываются для создания субтитров для соответствующего аудиопотока, созданного Amazon Polly.
Наконец, мы используем AWS Elemental MediaConvert для рендеринга финального видео с переведенным звуком и соответствующими субтитрами.
Следующее видео демонстрирует окончательный результат решения:
Рабочий процесс AWS Step Functions
МЫ ИСПОЛЬЗУЕМ Шаговые функции AWS организовать этот процесс. На следующем рисунке показано общее представление рабочего процесса Step Functions (некоторые шаги опущены на диаграмме для большей ясности).
Этапы рабочего процесса следующие:
- Пользователь загружает исходный видеофайл в Простой сервис хранения Amazon (Amazon S3) ведро.
- Ассоциация Уведомление о событии S3 вызывает AWS Lambda функция state_machine.py (не показано на диаграмме), который вызывает конечный автомат Step Functions.
- Первый шаг, Расшифровать аудио, вызывает лямбда-функцию расшифровать.py, который использует Amazon Transcribe для создания расшифровки аудио из исходного видео.
В следующем примере кода показано, как создать задание расшифровки с помощью Amazon Transcribe. Бото3 SDK для Python:
После завершения задания выходные файлы сохраняются в корзину S3, и процесс переходит к следующему этапу перевода содержимого.
- Ассоциация Перевести транскрипцию step вызывает функцию Lambda перевести.py который использует Amazon Translate для перевода стенограммы на целевой язык. Здесь мы используем синхронный перевод/перевод в реальном времени, используя перевести_текст функция:
Синхронный перевод имеет ограничения на размер документа, который он может перевести; на момент написания этой статьи он установлен на 5,000 байт. Для больших размеров документов рассмотрите возможность использования асинхронного маршрута создания задания с использованием start_text_translation_job и проверка состояния через description_text_translation_job.
- Следующим шагом является Шаг Функции Параллельные state, где мы создаем параллельные ветки в нашей конечной машине.
- В первой ветке мы вызываем лямбда-функцию лямбда-функция генерировать_polly_audio.py для создания нашего аудиопотока Amazon Polly:
Здесь мы используем start_speech_synchronous_task метод Amazon Polly Python SDK для запуска задачи синтеза речи, которая создает звук Amazon Polly. Мы устанавливаем
OutputFormat
вmp3
, который указывает Amazon Polly создать аудиопоток для этого вызова API. - Во второй ветке мы вызываем лямбда-функцию генерировать_speech_marks.py для генерации вывода речевых меток:
- В первой ветке мы вызываем лямбда-функцию лямбда-функция генерировать_polly_audio.py для создания нашего аудиопотока Amazon Polly:
- Мы снова воспользуемся start_speech_synchronous_task метод, но указать
OutputFormat
вjson
, который указывает Amazon Polly создать речевые метки для этого вызова API.
На следующем шаге второй ветки мы вызываем лямбда-функцию генерировать_субтитры.py, реализующий логику создания файла субтитров на основе выходных речевых меток.
Он использует модуль Python в файле webvtt_utils.py. Этот модуль имеет несколько служебных функций для создания файла субтитров; один такой метод get_phrases_from_speechmarks
отвечает за разбор файла речевых меток. Структура речевых меток JSON предоставляет только время начала для каждого слова в отдельности. Чтобы создать синхронизацию субтитров, необходимую для файла SRT, мы сначала создаем фразы примерно из n (где n = 10) слов из списка слов в файле речевых меток. Затем мы записываем их в формат файла SRT, беря время начала с первого слова во фразе, а в качестве времени окончания мы используем время начала (n+1) слова и вычитаем его на 1, чтобы создать последовательную запись. . Следующая функция создает фразы для подготовки к их записи в файл SRT:
- Последний шаг, Медиа Конвертировать, вызывает лямбда-функцию create_mediaconvert_job.py для объединения аудиопотока из Amazon Polly и файла субтитров с исходным видеофайлом для создания конечного выходного файла, который затем сохраняется в корзине S3. Этот шаг использует
MediaConvert
, служба перекодирования видео на основе файлов с функциями вещательного уровня. Он позволяет легко создавать контент видео по запросу и сочетает в себе расширенные возможности видео и аудио с простым веб-интерфейсом. Здесь снова мы используем Python Бото3 SDK для созданияMediaConvert
работа:
Предпосылки
Прежде чем приступить к работе, у вас должны быть следующие предпосылки:
Разверните решение
Чтобы развернуть решение с помощью AWS CDK, выполните следующие действия:
- Клонировать хранилище:
- Чтобы убедиться, что AWS CDK бутстрапируемых, выполните команду
cdk bootstrap
из корня репозитория: - Измените рабочий каталог на корень репозитория и выполните следующую команду:
По умолчанию целевые настройки звука установлены на испанский (США) (es-US
). Если вы планируете протестировать его с другим целевым языком, используйте следующую команду:
Процесс занимает несколько минут, после чего отображается ссылка, которую можно использовать для просмотра целевого видеофайла с переведенным звуком и переведенными субтитрами.
Проверить решение
Чтобы протестировать это решение, мы использовали небольшую часть следующего Видео AWS re:Invent 2017 с YouTube, где впервые был представлен Amazon Transcribe. Вы также можете протестировать решение на собственном видео. Исходный язык нашего тестового видео — английский. При развертывании этого решения вы можете указать параметры целевого звука или использовать параметры целевого звука по умолчанию, в которых для создания звука и субтитров используется испанский язык. Решение создает корзину S3, которую можно использовать для загрузки видеофайла.
- На консоли Amazon S3 перейдите к корзине
PollyBlogBucket
. - Выберите ведро, перейдите к
/inputVideo
директорию и загрузите видеофайл (решение протестировано с видео типа mp4). В этот момент уведомление о событии S3 запускает функцию Lambda, которая запускает конечный автомат. - В консоли Step Functions перейдите к конечному автомату (
ProcessAudioWithSubtitles
). - Выберите один из запусков конечного автомата, чтобы найти Инспектор графиков.
Это показывает результаты выполнения для каждого состояния. Рабочий процесс Step Functions занимает несколько минут, после чего вы можете проверить, все ли шаги выполнены успешно.
Просмотрите результат
Чтобы просмотреть результат, откройте консоль Amazon S3 и проверьте, сохранены ли аудиофайл (.mp3) и файл речевых меток (.marks) в корзине S3 в разделе <ROOT_S3_BUCKET>/<UID>/synthesisOutput/
.
Ниже приведен пример файла речевой метки, созданного из переведенного текста:
В этом выводе каждая часть текста разбита на речевые метки:
- время – Отметка времени в миллисекундах с начала соответствующего аудиопотока
- напишите – Тип речевой метки (предложение, слово, визема или SSML)
- Начало – Смещение в байтах (не символов) начала объекта во входном тексте (не включая метки виземы)
- конец – Смещение в байтах (не символов) конца объекта во входном тексте (не включая метки виземы)
- ценностное - Отдельные слова в предложении
Сгенерированный файл субтитров записывается обратно в корзину S3. Вы можете найти файл под <ROOT_S3_BUCKET>/<UID>/subtitlesOutput/
. Осмотрите файл субтитров; содержание должно быть похоже на следующий текст:
После создания файла субтитров и аудиофайла окончательный исходный видеофайл создается с помощью MediaConvert. Проверьте консоль MediaConvert, чтобы убедиться, что статус задания COMPLETE
.
Когда задание MediaConvert завершено, окончательный видеофайл создается и сохраняется обратно в корзину S3, которую можно найти в разделе <ROOT_S3_BUCKET>/<UID>/convertedAV/
.
В рамках этого развертывания конечное видео распространяется через Amazon CloudFront (CDN) и отображается в терминале или в AWS CloudFormation приставка.
Откройте URL-адрес в браузере, чтобы просмотреть исходное видео с дополнительными параметрами звука и субтитров. Вы можете убедиться, что переведенное аудио и субтитры синхронизированы.
Заключение
В этом посте мы обсудили, как создавать новые языковые версии видеофайлов без необходимости ручного вмешательства. Создатели контента могут использовать этот процесс для синхронизации звука и субтитров своих видео и охвата глобальной аудитории.
Вы можете легко интегрировать этот подход в свои собственные производственные конвейеры для обработки больших объемов и масштабирования в соответствии с вашими потребностями. Амазонка Полли использует Нейронный TTS (NTTS) для создания естественных и человеческих голосов преобразования текста в речь. Он также поддерживает генерация речи из SSML, что дает вам дополнительный контроль над тем, как Amazon Polly генерирует речь из предоставленного текста. Amazon Polly также предоставляет разнообразие разных голосов на нескольких языках для удовлетворения ваших потребностей.
Начните работу с сервисами машинного обучения AWS, посетив странице продукта, или обратитесь к Лаборатория решений для машинного обучения Amazon страницу, где вы можете сотрудничать с экспертами, чтобы внедрить решения для машинного обучения в вашу организацию.
Дополнительные ресурсы
Дополнительные сведения о службах, используемых в этом решении, см. в следующих разделах:
Об авторах
Рейган Росарио работает архитектором решений в AWS, специализируясь на компаниях, занимающихся образовательными технологиями. Ему нравится помогать клиентам создавать масштабируемые, высокодоступные и безопасные решения в облаке AWS. Он имеет более чем десятилетний опыт работы на различных технологических должностях, уделяя особое внимание разработке программного обеспечения и архитектуре.
Анил Кодали является архитектором решений в Amazon Web Services. Он работает с клиентами AWS EdTech, предоставляя им рекомендации по архитектуре для переноса существующих рабочих нагрузок в облако и разработки новых рабочих нагрузок с использованием облачного подхода. До прихода в AWS он работал с крупными ритейлерами, помогая им с миграцией в облако.
Прасанна Сарасвати Кришнан является архитектором решений в Amazon Web Services, работающим с клиентами EdTech. Он помогает им управлять своей облачной архитектурой и стратегией работы с данными, используя передовой опыт. Его опыт работы связан с распределенными вычислениями, аналитикой больших данных и проектированием данных. Он увлечен машинным обучением и обработкой естественного языка.
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Лаборатория решений Amazon ML
- Amazon Polly
- Amazon транскрибировать
- Amazon Translate
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- зефирнет