قم بتمكين المكفوفين من سماع المستندات باستخدام Amazon Textract و Amazon Polly PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

تمكين المكفوفين بصريًا من سماع المستندات باستخدام Amazon Textract و Amazon Polly

في مؤتمر AWS re: Invent لعام 2021 في لاس فيغاس ، قمنا بعمل نسخة تجريبية اقرأ لي في AWS Builders Fair - موقع ويب يساعد ضعاف البصر على سماع المستندات.

للحصول على جودة أفضل ، شاهد الفيديو هنا.

غالبًا ما تكون ميزات إمكانية الوصول والتقنية التكيفية باهظة الثمن ، إذا كانت متوفرة على الإطلاق. الكتب الصوتية تساعد ضعاف البصر على القراءة. الوصف الصوتي يجعل الأفلام سهلة الوصول. لكن ماذا تفعل عندما لا يكون المحتوى مُرقمنًا بالفعل؟

يركز هذا المنشور على خدمات AWS AI أمازون تيكستراك و الأمازون بولي، والتي تمكن من يعانون من ضعف البصر. تم تطوير برنامج Read For Me بالاشتراك مع Jack Marchetti ، الذي يعاني من إعاقة بصرية.

حل نظرة عامة

من خلال بنية بدون خادم تعتمد على الأحداث ومجموعة من خدمات الذكاء الاصطناعي المتعددة ، يمكننا إنشاء ملفات صوتية طبيعية بلغات متعددة من صورة مستند أو أي صورة بها نص. على سبيل المثال ، خطاب من مصلحة الضرائب ، أو بطاقة عطلة من العائلة ، أو حتى العناوين الافتتاحية لفيلم.

ما يلي الهندسة المعمارية المرجعيةالمنشورة في مركز الهندسة المعمارية AWS يوضح سير عمل مستخدم يلتقط صورة بهاتفه ويقوم بتشغيل ملف MP3 للمحتوى الموجود داخل هذا المستند.

قم بتمكين المكفوفين من سماع المستندات باستخدام Amazon Textract و Amazon Polly PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

يتضمن سير العمل الخطوات التالية:

  1. يتم استضافة المحتوى الثابت (HTML ، CSS ، JavaScript) على تضخيم AWS.
  2. يتم منح الوصول المؤقت للمستخدمين المجهولين إلى خدمات الخلفية عبر أمازون كوجنيتو تجمع الهوية.
  3. يتم تخزين ملفات الصور بتنسيق خدمة تخزين أمازون البسيطة (أمازون S3).
  4. يقوم المستخدم بتقديم طلب POST من خلال بوابة أمازون API إلى خدمة الصوت ، والتي توكيل إلى ملف وظائف خطوة AWS سير العمل.
  5. يتضمن سير عمل Step Functions الخطوات التالية:
    1. أمازون تيكستراك يستخرج النص من الصورة.
    2. فهم الأمازون يكتشف لغة النص.
    3. إذا كانت اللغة الهدف تختلف عن اللغة المكتشفة ، ترجمة أمازون يترجم إلى اللغة الهدف.
    4. الأمازون بولي يقوم بإنشاء ملف صوتي كمخرج باستخدام النص.
  6. يُنشئ سير عمل AWS Step Functions ملف صوتي كمخرج ويخزنه في Amazon S3 بتنسيق MP3.
  7. يتم إرسال عنوان URL موقّع مسبقًا مع موقع الملف الصوتي المخزن في Amazon S3 إلى متصفح المستخدم من خلال API Gateway. يقوم الجهاز المحمول للمستخدم بتشغيل الملف الصوتي باستخدام عنوان URL الموقع مسبقًا.

في الأقسام التالية ، نناقش أسباب اختيارنا للخدمات المحددة ونمط البنية وميزات الخدمة لهذا الحل.

خدمات AWS AI

تم توصيل العديد من خدمات الذكاء الاصطناعي معًا لتشغيل Read For Me:

  • يحدد Amazon Textract النص الموجود في الصورة التي تم تحميلها.
  • تحدد خدمة Amazon Comprehend اللغة.
  • إذا اختار المستخدم لغة منطوقة مختلفة عن اللغة الموجودة في الصورة ، فإننا نترجمها باستخدام Amazon Translate.
  • يقوم Amazon Polly بإنشاء ملف MP3. نستفيد من محرك Amazon Polly العصبي ، الذي يُنشئ تسجيلًا صوتيًا طبيعيًا ونابضًا بالحياة.

