Поиск по сайту:

Как использовать AWS Transcribe для преобразования речи в текст


Транскрипция речи — это проблема, которую обычно решают с помощью дорогостоящих людей. Однако благодаря машинному обучению компьютеры догнали его, и набор инструментов распознавания речи AWS на основе искусственного интеллекта теперь доступен в качестве сервиса для вашего приложения.

AWS Transcribe конвертирует аудиофайлы в S3

Transcribe прост — дайте ему аудиофайл (хранящийся в S3), и он сможет просмотреть его и дать вам результат. Плата взимается в зависимости от продолжительности аудио из расчета 0,0004 доллара США за секунду. Транскрипция двухчасового заседания совета директоров обойдется в 2,88 доллара, а короткое двухминутное видео стоит всего 0,06 доллара.

Transcribe работает довольно быстро, но не оптимизирована по задержкам. Он хорошо подходит для расшифровки постфактум, такой как расшифровка звонков клиентов и добавление субтитров к загруженному видео. Если вам нужна транскрипция речи в текст в режиме реального времени, вы можете использовать AWS Lex, сервис для создания интерактивных чат-ботов, таких как Alexa.

Для начала перейдите в консоль AWS Transcribe. Вы можете нажать «Начать трансляцию», чтобы записать с микрофона вашего устройства и протестировать сервис. Это довольно аккуратно, но вы, вероятно, после этого.

На боковой панели выберите «Задания на расшифровку» и нажмите «Создать задание». Работа служит методом автоматизации транскрипции. Каждое задание работает с одним файлом за раз; чтобы автоматизировать транскрипцию нескольких файлов, вам нужно создать отдельное задание для каждого из командной строки.

Дайте Transcribe путь к аудиофайлу, который вы хотите преобразовать. При желании вы можете вручную выбрать формат и частоту дискретизации, хотя он должен автоматически распознавать наиболее распространенные из них.

Как только вы нажмете «Создать», начнется транскрипция. Вновь созданное задание появится в списке, и как только оно будет выполнено, вы сможете скачать транскрибированный текст.

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

aws transcribe start-transcription-job 
  --transcription-job-name NewJob 
  --language-code en-US 
  --media MediaFileUri="s3://bucket/file.mp3"

Это запускает задание и выводит некоторый JSON, сообщающий вам, успешно ли он создан. Вы можете программно проверить статус задания с помощью get-transcription-job:

aws transcribe get-transcription-job --transcription-job-name NewJob

Если он завершен, TranscriptionJob.TranscriptionJobStatus устанавливается в состояние ЗАВЕРШЕНО, и вы можете загрузить файл напрямую с помощью curl и небольшой обработки jq :

curl $(aws transcribe get-transcription-job --transcription-job-name NewJob 
| jq -r ".TranscriptionJob.Transcript.TranscriptFileUri") 
| jq ".results.transcripts"

Обратите внимание, что файл стенограммы имеет формат JSON и содержит полную стенограмму, а также оценку достоверности каждого слова и альтернатив. Если вам не нужны все значения достоверности, вы можете отфильтровать их с помощью окончательного | jq \.results.transcripts\  .

Вы также можете автоматически расшифровывать аудиофайлы с помощью функций Lambda. Lambda — это сервис, который может запускать код в ответ на события AWS, такие как загрузка новых элементов в S3. Это без сервера, и вы платите только за время выполнения; поскольку Lambda не выполняет фактическую обработку, а просто создает новое задание при загрузке, стоимость должна быть тривиальной.

Вы можете запрограммировать его самостоятельно, если раньше использовали Lambda, но, к счастью, в репозитории бессерверных приложений Lambda есть готовое приложение, которое может выполнить эту работу за вас. Он называется s3-lambda-transcribe-audio-to-text-s3, и вам, возможно, придется щелкнуть «Показать приложения, которые создают пользовательские роли IAM», чтобы найти его.

Создайте новое приложение на основе этого шаблона и укажите входной и выходной сегменты. Убедитесь, что выходной сегмент существует, а входной — нет, так как приложение создаст для вас входной сегмент.

Вы также захотите ввести язык аудиофайла. en-US – общий английский; для всего остального вы можете найти код в документации AWS.

Разверните приложение, и вы должны увидеть только что созданную корзину. Если вы поместите аудиофайл в это ведро, Lambda может создать для вас новое задание Transcribe.

Если приложение не работает, убедитесь, что вы разрешили ему создать свою роль IAM, и убедитесь, что у него есть разрешение на работу с Transcribe и необходимыми сегментами S3.