제퍼넷 로고

Amazon Textract 및 Amazon Polly를 사용하여 시각 장애인이 문서를 들을 수 있도록 지원

시간

2021년 라스베이거스에서 열린 AWS re:Invent 컨퍼런스에서 우리는 시연했습니다. 나를 위해 읽기 시각 장애인이 문서를 들을 수 있도록 도와주는 웹 사이트인 AWS Builders Fair에서

더 나은 품질을 위해 비디오를 보십시오 여기에서 지금 확인해 보세요..

적응형 기술 및 내게 필요한 옵션 기능은 사용할 수 있는 경우 비용이 많이 듭니다. 오디오 북은 시각 장애인이 읽을 수 있도록 도와줍니다. 오디오 설명을 통해 영화에 액세스할 수 있습니다. 하지만 콘텐츠가 아직 디지털화되지 않은 경우에는 어떻게 합니까?

이 게시물은 AWS AI 서비스에 중점을 둡니다. 아마존 텍사스아마존 폴리, 시각 장애가 있는 사람들에게 힘을 실어줍니다. Read For Me는 시각 장애인 Jack Marchetti가 공동 개발했습니다.

솔루션 개요

이벤트 중심의 서버리스 아키텍처와 여러 AI 서비스의 조합을 통해 문서 사진이나 텍스트가 있는 이미지에서 여러 언어로 된 자연스러운 오디오 파일을 만들 수 있습니다. 예를 들어, IRS에서 보낸 편지, 가족의 휴가 카드 또는 영화의 시작 제목까지.

다음 참조 아키텍처, AWS 아키텍처 센터 사용자가 휴대전화로 사진을 찍고 해당 문서에서 찾은 콘텐츠의 MP3를 재생하는 워크플로를 보여줍니다.

워크 플로우에는 다음 단계가 포함됩니다.

  1. 정적 콘텐츠(HTML, CSS, JavaScript)는 다음에서 호스팅됩니다. AWS 증폭.
  2. 익명의 사용자가 다음을 통해 백엔드 서비스에 임시 액세스할 수 있습니다. 아마존 코 그니 토 ID 풀.
  3. 이미지 파일은 다음 위치에 저장됩니다. 아마존 단순 스토리지 서비스 (아마존 S3).
  4. 사용자는 다음을 통해 POST 요청을 합니다. 아마존 API 게이트웨이 익스프레스를 대신하는 오디오 서비스에 AWS 단계 함수 워크 플로우.
  5. Step Functions 워크플로에는 다음 단계가 포함됩니다.
    1. 아마존 텍사스 이미지에서 텍스트를 추출합니다.
    2. 아마존 이해 텍스트의 언어를 감지합니다.
    3. 대상 언어가 감지된 언어와 다른 경우, 아마존 번역 대상 언어로 번역됩니다.
    4. 아마존 폴리 텍스트를 사용하여 출력으로 오디오 파일을 만듭니다.
  6. AWS Step Functions 워크플로는 오디오 파일을 출력으로 생성하고 MP3 형식으로 Amazon S3에 저장합니다.
  7. Amazon S3에 저장된 오디오 파일의 위치와 함께 미리 서명된 URL이 API Gateway를 통해 사용자의 브라우저로 다시 전송됩니다. 사용자의 모바일 장치는 미리 서명된 URL을 사용하여 오디오 파일을 재생합니다.

다음 섹션에서는 이 솔루션에 대해 특정 서비스, 아키텍처 패턴 및 서비스 기능을 선택한 이유에 대해 설명합니다.

AWS AI 서비스

여러 AI 서비스가 함께 연결되어 Read For Me를 지원합니다.

  • Amazon Textract는 업로드된 사진의 텍스트를 식별합니다.
  • Amazon Comprehend가 언어를 결정합니다.
  • 사용자가 그림의 언어와 다른 구어를 선택하면 Amazon Translate를 사용하여 번역합니다.
  • Amazon Polly는 MP3 파일을 생성합니다. 더 자연스럽고 생생한 오디오 녹음을 생성하는 Amazon Polly 신경 엔진을 활용합니다.

이러한 AI 서비스를 사용할 때의 주요 이점 중 하나는 핵심 기계 학습 경험이 거의 또는 전혀 필요하지 않은 채택 용이성입니다. 서비스는 클라이언트가 Python 및 Java와 같은 여러 프로그래밍 언어로 제공되는 SDK를 사용하여 호출할 수 있는 API를 노출합니다.

Read For Me를 통해 우리는 기본 AWS 람다 파이썬의 함수.

Python 용 AWS SDK (Boto3)

XNUMXD덴탈의 Python 용 AWS SDK (Boto3) AWS 서비스와의 상호 작용을 간단하게 만듭니다. 예를 들어 다음 Python 코드 줄은 제공한 이미지 또는 문서에서 찾은 텍스트를 반환합니다.

