تخيل جراحًا يجري مكالمات فيديو مع مرضى في جميع أنحاء العالم دون الحاجة إلى مترجم بشري. ماذا لو تمكنت شركة ناشئة من توسيع منتجاتها بسهولة عبر الحدود وفي أسواق جغرافية جديدة من خلال تقديم دعم ومبيعات مرنة ودقيقة ومتعددة اللغات للعملاء ، كل ذلك دون الحاجة إلى مترجم بشري مباشر؟ ماذا يحدث لعملك عندما لم تعد ملزمًا باللغة؟
من الشائع اليوم عقد اجتماعات افتراضية مع فرق عمل دولية وعملاء يتحدثون العديد من اللغات المختلفة. سواء كانت اجتماعات داخلية أو خارجية ، فهذا يعني أنه غالبًا ما تضيع في المناقشات المعقدة وقد تواجه حواجز لغوية تمنعك من أن تكون فعالاً قدر الإمكان.
في هذا المنشور ، ستتعلم كيفية استخدام ثلاث خدمات AWS مُدارة بالكامل (الأمازون النسخ, ترجمة أمازونو الأمازون بولي) لإنتاج حل شبه فوري لمترجم الكلام إلى كلام يمكنه بسرعة ترجمة الإدخال الصوتي المباشر لمتحدث المصدر إلى لغة هدف منطوقة ودقيقة ومترجمة ، وكل ذلك بدون تجربة تعلم آلي (ML).
نظرة عامة على الحل
يتكون مترجمنا من ثلاث خدمات AWS ML مُدارة بالكامل تعمل معًا في نص Python واحد باستخدام AWS SDK لـ Python (Boto3) لترجمة النصوص وأجزاء تحويل النص إلى كلام ، و SDK المتدفق غير المتزامن لنسخ إدخال الصوت.
Amazon Transcribe: دفق الكلام إلى نص
الخدمة الأولى التي تستخدمها في مجموعتنا هي Amazon Transcribe ، وهي خدمة تحويل الكلام إلى نص مُدارة بالكامل تأخذ كلام الإدخال وتحويله إلى نص. تتميز Amazon Transcribe بطرق استيعاب مرنة ، سواء كانت مجمعة أو متدفقة ، لأنها تقبل إما الملفات الصوتية المخزنة أو دفق البيانات الصوتية. في هذا المنشور ، تستخدم ملف Amazon Transcribe غير متزامن تدفق SDK لـ Python، والذي يستخدم بروتوكول دفق HTTP / 2 لدفق الصوت الحي وتلقي النسخ الحية.
عندما قمنا ببناء هذا النموذج الأولي لأول مرة ، لم يكن البث المتدفق في Amazon Transcribe يدعم الاكتشاف التلقائي للغة ، ولكن لم يعد هذا هو الحال اعتبارًا من نوفمبر 2021. يدعم كل من عرض الدفعة والبث المباشر الآن اكتشاف اللغة التلقائي للجميع اللغات المدعومة. في هذا المنشور ، نوضح كيف يمكن إيجاد حل قائم على المعلمات من خلال تصميم سلس متعدد اللغات بدون معلمات من خلال استخدام الكشف التلقائي عن اللغة المتدفقة. بعد إرجاع مقطع الكلام المكتوب كنص ، تقوم بإرسال طلب إلى Amazon Translate لترجمة النتائج وإرجاعها في Amazon Transcribe EventHandler
الأسلوب.
Amazon Translate: أحدث واجهة برمجة تطبيقات للترجمة مُدارة بالكامل
التالي في مجموعتنا هو Amazon Translate ، وهي خدمة ترجمة آلية عصبية توفر ترجمة لغة سريعة وعالية الجودة وبأسعار معقولة وقابلة للتخصيص. اعتبارًا من يونيو 2022 ، تدعم Amazon Translate الترجمة عبر 75 لغة ، مع إجراء تحسينات وأزواج لغوية جديدة باستمرار. تستخدم Amazon Translate نماذج التعلم العميق المستضافة على بنية سحابة AWS عالية المرونة وقابلة للتطوير لتقديم ترجمات دقيقة بسرعة إما في الوقت الفعلي أو في مجموعات ، اعتمادًا على حالة الاستخدام الخاصة بك. يعد استخدام Amazon Translate واضحًا ولا يتطلب أي إدارة للهندسة المعمارية الأساسية أو مهارات تعلم الآلة. يحتوي Amazon Translate على العديد من الميزات ، مثل إنشاء واستخدام ملف المصطلحات المخصصة للتعامل مع رسم الخرائط بين المصطلحات الخاصة بالصناعة. لمزيد من المعلومات حول حدود خدمة Amazon Translate ، يرجى الرجوع إلى إرشادات وقيود. بعد أن يتلقى التطبيق النص المترجم بلغتنا المستهدفة ، فإنه يرسل النص المترجم إلى Amazon Polly لتشغيل الصوت المترجم الفوري.
Amazon Polly: واجهة برمجة تطبيقات لتحويل النص إلى كلام مُدارة بالكامل
أخيرًا ، تقوم بإرسال النص المترجم إلى Amazon Polly ، وهي خدمة تحويل نص إلى كلام مُدارة بالكامل يمكنها إما إرسال استجابات مقاطع صوتية واقعية لتشغيل البث الفوري أو تجميعها وحفظها في خدمة تخزين أمازون البسيطة (Amazon S3) للاستخدام لاحقًا. يمكنك التحكم في جوانب مختلفة من الكلام مثل النطق ، ومستوى الصوت ، وطبقة الصوت ، ومعدل الكلام ، والمزيد باستخدام المعيار لغة ترميز تركيب الكلام (اس اس ام ال).
يمكنك تجميع الكلام لبعض Amazon Polly أصوات عصبية باستخدام أسلوب المذيع لجعلها تبدو وكأنها مذيع أخبار التلفزيون أو الراديو. يمكنك أيضًا اكتشاف وقت نطق كلمات أو جمل محددة في النص بناءً على البيانات الوصفية المضمنة في دفق الصوت. يسمح هذا للمطور بمزامنة التمييز الرسومي والرسوم المتحركة ، مثل حركات الشفاه في الصورة الرمزية ، مع الكلام المركب.
يمكنك تعديل نطق كلمات معينة ، مثل أسماء الشركات أو الاختصارات أو الكلمات الأجنبية أو الاصطلاحات الجديدة ، على سبيل المثال "P! nk" أو "ROTFL" أو "C'est la vie" (عند التحدث بلغة غير فرنسية صوت) ، باستخدام المعاجم المخصصة.
نظرة عامة على العمارة
يوضح الرسم البياني التالي بنية الحلول لدينا.
سير العمل كما يلي:
- يتم استيعاب الصوت بواسطة Python SDK.
- يحول Amazon Polly الكلام إلى نص بـ 39 لغة ممكنة.
- يقوم Amazon Translate بتحويل اللغات.
- يحول Amazon Live Transcribe النص إلى كلام.
- يتم إخراج الصوت إلى مكبرات الصوت.
المتطلبات الأساسية المسبقة
أنت بحاجة إلى جهاز مضيف تم إعداده بميكروفون ومكبرات صوت واتصال موثوق بالإنترنت. يجب أن يعمل الكمبيوتر المحمول الحديث بشكل جيد لهذا لأنه لا توجد حاجة إلى أجهزة إضافية. بعد ذلك ، تحتاج إلى إعداد الجهاز باستخدام بعض أدوات البرامج.
يجب أن يكون لديك Python 3.7+ مثبتًا لاستخدام Amazon Transcribe Streaming SDK غير المتزامن ولوحدة Python النمطية التي تسمى pyaudio
، والتي تستخدمها للتحكم في ميكروفون ومكبرات الصوت بالجهاز. تعتمد هذه الوحدة على مكتبة C تسمى portaudio.h
. إذا واجهت مشاكل مع pyaudio
أخطاء ، نقترح التحقق من نظام التشغيل الخاص بك لمعرفة ما إذا كان لديك ملف portaudio.h
مكتبة مثبتة.
لتفويض ومصادقة مكالمات الخدمة ، يمكنك إنشاء ملف إدارة الهوية والوصول AWS (IAM) مع أذونات للاتصال بخدمات AWS الضرورية. من خلال تكوين ملف واجهة سطر الأوامر AWS (AWS CLI) مع دور خدمة IAM هذا ، يمكنك تشغيل البرنامج النصي الخاص بنا على جهازك دون الحاجة إلى تمرير المفاتيح أو كلمات المرور ، لأن مكتبات AWS مكتوبة لاستخدام بيانات اعتماد مستخدم AWS CLI التي تم تكوينها. هذه طريقة ملائمة للنماذج الأولية السريعة وتضمن استدعاء خدماتنا من خلال هوية معتمدة. كما هو الحال دائمًا ، اتبع مبدأ الامتياز الأقل عند تعيين سياسات IAM عند إنشاء مستخدم أو دور IAM.
للتلخيص ، أنت بحاجة إلى المتطلبات الأساسية التالية:
- جهاز كمبيوتر شخصي أو Mac أو Linux مزود بميكروفون ومكبرات صوت واتصال بالإنترنت
- •
portaudio.h
مكتبة C لنظام التشغيل الخاص بك (الشراب ، apt get ، wget) ، وهو أمر ضروري لعمل pyaudio - AWS CLI 2.0 مع مستخدم IAM مصرح له بشكل صحيح تم تكوينه عن طريق تشغيل تكوين aws في AWS CLI
- بيثون 3.7 +
- Amazon Transcribe Python SDK غير المتزامن
- مكتبات Python التالية:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
تنفيذ الحل
ستعتمد بشكل كبير على Amazon Transcribe Streaming SDK غير المتزامن لـ Python كنقطة بداية ، وستقوم بالبناء فوق SDK المحدد. بعد تجربة SDK المتدفقة لـ Python ، يمكنك إضافة ميكروفون دفق الإدخال باستخدام pyaudio
، مكتبة مفتوحة المصدر بيثون شائعة الاستخدام لمعالجة البيانات الصوتية. ثم أضفت مكالمات Boto3 إلى Amazon Translate و Amazon Polly لوظائف الترجمة وتحويل النص إلى كلام. أخيرًا ، تقوم ببث الكلام المترجم من خلال مكبرات صوت الكمبيوتر مرة أخرى باستخدام pyaudio
. وحدة بايثون concurrent
يمنحك القدرة على تشغيل كود الحظر في سلسلة الرسائل غير المتزامنة الخاصة به لتشغيل خطاب Amazon Polly الذي تم إرجاعه بطريقة سلسة وبدون حظر.
دعنا نستورد جميع وحداتنا الضرورية ، وننسخ فئات البث ، وننشئ بعض الكرات الأرضية:
أولا ، أنت تستخدم pyaudio
للحصول على معدل أخذ عينات جهاز الإدخال ، وفهرس الجهاز ، وعدد القنوات:
إذا لم يفلح ذلك ، يمكنك أيضًا إجراء حلقة عبر أجهزتك وطباعتها كما هو موضح في الكود التالي ، ثم استخدام فهرس الجهاز لاسترداد معلومات الجهاز باستخدام pyaudio
:
انتقل إلى حقل channel_count
, sample_rate
و dev_index
كمعلمات في تيار ميكروفون. في وظيفة رد الاتصال لهذا الدفق ، يمكنك استخدام ملف asyncio
nonblocking thread-safe callback لوضع وحدات بايت الإدخال لتدفق الميكروفون في ملف asyncio
قائمة انتظار الإدخال. قم بتدوين الحلقة وكائنات input_queue التي تم إنشاؤها باستخدام asyncio
وكيف يتم استخدامها في الكود التالي:
الآن عندما تعمل وظيفة المولد mic_stream()
يتم استدعاؤه ، ينتج عنه باستمرار وحدات بايت الإدخال طالما أن هناك بيانات إدخال للميكروفون في قائمة انتظار الإدخال.
الآن بعد أن عرفت كيفية الحصول على وحدات بايت الإدخال من الميكروفون ، دعنا نلقي نظرة على كيفية كتابة بايت إخراج الصوت Amazon Polly إلى تدفق إخراج مكبر الصوت:
الآن دعنا نتوسع في ما أنشأته في المنشور Amazon Transcribe Streaming SDK غير متزامن لـ Python. في التعليمات البرمجية التالية ، يمكنك إنشاء كائن منفذ باستخدام ThreadPoolExecutor
فئة فرعية مع ثلاثة عمال متزامن. يمكنك بعد ذلك إضافة مكالمة Amazon Translate على النسخة النهائية التي تم إرجاعها في EventHandler وتمرير ذلك النص المترجم وكائن المنفذ و aws_polly_tts()
وظيفة في asyncio
حلقة مع loop.run_in_executor()
، التي تدير وظيفة Amazon Polly الخاصة بنا (مع نص الإدخال المترجم) بشكل غير متزامن في بداية التكرار التالي لملف asyncio
عقدة.
وأخيرا ، لدينا loop_me()
وظيفة. في ذلك ، أنت تحدد write_chunks()
، والذي يأخذ تدفق Amazon Transcribe كوسيطة ويكتب بشكل غير متزامن أجزاء من دفق إدخال الميكروفون إليه. ثم تستخدم ملفات MyEventHandler()
مع دفق النسخ الناتج كوسيطة لها وإنشاء كائن معالج. ثم تستخدم الانتظار مع asyncio.gather()
وتمرير write_chunks () والمعالج باستخدام طريقة handle_events () للتعامل مع العقود الآجلة النهائية لهذه coroutines. أخيرًا ، تقوم بجمع كل حلقات الأحداث وتكرار ملف loop_me()
تعمل مع run_until_complete()
. انظر الكود التالي:
عند تشغيل الكود السابق معًا بدون أخطاء ، يمكنك التحدث في الميكروفون وسماع صوتك سريعًا مترجمًا إلى لغة الماندرين الصينية. تعمل ميزة الكشف التلقائي عن اللغة في Amazon Transcribe و Amazon Translate على ترجمة أي لغة إدخال مدعومة إلى اللغة الهدف. يمكنك التحدث لبعض الوقت وبسبب الطبيعة غير المحظورة للمكالمات الوظيفية ، تتم ترجمة كل مدخلات الكلام الخاصة بك والتحدث بها ، مما يجعل هذه أداة ممتازة لترجمة الخطابات الحية.
وفي الختام
على الرغم من أن هذا المنشور أظهر كيف يمكن أن تعمل واجهات AWS API الثلاثة المُدارة بالكامل معًا بسلاسة ، فإننا نشجعك على التفكير في كيفية استخدام هذه الخدمات بطرق أخرى لتقديم دعم متعدد اللغات للخدمات أو الوسائط مثل التسميات التوضيحية المغلقة متعددة اللغات مقابل جزء بسيط من التكلفة الحالية . يمكن أن يستفيد الطب ، والأعمال التجارية ، وحتى العلاقات الدبلوماسية من خدمة ترجمة دائمة التحسن ومنخفضة التكلفة وقليلة الصيانة.
لمزيد من المعلومات حول إثبات قاعدة رمز المفهوم لحالة الاستخدام هذه ، تحقق من جيثب.
حول المؤلف
مايكل تران مهندس حلول مع فريق Envision Engineering في Amazon Web Services. يقدم التوجيه الفني ويساعد العملاء على تسريع قدرتهم على الابتكار من خلال إظهار فن الممكن على AWS. لقد قام ببناء نماذج أولية متعددة حول الذكاء الاصطناعي / التعلم الآلي وإنترنت الأشياء لعملائنا. يمكنك الاتصال بيMike_Trann على Twitter.
كاميرون ويلكس هو مهندس النماذج الأولية في فريق AWS Industry Accelerator. أثناء وجوده في الفريق ، قدم العديد من النماذج الأولية القائمة على ML للعملاء لإثبات "فن الممكن" لـ ML على AWS. إنه يستمتع بإنتاج الموسيقى والطرق الوعرة والتصميم.
- AI
- ai الفن
- مولد الفن ai
- الروبوت ai
- الأمازون بولي
- الأمازون النسخ
- ترجمة أمازون
- الذكاء الاصطناعي
- شهادة الذكاء الاصطناعي
- الذكاء الاصطناعي في البنوك
- روبوت ذكاء اصطناعي
- روبوتات الذكاء الاصطناعي
- برنامج ذكاء اصطناعي
- التعلم الآلي من AWS
- سلسلة كتلة
- مؤتمر blockchain ai
- عملة عبقرية
- الذكاء الاصطناعي للمحادثة
- مؤتمر التشفير ai
- دال
- التعلم العميق
- google ai
- آلة التعلم
- أفلاطون
- أفلاطون ع
- الذكاء افلاطون البيانات
- لعبة أفلاطون
- أفلاطون داتا
- بلاتوغمينغ
- مقياس ai
- بناء الجملة
- الكيفية الفنية
- زفيرنت