تتمثل إحدى الفوائد الرئيسية لاستخدام خدمات الذكاء الاصطناعي هذه في سهولة الاعتماد مع القليل من الخبرة الأساسية في التعلم الآلي أو لا تتطلب أي خبرة على الإطلاق. تعرض الخدمات واجهات برمجة التطبيقات (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 الفردية. لا توجد خوادم للتزويد ولا بنية تحتية للصيانة.

أنماط العمارة

في هذا القسم ، نناقش أنماط العمارة المختلفة المستخدمة في الحل.

Serverless

قمنا بتطبيق بنية بدون خادم لسببين رئيسيين: سرعة البناء والتكلفة. مع عدم وجود أجهزة أساسية لصيانتها أو بنية أساسية للنشر ، ركزنا بالكامل على كود منطق الأعمال ولا شيء آخر. سمح لنا هذا بالحصول على نموذج أولي فعال وتشغيله في غضون أيام. إذا كان المستخدمون لا يقومون بتحميل الصور بشكل نشط والاستماع إلى التسجيلات ، فلا شيء يعمل ، وبالتالي لا شيء يتكبد تكاليف خارج التخزين. تحذف قاعدة إدارة دورة حياة S3 الصور التي تم تحميلها وملفات MP3 بعد يوم واحد ، وبالتالي تكون تكاليف التخزين منخفضة.

سير العمل المتزامن

عندما تقوم بإنشاء مهام سير عمل بدون خادم ، من المهم أن تفهم متى تكون المكالمة المتزامنة أكثر منطقية من البنية وتجربة المستخدم أكثر من عملية غير متزامنة. مع Read For Me ، ذهبنا في البداية إلى المسار غير المتزامن وخططنا لاستخدام WebSockets للتواصل ثنائي الاتجاه مع الواجهة الأمامية. سيتضمن سير العمل لدينا خطوة للعثور على معرف الاتصال المرتبط بسير عمل وظائف الخطوة وعند الانتهاء ، قم بتنبيه الواجهة الأمامية. لمزيد من المعلومات حول هذه العملية ، يرجى الرجوع إلى من الاستطلاع إلى الدفع: قم بتحويل واجهات برمجة التطبيقات باستخدام واجهات برمجة تطبيقات Amazon API Gateway REST ومقابس الويب.

لقد اخترنا في النهاية عدم القيام بذلك واستخدمنا وظائف الخطوات السريعة المتزامنة. يدرك المستخدمون أن معالجة الصورة لن تكون فورية ، لكنهم يعرفون أيضًا أنها لن تستغرق 30 ثانية أو دقيقة. كنا في مكان كانت فيه بضع ثوانٍ مرضية للمستخدم النهائي ولم تكن بحاجة إلى الاستفادة من WebSockets. هذا يبسط سير العمل بشكل عام.

Express Step Functions سير العمل

تتيح القدرة على تقسيم الكود الخاص بك إلى وظائف أصغر ومعزولة التحكم الدقيق ، وسهولة الصيانة ، والقدرة على التوسع بشكل أكثر دقة. على سبيل المثال ، إذا قررنا أن وظيفة Lambda التي شغلت Amazon Polly لإنشاء ملف الصوت كانت تعمل بشكل أبطأ من الوظيفة التي تحدد اللغة ، فيمكننا توسيع نطاق هذه الوظيفة رأسياً ، وإضافة المزيد من الذاكرة ، دون الحاجة إلى القيام بذلك للآخرين. وبالمثل ، فإنك تحد من نصف قطر الانفجار لما يمكن لوظيفة Lambda القيام به أو الوصول إليه عندما تحد من نطاقه ومدى وصوله.

تتمثل إحدى مزايا تنظيم سير العمل باستخدام وظائف الخطوة في القدرة على تقديم منطق تدفق القرار دون الحاجة إلى كتابة أي تعليمات برمجية.

إن سير عمل وظائف الخطوة ليس معقدًا. إنه خطي حتى خطوة الترجمة. إذا لم نكن بحاجة إلى استدعاء وظيفة ترجمة Lambda ، فهذا أقل تكلفة علينا ، وتجربة أسرع للمستخدم. يمكننا استخدام المصمم المرئي في وحدة التحكم في وظائف الخطوة للعثور على المفتاح المحدد في حمولة الإدخال ، وإذا كان موجودًا ، فقم باستدعاء وظيفة واحدة على الأخرى باستخدام 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. يحل Amplify بعض المشكلات التي يواجهها المستخدمون الذين يحاولون نشر مواقع الويب الثابتة وإدارتها. إذا كنت تفعل ذلك يدويًا (باستخدام دلو S3 تم إعداده لاستضافة مواقع الويب الثابتة ومواجهة ذلك الأمازون CloudFront) ، يجب أن تنتهي صلاحية ذاكرة التخزين المؤقت بنفسك في كل مرة تقوم فيها بعمليات النشر. سيكون عليك أيضًا كتابة خط أنابيب CI / CD الخاص بك. تضخيم يعالج هذا من أجلك.

يسمح هذا ببنية بلا رأس ، حيث يتم فصل كود الواجهة الأمامية عن الواجهة الخلفية ويمكن إدارة كل طبقة وقياسها بشكل مستقل عن الأخرى.

تحليل المعرف

في القسم السابق ، ناقشنا أنماط البنية لمعالجة الصورة التي تم تحميلها وإنشاء ملف MP3 منها. تعد إعادة قراءة المستند إليك خطوة أولى رائعة ، ولكن ماذا لو كنت تريد فقط معرفة شيء محدد دون إعادة قراءة كل شيء إليك؟ على سبيل المثال ، تحتاج إلى ملء نموذج عبر الإنترنت وتقديم معرف الولاية أو رقم جواز السفر ، أو ربما تاريخ انتهاء صلاحيته. يجب عليك بعد ذلك التقاط صورة لبطاقة الهوية الخاصة بك ، وانتظر هذا الجزء المحدد أثناء قراءتها لك مرة أخرى. بدلاً من ذلك ، يمكنك استخدام معرف التحليل.

معرف التحليل هو إحدى ميزات Amazon Textract التي تمكنك من الاستعلام عن المستندات. يحتوي Read For Me على قائمة منسدلة حيث يمكنك أن تطلب تحديدًا تاريخ انتهاء الصلاحية أو تاريخ الإصدار أو رقم المستند. يمكنك استخدام نفس سير العمل لإنشاء ملف MP3 يوفر إجابة لسؤالك المحدد.

يمكنك عرض ميزة معرف التحليل على readforme.io/analyze.

ميزات بولي الإضافية

  • يقدم Read For Me أصواتًا عصبية متعددة تستخدم لغات ولهجات مختلفة. لاحظ أن هناك العديد من الآخرين أصوات يمكنك الاختيار من بينها ، وهو ما لم ننفذه. عندما يتوفر صوت جديد ، فإن تحديث كود الواجهة الأمامية ووظيفة لامدا هو كل ما يتطلبه الأمر للاستفادة منه.
  • تقدم خدمة Polly أيضًا خيارات أخرى لم ندرجها بعد في Read For Me. وتشمل تلك تعديل سرعة الاصوات و علامات الكلام.

وفي الختام

في هذا المنشور ، ناقشنا كيفية استخدام العديد من خدمات AWS ، بما في ذلك AI والخادم ، لمساعدة ضعاف البصر. يمكنك معرفة المزيد عن مشروع Read For Me واستخدامه من خلال زيارة readforme.io. يمكنك أيضًا العثور على أمثلة Amazon Textract على ملف جيثب ريبو. لمعرفة المزيد حول معرف التحليل ، تحقق من الإعلان عن دعم استخراج البيانات من مستندات الهوية باستخدام Amazon Textract.

ستكون الكود المصدري لهذا المشروع مفتوح المصدر وستتم إضافته قريبًا إلى GitHub الخاص بـ AWS.


حول المؤلف

قم بتمكين المكفوفين من سماع المستندات باستخدام Amazon Textract و Amazon Polly PlatoBlockchain Data Intelligence. البحث العمودي. عاي.جاك ماركيتي هو مهندس حلول أول في AWS. مع خلفية في هندسة البرمجيات ، يركز Jack بشكل أساسي على مساعدة العملاء في تنفيذ بنى بدون خادم وقائمة على الأحداث. قام ببناء أول تطبيق موزع قائم على السحابة في عام 2013 بعد حضور مؤتمر AWS re: Invent الثاني وأصبح مدمنًا منذ ذلك الحين. قبل AWS ، أمضى جاك الجزء الأكبر من حياته المهنية في تجارب بناء مساحات الوكالات الإعلانية لبعض أكبر العلامات التجارية في العالم. جاك كفيف قانونيًا ويقيم في شيكاغو مع زوجته إيرين والقطة مينو. وهو أيضًا كاتب سيناريو ومخرج يركز بشكل أساسي على أفلام عيد الميلاد والرعب. عرض فيلم جاك في موقعه شجونه .

قم بتمكين المكفوفين من سماع المستندات باستخدام Amazon Textract و Amazon Polly PlatoBlockchain Data Intelligence. البحث العمودي. عاي.ألاك إسوارداس هو مهندس حلول في AWS ومقره في شيكاغو ، إلينوي. إنها شغوفة بمساعدة العملاء في تصميم البنى السحابية باستخدام خدمات AWS لحل تحديات الأعمال. حاصلة على ماجستير في هندسة علوم الكمبيوتر. قبل انضمامها إلى AWS ، عملت في مؤسسات رعاية صحية مختلفة ، ولديها خبرة متعمقة في هندسة الأنظمة المعقدة والابتكار التكنولوجي والبحث. تتسكع مع بناتها وتستكشف الهواء الطلق في أوقات فراغها.

قم بتمكين المكفوفين من سماع المستندات باستخدام Amazon Textract و Amazon Polly PlatoBlockchain Data Intelligence. البحث العمودي. عاي.سواجات كولكارني هو مهندس حلول أول في AWS ومتحمس للذكاء الاصطناعي / التعلم الآلي. إنه متحمس لحل مشاكل العالم الحقيقي للعملاء من خلال الخدمات السحابية الأصلية والتعلم الآلي. خارج العمل ، تستمتع Swagat بالسفر والقراءة والتأمل.

الطابع الزمني:

اكثر من التعلم الآلي من AWS