import boto3
client = boto3.client('textract')
response = client.detect_document_text(
Document={ 'S3Object': { 'Bucket': 'bucket-name', 'Name': 's3-key'
}
})
#do something with the response

모든 Python 코드는 개별 Lambda 함수 내에서 실행됩니다. 프로비저닝할 서버와 유지 관리할 인프라가 없습니다.

아키텍처 패턴

이 섹션에서는 솔루션에 사용되는 다양한 아키텍처 패턴에 대해 설명합니다.

서버리스

구축 속도와 비용이라는 두 가지 주요 이유로 서버리스 아키텍처를 구현했습니다. 유지 관리할 기본 하드웨어나 배포할 인프라가 없었기 때문에 우리는 비즈니스 로직 코드에만 집중했습니다. 이를 통해 며칠 만에 제대로 작동하는 프로토타입을 만들고 실행할 수 있었습니다. 사용자가 적극적으로 사진을 업로드하고 녹음을 듣지 않는다면 아무 것도 실행되고 있지 않으므로 스토리지 외에 비용이 발생하는 것은 없습니다. S3 수명 주기 관리 규칙은 업로드된 이미지와 MP3 파일을 1일 후에 삭제하므로 저장 비용이 저렴합니다.

동기식 워크플로

서버리스 워크플로를 구축할 때 비동기 프로세스보다 아키텍처 및 사용자 환경에서 동기 호출이 더 의미가 있는 경우를 이해하는 것이 중요합니다. Read For Me를 통해 우리는 처음에 비동기식 경로를 택했고 WebSocket을 사용하여 프런트 엔드와 양방향으로 통신할 계획이었습니다. 워크플로에는 Step Functions 워크플로와 연결된 연결 ID를 찾는 단계가 포함되며 완료되면 프런트 엔드에 알립니다. 이 프로세스에 대한 자세한 내용은 다음을 참조하십시오. 폴링에서 푸시로: Amazon API Gateway REST API 및 WebSocket을 사용하여 API 변환.

우리는 궁극적으로 이것을 하지 않기로 선택했고 동기식 익스프레스 단계 기능을 사용했습니다. 사용자는 이미지 처리가 즉시 이루어지지 않는다는 것을 이해하지만 30초 또는 XNUMX분도 걸리지 않을 것임을 알고 있습니다. 우리는 최종 사용자에게 몇 초면 충분하고 WebSocket의 이점이 필요하지 않은 공간에 있었습니다. 이를 통해 워크플로가 전반적으로 간소화되었습니다.

Express Step Functions 워크플로

코드를 더 작고 격리된 기능으로 분할하는 기능을 통해 세분화된 제어, 더 쉬운 유지 관리 및 더 정확하게 확장할 수 있습니다. 예를 들어 Amazon Polly가 오디오 파일을 생성하도록 트리거한 Lambda 함수가 언어를 결정한 함수보다 느리게 실행되고 있다고 판단되면 다른 함수에 대해 그렇게 할 필요 없이 해당 함수를 수직으로 확장하여 메모리를 추가할 수 있습니다. 마찬가지로 범위와 도달 범위를 제한할 때 Lambda 함수가 수행하거나 액세스할 수 있는 작업의 폭발 반경을 제한합니다.

Step Functions를 사용하여 워크플로를 오케스트레이션하는 이점 중 하나는 코드를 작성하지 않고도 의사 결정 흐름 논리를 도입할 수 있다는 것입니다.

Step Functions 워크플로는 복잡하지 않습니다. 번역 단계까지 선형입니다. 번역 Lambda 함수를 호출할 필요가 없다면 비용은 더 적게 들고 사용자는 더 빠른 경험을 할 수 있습니다. Step Functions 콘솔에서 비주얼 디자이너를 사용하여 입력 페이로드에서 특정 키를 찾고 있는 경우 JSONPath를 사용하여 한 함수를 다른 함수보다 호출할 수 있습니다. 예를 들어 페이로드에는 번역이라는 키가 포함되어 있습니다.

{ 
extracted_text: "hello world",
target_language: "es",
source_language: "en",
translate: true
}

Step Functions 비주얼 디자이너 내에서 번역 키를 찾고 일치하는 규칙을 설정합니다.

헤드리스 아키텍처

Amplify는 프런트 엔드 코드를 호스팅합니다. 프론트 엔드는 React로 작성되고 소스 코드는 체크인됩니다. AWS 코드 커밋. Amplify는 정적 웹 사이트를 배포 및 관리하려는 사용자의 몇 가지 문제를 해결합니다. 이 작업을 수동으로 수행하는 경우(정적 웹 사이트 호스팅을 위해 설정된 S3 버킷을 사용하여 아마존 CloudFront를), 배포할 때마다 캐시를 ​​직접 만료해야 합니다. 또한 자신의 CI/CD 파이프라인을 작성해야 합니다. Amplify가 이를 처리합니다.

