אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו- Amazon Polly

בכנס AWS re:Invent 2021 בלאס וגאס, הדגמנו קרא בשבילי ב-AWS Builders Fair - אתר המסייע לכבדי ראייה לשמוע מסמכים.

לאיכות טובה יותר, צפו בסרטון כאן.

טכנולוגיה מסתגלת ותכונות נגישות הן לרוב יקרות, אם הן זמינות בכלל. ספרי שמע עוזרים לכבדי ראייה לקרוא. תיאור אודיו הופך סרטים לנגישים. אבל מה עושים כשהתוכן עדיין לא עבר דיגיטציה?

פוסט זה מתמקד בשירותי AWS AI טקסטורה באמזון ו אמזון פולי, המעצימים את בעלי הראייה לקויה. Read For Me פותח בשיתוף ג'ק מרצ'טי, שהוא לקוי ראייה.

סקירת פתרונות

באמצעות ארכיטקטורה מונעת אירועים ללא שרת ושילוב של שירותי AI מרובים, אנו יכולים ליצור קבצי אודיו בצלילים טבעיים במספר שפות מתמונה של מסמך, או מכל תמונה עם טקסט. למשל, מכתב ממס הכנסה, כרטיס חג ממשפחה, או אפילו כותרות הפתיחה לסרט.

הבא אדריכלות עזר, שפורסם ב מרכז אדריכלות AWS מראה את זרימת העבודה של משתמש מצלם תמונה עם הטלפון שלו ומשמיע MP3 של התוכן שנמצא במסמך זה.

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

זרימת העבודה כוללת את השלבים הבאים:

  1. תוכן סטטי (HTML, CSS, JavaScript) מתארח ב- AWS להגביר.
  2. גישה זמנית ניתנת למשתמשים אנונימיים לשירותי backend באמצעות א אמזון קוגניטו מאגר זהויות.
  3. קבצי התמונה מאוחסנים ב שירות אחסון פשוט של אמזון (אמזון S3).
  4. משתמש מבצע בקשת POST דרך שער API של אמזון לשירות האודיו, המשרת פרוקסי לאקספרס פונקציות שלב AWS זרימת עבודה.
  5. זרימת העבודה של Step Functions כוללת את השלבים הבאים:
    1. טקסטורה באמזון מחלץ טקסט מהתמונה.
    2. אמזון להתבונן מזהה את שפת הטקסט.
    3. אם שפת היעד שונה מהשפה שזוהתה, אמזון תרגם מתרגם לשפת היעד.
    4. אמזון פולי יוצר קובץ שמע כפלט באמצעות הטקסט.
  6. זרימת העבודה של AWS Step Functions יוצרת קובץ שמע כפלט ומאחסנת אותו באמזון S3 בפורמט MP3.
  7. כתובת URL חתומה מראש עם מיקום קובץ האודיו המאוחסן באמזון S3 נשלחת חזרה לדפדפן המשתמש דרך API Gateway. המכשיר הנייד של המשתמש מנגן את קובץ השמע באמצעות כתובת האתר החתומה מראש.

בסעיפים הבאים, נדון בסיבות מדוע בחרנו בשירותים הספציפיים, דפוס הארכיטקטורה ותכונות השירות עבור פתרון זה.

שירותי AWS AI

מספר שירותי AI מחוברים יחד כדי להפעיל את Read For Me:

  • Amazon Textract מזהה את הטקסט בתמונה שהועלתה.
  • Amazon Comprehend קובע את השפה.
  • אם המשתמש בוחר בשפה דיבור שונה מהשפה בתמונה, אנו מתרגמים אותה באמצעות Amazon Translate.
  • אמזון פולי יוצרת את קובץ ה-MP3. אנו מנצלים את המנוע העצבי של אמזון פולי, שיוצר הקלטת אודיו טבעית יותר ומציאותית יותר.

אחד היתרונות העיקריים של שימוש בשירותי בינה מלאכותית אלה הוא קלות האימוץ עם מעט או ללא ניסיון הליבה של למידה חישובית הנדרשת. השירותים חושפים ממשקי API שלקוחות יכולים להפעיל באמצעות SDK הזמינים בשפות תכנות מרובות, כגון Python ו-Java.

עם Read For Me, כתבנו את הבסיס AWS למבדה פונקציות בפיתון.

AWS SDK עבור Python (Boto3)

אל האני AWS SDK עבור Python (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 לאחר יום אחד, כך שעלויות האחסון נמוכות.

זרימת עבודה סינכרונית

כאשר אתה בונה זרימות עבודה ללא שרת, חשוב להבין מתי קריאה סינכרונית הגיונית יותר מהארכיטקטורה וחווית המשתמש מאשר תהליך אסינכרוני. עם Read For Me, הלכנו בהתחלה בנתיב האסינכרוני ותכננו להשתמש ב-WebSockets כדי לתקשר דו-כיוונית עם הקצה הקדמי. זרימת העבודה שלנו תכלול שלב למציאת מזהה החיבור המשויך לזרימת העבודה של Step Functions ועם השלמתו, התריע בפני הקצה. למידע נוסף על תהליך זה, עיין ב מסקר לדחיפה: שנה ממשקי API באמצעות REST APIs ו-WebSockets של Amazon API Gateway.

בסופו של דבר בחרנו לא לעשות זאת והשתמשנו בפונקציות של צעד אקספרס שהן סינכרוניות. משתמשים מבינים שעיבוד תמונה לא יהיה מיידי, אבל גם יודעים שזה לא ייקח 30 שניות או דקה. היינו במרחב שבו כמה שניות היו משביעות רצון למשתמש הקצה ולא היו צריכים את היתרון של WebSockets. זה פשט את זרימת העבודה באופן כללי.

זרימת עבודה של פונקציות מהירות שלב

היכולת לפרק את הקוד שלך לפונקציות קטנות יותר ומבודדות מאפשרת שליטה עדינה, תחזוקה קלה יותר ויכולת קנה מידה מדויק יותר. לדוגמה, אם נקבע שפונקציית Lambda שהפעילה את אמזון פולי ליצור את קובץ השמע פועלת לאט יותר מהפונקציה שקבעה את השפה, נוכל לשנות את קנה המידה של הפונקציה הזו בצורה אנכית, להוסיף עוד זיכרון, מבלי שנצטרך לעשות זאת עבור האחרות. באופן דומה, אתה מגביל את רדיוס הפיצוץ של מה שפונקציית Lambda שלך יכולה לעשות או לגשת כאשר אתה מגביל את ההיקף והטווח שלה.

אחד היתרונות של תזמור זרימת העבודה שלך עם Step Functions הוא היכולת להציג לוגיקה של זרימת החלטות ללא צורך בכתיבת קוד כלשהו.

זרימת העבודה של Step Functions שלנו אינה מורכבת. זה ליניארי עד לשלב התרגום. אם אנחנו לא צריכים לקרוא לפונקציית Lambda תרגום, זה פחות עבורנו וחוויה מהירה יותר למשתמש. אנו יכולים להשתמש במעצב החזותי במסוף Step Functions כדי למצוא את המפתח הספציפי במטען הקלט, ואם הוא קיים, לקרוא לפונקציה אחת על פני השנייה באמצעות JSONPath. לדוגמה, המטען שלנו כולל מפתח שנקרא translate:

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

בתוך המעצב החזותי של Step Functions, אנו מוצאים את מפתח התרגום ומגדירים כללים שיתאימו.

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אדריכלות ללא ראש

Amplify מארח את קוד הקצה הקדמי. הקצה הקדמי כתוב ב-React וקוד המקור נבדק AWS CodeCommit. Amplify פותר כמה בעיות עבור משתמשים המנסים לפרוס ולנהל אתרים סטטיים. אם עשית זאת באופן ידני (באמצעות דלי S3 שהוגדר עבור אירוח אתרים סטטי וחזית זה עם אמזון CloudFront), תצטרך לפוג את המטמון בעצמך בכל פעם שתבצע פריסות. תצטרך גם לכתוב צינור CI/CD משלך. Amplify מטפל בזה בשבילך.

זה מאפשר ארכיטקטורה חסרת ראש, שבה קוד הקצה הקדמי מנותק מהקצה האחורי וניתן לנהל כל שכבה ולהתאים אותה ללא תלות באחרת.

ניתוח מזהה

בסעיף הקודם, דנו בדפוסי הארכיטקטורה לעיבוד התמונה שהועלתה ויצירת קובץ MP3 ממנה. להקריא לך מסמך בחזרה הוא צעד ראשון מצוין, אבל מה אם אתה רק רוצה לדעת משהו ספציפי מבלי שהכל יקרא לך בחזרה? לדוגמה, עליך למלא טופס מקוון ולספק את תעודת הזהות או מספר הדרכון שלך, או אולי את תאריך התפוגה שלו. לאחר מכן עליך לצלם תמונה של תעודת הזהות שלך, ותוך כדי קריאתה אליך, לחכות לחלק הספציפי הזה. לחלופין, תוכל להשתמש ב-Analyze ID.

ניתוח מזהה הוא תכונה של Amazon Textract המאפשרת לך לבצע שאילתות במסמכים. Read For Me מכיל תפריט נפתח שבו אתה יכול לבקש ספציפית את תאריך התפוגה, תאריך ההנפקה או מספר המסמך. אתה יכול להשתמש באותה זרימת עבודה כדי ליצור קובץ MP3 המספק תשובה לשאלה הספציפית שלך.

אתה יכול להדגים את תכונת ניתוח מזהה ב readforme.io/analyze.

תכונות נוספות של פולי

  • Read For Me מציעה מספר קולות עצביים תוך שימוש בשפות ובדיאלקטים שונים. שימו לב שיש עוד כמה קולות אתה יכול לבחור, מה שלא יישמנו. כאשר קול חדש זמין, עדכון לקוד הקצה ופונקציית למבדה זה כל מה שצריך כדי לנצל זאת.
  • שירות פולי מציע גם אפשרויות אחרות שטרם כללנו ב-Read For Me. אלה כוללים התאמת ה מהירות הקולות ו סימני דיבור.

סיכום

בפוסט זה, דנו כיצד להשתמש בשירותי AWS רבים, כולל AI וללא שרתים, כדי לסייע לכבדי ראייה. תוכל ללמוד עוד על פרויקט קרא בשבילי ולהשתמש בו על ידי ביקור readforme.io. אתה יכול גם למצוא דוגמאות של Amazon Textract ב- GitHub ריפו. למידע נוסף על ניתוח מזהה, בדוק הכרזה על תמיכה בחילוץ נתונים ממסמכי זהות באמצעות Amazon Textract.

קוד המקור לפרויקט זה יהיה בקוד פתוח ויתווסף ל- GitHub הציבורי של AWS בקרוב.


על הכותבים

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ג'ק מרצ'טי הוא אדריכל פתרונות בכיר ב-AWS. עם רקע בהנדסת תוכנה, ג'ק מתמקד בעיקר בסיוע ללקוחות ליישם ארכיטקטורות נטולות שרתים מונעות אירועים. הוא בנה את האפליקציה המבוזרת הראשונה שלו, מבוססת ענן, בשנת 2013 לאחר שהשתתף בכנס AWS re:Invent השני ומאז הוא מכור. לפני ה-AWS ג'ק בילה את עיקר הקריירה שלו בחלל משרדי פרסום בבניית חוויות עבור כמה מהמותגים הגדולים בעולם. ג'ק עיוור מבחינה חוקית ומתגורר בשיקגו עם אשתו ארין והחתול מינאו. הוא גם תסריטאי ובמאי עם התמקדות עיקרית בסרטי חג המולד ובאימה. צפו בפילמוגרפיה של ג'ק אצלו IMDb עמוד.

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.אלק אסוורדאס הוא אדריכל פתרונות ב-AWS שבסיסו בשיקגו, אילינוי. היא נלהבת לעזור ללקוחות לעצב ארכיטקטורות ענן תוך שימוש בשירותי AWS כדי לפתור אתגרים עסקיים. בעלת תואר שני בהנדסת מדעי המחשב. לפני שהצטרפה ל-AWS, היא עבדה עבור ארגוני בריאות שונים, ויש לה ניסיון מעמיק בבניית מערכות מורכבות, חדשנות טכנולוגית ומחקר. היא מבלה עם בנותיה וחוקרת את החוץ בזמנה הפנוי.

אפשר ללקויי ראייה לשמוע מסמכים באמצעות Amazon Textract ו-Amazon Polly PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.Swagat Kulkarni הוא אדריכל פתרונות בכיר ב-AWS וחובב AI/ML. הוא נלהב מפתרון בעיות בעולם האמיתי עבור לקוחות עם שירותים מקוריים בענן ולמידת מכונה. מחוץ לעבודה, סוואגט נהנה לטייל, לקרוא ולעשות מדיטציה.

בול זמן:

עוד מ למידת מכונות AWS