이를 통해 프런트 엔드 코드가 백엔드에서 분리되고 각 레이어가 서로 독립적으로 관리 및 확장될 수 있는 헤드리스 아키텍처가 가능합니다.

아이디 분석

이전 섹션에서 우리는 업로드된 사진을 처리하고 그로부터 MP3 파일을 생성하기 위한 아키텍처 패턴에 대해 논의했습니다. 문서를 다시 읽어주는 것은 훌륭한 첫 번째 단계이지만 전체 내용을 다시 읽지 않고 특정 사항만 알고 싶다면 어떻게 해야 할까요? 예를 들어 온라인으로 양식을 작성하고 주 ID 또는 여권 번호 또는 만료일을 제공해야 합니다. 그런 다음 신분증 사진을 찍어서 다시 읽어주는 동안 특정 부분을 기다려야 합니다. 또는 Analyze ID를 사용할 수 있습니다.

Analyze ID는 문서를 쿼리할 수 있는 Amazon Textract의 기능입니다. Read For Me에는 만료 날짜, 발행 날짜 또는 문서 번호를 구체적으로 요청할 수 있는 드롭다운 메뉴가 있습니다. 동일한 워크플로를 사용하여 특정 질문에 대한 답변을 제공하는 MP3 파일을 만들 수 있습니다.

에서 Analyze ID 기능을 시연할 수 있습니다. readforme.io/분석.

추가 폴리 기능

  • Read For Me는 다양한 언어와 방언을 사용하는 여러 신경 음성을 제공합니다. 그 외 여러 가지가 있으니 참고하세요 목소리 우리가 구현하지 않은 중에서 선택할 수 있습니다. 새로운 음성을 사용할 수 있게 되면 프런트 엔드 코드와 람다 기능을 업데이트하는 것만으로 이를 활용할 수 있습니다.
  • Polly 서비스는 Read For Me에 아직 포함하지 않은 다른 옵션도 제공합니다. 여기에는 조정이 포함됩니다. 목소리의 속도음성 표시.

결론

이 게시물에서는 AI 및 서버리스를 비롯한 다양한 AWS 서비스를 사용하여 시각 장애인을 돕는 방법에 대해 논의했습니다. Read For Me 프로젝트에 대해 자세히 알아보고 사용할 수 있습니다. readforme.io. 에서 Amazon Textract 예제를 찾을 수도 있습니다. GitHub 레포. Analyze ID에 대해 자세히 알아보려면 다음을 확인하세요. Amazon Textract를 사용하여 신원 문서에서 데이터 추출 지원 발표.

이 프로젝트의 소스 코드는 곧 공개되어 AWS의 공개 GitHub에 추가될 예정입니다.


저자에 관하여

잭 마르 체티 AWS의 수석 솔루션 아키텍트입니다. 소프트웨어 엔지니어링에 대한 배경 지식이 있는 Jack은 주로 고객이 서버리스, 이벤트 중심 아키텍처를 구현하도록 지원하는 데 중점을 두고 있습니다. 그는 두 번째 AWS re:Invent 컨퍼런스에 참석한 후 2013년에 첫 번째 분산형 클라우드 기반 애플리케이션을 구축했으며 그 이후로 계속 푹 빠져 있습니다. AWS 이전에 Jack은 세계에서 가장 큰 브랜드의 광고 대행사 공간 구축 경험에서 대부분의 경력을 보냈습니다. Jack은 법적으로 시각 장애인이며 아내 Erin과 고양이 Minou와 함께 시카고에 살고 있습니다. 그는 또한 크리스마스 영화와 공포에 주로 초점을 맞춘 시나리오 작가이자 감독입니다. Jack의 필모그래피 보기 IMDB 페이지.

알락 에스와라다스 일리노이주 시카고에 본사를 둔 AWS의 솔루션 아키텍트입니다. 그녀는 고객이 비즈니스 문제를 해결하기 위해 AWS 서비스를 활용하여 클라우드 아키텍처를 설계하도록 돕는 데 열정적입니다. 그녀는 컴퓨터 과학 공학 석사 학위를 가지고 있습니다. AWS에 합류하기 전에는 다양한 의료 기관에서 근무했으며 복잡한 시스템, 기술 혁신 및 연구를 설계한 심도 있는 경험이 있습니다. 그녀는 딸들과 어울리고 여가 시간에 야외 활동을 합니다.

스와갓 쿨카르니 AWS의 수석 솔루션 아키텍트이자 AI/ML 애호가입니다. 그는 클라우드 네이티브 서비스와 머신 러닝으로 고객의 실제 문제를 해결하는 데 열정적입니다. 일 외에 Swagat은 여행, 독서, 명상을 즐깁니다.

spot_img

최신 인텔리전스

spot_img