تصور کنید یک جراح بدون نیاز به مترجم انسانی با بیماران در سراسر جهان تماس ویدیویی برقرار می کند. اگر یک استارتاپ نوپا بتواند به راحتی محصول خود را در سراسر مرزها و بازارهای جغرافیایی جدید با ارائه پشتیبانی روان، دقیق و چند زبانه مشتری و فروش، بدون نیاز به مترجم انسانی زنده گسترش دهد، چه؟ چه اتفاقی برای کسبوکار شما میافتد وقتی دیگر به زبان محدود نیستید؟
امروزه برگزاری جلسات مجازی با تیم های بین المللی و مشتریانی که به زبان های مختلف صحبت می کنند معمول است. چه جلسات داخلی یا خارجی باشند، به این معنی که اغلب در بحثهای پیچیده گم میشوید و ممکن است با موانع زبانی مواجه شوید که مانع از تأثیرگذاری شما به همان اندازه که میتوانید باشید.
در این پست، نحوه استفاده از سه سرویس AWS کاملاً مدیریت شده (آمازون رونوشت, ترجمه آمازونو آمازون پولی) برای تولید یک راه حل مترجم گفتار به گفتار در زمان واقعی که می تواند به سرعت ورودی صدای زنده یک گوینده منبع را به زبان مقصد گفتاری، دقیق و ترجمه شده ترجمه کند، همه با تجربه یادگیری ماشینی (ML) صفر.
بررسی اجمالی راه حل
مترجم ما شامل سه سرویس AWS ML کاملاً مدیریت شده است که با هم در یک اسکریپت پایتون با استفاده از AWS SDK برای پایتون (Boto3) برای ترجمه متن و بخش های متن به گفتار ما، و یک SDK جریان ناهمزمان برای رونویسی ورودی صوتی.
رونویسی آمازون: پخش جریانی گفتار به متن
اولین سرویسی که در پشته ما استفاده می کنید Amazon Transcript است، یک سرویس کاملاً مدیریت شده گفتار به متن که گفتار ورودی را دریافت کرده و آن را به متن رونویسی می کند. Amazon Transcript روشهای جذب انعطافپذیر، دستهای یا جریانی دارد، زیرا فایلهای صوتی ذخیرهشده یا جریان دادههای صوتی را میپذیرد. در این پست شما از SDK جریان ناهمزمان رونویسی آمازون برای پایتون، که از پروتکل جریان HTTP/2 برای پخش صدای زنده و دریافت رونوشت های زنده استفاده می کند.
هنگامی که ما برای اولین بار این نمونه اولیه را ساختیم، جذب جریانی Amazon Transcribe از تشخیص خودکار زبان پشتیبانی نمیکرد، اما از نوامبر 2021 دیگر اینطور نیست. هم انتقال دستهای و هم پخش جریانی اکنون از تشخیص خودکار زبان برای همه پشتیبانی میکنند. زبانهای پشتیبانی شده. در این پست، ما نشان میدهیم که چگونه یک راهحل مبتنی بر پارامتر از طریق یک طراحی بدون پارامتر چند زبانه بدون درز از طریق استفاده از تشخیص خودکار زبان جریانی امکانپذیر است. پس از اینکه بخش گفتار رونویسی شده ما به صورت متن برگردانده شد، شما درخواستی را به مترجم آمازون برای ترجمه و بازگرداندن نتایج در رونویسی آمازون ما ارسال می کنید. EventHandler
روش.
ترجمه آمازون: API ترجمه پیشرفته و کاملاً مدیریت شده
بعدی در پشته ما، Amazon Translate است، یک سرویس ترجمه ماشینی عصبی که ترجمه زبانی سریع، با کیفیت بالا، مقرون به صرفه و قابل تنظیم را ارائه می دهد. از ژوئن 2022، آمازون مترجم از ترجمه به 75 زبان پشتیبانی میکند، با جفتهای زبانی جدید و بهبودهایی که دائماً انجام میشود. مترجم آمازون از مدلهای یادگیری عمیق میزبانی شده در معماری AWS Cloud بسیار مقیاسپذیر و انعطافپذیر استفاده میکند تا بسته به مورد استفاده شما، ترجمههای دقیق را بهسرعت در زمان واقعی یا دستهای ارائه کند. استفاده از مترجم آمازون ساده است و نیازی به مدیریت معماری اساسی یا مهارت های ML ندارد. ترجمه آمازون دارای چندین ویژگی است، مانند ایجاد و استفاده از یک اصطلاحات سفارشی برای انجام نقشه برداری بین اصطلاحات خاص صنعت. برای کسب اطلاعات بیشتر در مورد محدودیت های سرویس ترجمه آمازون، مراجعه کنید دستورالعمل ها و محدودیت ها. پس از اینکه برنامه متن ترجمه شده را به زبان مقصد ما دریافت کرد، متن ترجمه شده را برای پخش فوری صوتی ترجمه شده به Amazon Polly ارسال می کند.
Amazon Polly: API تبدیل متن به گفتار کاملاً مدیریت شده
در نهایت، متن ترجمه شده را به Amazon Polly میفرستید، یک سرویس تبدیل متن به گفتار کاملاً مدیریت شده که میتواند پاسخهای کلیپ صوتی واقعی را برای پخش فوری پخش ارسال کند یا به صورت دستهای و ذخیره شده در سرویس ذخیره سازی ساده آمازون (Amazon S3) برای استفاده بعدی. شما می توانید جنبه های مختلف گفتار مانند تلفظ، صدا، زیر و بم، سرعت گفتار و موارد دیگر را با استفاده از استاندارد کنترل کنید. زبان نشانه گذاری سنتز گفتار (SSML).
شما می توانید گفتار را برای برخی از Amazon Polly ترکیب کنید صداهای عصبی از سبک Newscaster استفاده کنید تا آنها را شبیه گوینده اخبار تلویزیون یا رادیو کنید. همچنین می توانید تشخیص دهید که چه زمانی کلمات یا جملات خاصی در متن بر اساس فراداده موجود در جریان صوتی گفته می شود. این به توسعهدهنده اجازه میدهد تا برجستهسازی گرافیکی و انیمیشنها، مانند حرکات لب آواتار را با گفتار ترکیبشده همگام کند.
شما می توانید تلفظ کلمات خاص مانند نام شرکت، کلمات اختصاری، کلمات خارجی یا نو شناسی را تغییر دهید، برای مثال "P!nk"، "ROTFL" یا "C'est la vie" (زمانی که به زبان غیر فرانسوی صحبت می شود. صدا)، با استفاده از واژگان سفارشی.
نمای کلی معماری
نمودار زیر معماری راه حل ما را نشان می دهد.
گردش کار به شرح زیر است:
- صدا توسط Python SDK دریافت می شود.
- آمازون پولی گفتار را به 39 زبان ممکن به متن تبدیل می کند.
- ترجمه آمازون زبان ها را تبدیل می کند.
- Amazon Live Transcript متن را به گفتار تبدیل می کند.
- صدا به بلندگوها خروجی می شود.
پیش نیازها
شما به یک دستگاه میزبان با میکروفون، بلندگو و اتصال اینترنتی قابل اعتماد نیاز دارید. یک لپ تاپ مدرن باید برای این کار خوب عمل کند زیرا به سخت افزار اضافی نیاز نیست. در مرحله بعد، باید دستگاه را با چند ابزار نرم افزاری راه اندازی کنید.
شما باید Python 3.7+ را برای استفاده از SDK جریان ناهمزمان Amazon Transcribe و برای یک ماژول پایتون به نام نصب کرده باشید. pyaudio
، که برای کنترل میکروفون و بلندگوهای دستگاه استفاده می کنید. این ماژول به یک کتابخانه C به نام بستگی دارد portaudio.h
. اگر با مشکلاتی مواجه شدید pyaudio
خطاها، پیشنهاد می کنیم سیستم عامل خود را بررسی کنید تا ببینید آیا آن را دارید یا خیر portaudio.h
کتابخانه نصب شده است
برای مجوز و احراز هویت تماس های سرویس، شما یک هویت AWS و مدیریت دسترسی نقش سرویس (IAM) با مجوز برای فراخوانی خدمات AWS ضروری. با پیکربندی رابط خط فرمان AWS (AWS CLI) با این نقش سرویس IAM، می توانید اسکریپت ما را بدون نیاز به ارسال کلیدها یا رمزهای عبور بر روی دستگاه خود اجرا کنید، زیرا کتابخانه های AWS برای استفاده از اطلاعات کاربری پیکربندی شده AWS CLI نوشته شده اند. این یک روش راحت برای نمونه سازی سریع است و تضمین می کند که خدمات ما توسط یک هویت مجاز فراخوانی می شوند. مانند همیشه، هنگام ایجاد یک کاربر یا نقش IAM، هنگام تخصیص خط مشی های IAM از اصل حداقل امتیاز پیروی کنید.
برای جمع بندی، به پیش نیازهای زیر نیاز دارید:
- یک رایانه شخصی، مک یا دستگاه لینوکس با میکروفون، بلندگوها و اتصال به اینترنت
- La
portaudio.h
کتابخانه C برای سیستم عامل شما (brew, apt get, wget) که برای کارکردن pyaudio لازم است - AWS CLI 2.0 با کاربر مجاز IAM که با اجرای پیکربندی aws در AWS CLI پیکربندی شده است.
- پایتون 3.7+
- آمازون رونویسی Python SDK ناهمزمان
- کتابخانه های پایتون زیر:
boto3
amazon-transcribe
pyaudio
asyncio
concurrent
راه حل را اجرا کنید
شما بهعنوان نقطهی شروع، به شدت بر روی SDK پخش ناهمزمان Amazon Transcribe برای پایتون تکیه میکنید و میخواهید بر روی آن SDK خاص بسازید. بعد از اینکه SDK جریان برای پایتون را آزمایش کردید، اضافه می کنید میکروفون جریان ورودی با استفاده از pyaudio
، یک کتابخانه منبع باز Python که برای دستکاری داده های صوتی استفاده می شود. سپس برای قابلیت ترجمه و تبدیل متن به گفتار، تماسهای Boto3 را به مترجم آمازون و آمازون پولی اضافه میکنید. در نهایت، شما دوباره گفتار ترجمه شده را از طریق بلندگوهای رایانه پخش می کنید pyaudio
. ماژول پایتون concurrent
به شما این امکان را می دهد که کد مسدود کننده را در رشته ناهمزمان خود اجرا کنید تا گفتار بازگشتی آمازون پولی خود را به روشی یکپارچه و غیر مسدود پخش کنید.
بیایید همه ماژولهای ضروری خود را وارد کنیم، کلاسهای جریان را رونویسی کنیم و برخی از جهانیها را نمونهسازی کنیم:
اول، شما استفاده کنید pyaudio
برای به دست آوردن نرخ نمونه برداری، شاخص دستگاه و تعداد کانال دستگاه ورودی:
اگر این کار نمی کند، می توانید مانند کد زیر دستگاه های خود را حلقه زده و چاپ کنید و سپس از فهرست دستگاه برای بازیابی اطلاعات دستگاه استفاده کنید. pyaudio
:
تو استفاده میکنی channel_count
, sample_rate
و dev_index
به عنوان پارامتر در یک جریان میکروفون. در تابع تماس آن جریان، شما از یک استفاده می کنید asyncio
تماس غیرانسدادی بدون انسداد برای قرار دادن بایت های ورودی جریان میکروفون در یک asyncio
صف ورودی به اشیاء حلقه و input_queue ایجاد شده با توجه داشته باشید asyncio
و نحوه استفاده از آنها در کد زیر:
حال زمانی که عملکرد ژنراتور mic_stream()
نامیده می شود، تا زمانی که داده های ورودی میکروفون در صف ورودی وجود دارد، به طور مداوم بایت های ورودی را ارائه می دهد.
اکنون که میدانید چگونه بایتهای ورودی را از میکروفون دریافت کنید، بیایید نحوه نوشتن بایتهای صوتی خروجی Amazon Polly در جریان خروجی بلندگو را بررسی کنیم:
حالا بیایید آنچه را که در این پست ساختهاید گسترش دهیم SDK جریانی رونویسی ناهمزمان آمازون برای پایتون. در کد زیر با استفاده از یک شی اجرا کننده ایجاد می کنید ThreadPoolExecutor
زیر کلاس با سه کارگر همزمان. سپس یک فراخوانی از مترجم آمازون را روی رونوشت برگشتی نهایی شده در EventHandler اضافه میکنید و متن ترجمه شده، شی اجراکننده و ما را ارسال میکنید. aws_polly_tts()
عملکرد به یک asyncio
حلقه با loop.run_in_executor()
، که تابع Amazon Polly ما (با متن ورودی ترجمه شده) را به صورت ناهمزمان در شروع تکرار بعدی اجرا می کند. asyncio
حلقه
سرانجام ، ما این را داریم loop_me()
عملکرد. در آن، شما تعریف می کنید write_chunks()
، که یک جریان رونویسی آمازون را به عنوان آرگومان می گیرد و به صورت ناهمزمان تکه هایی از ورودی میکروفون جریانی را روی آن می نویسد. شما سپس استفاده کنید MyEventHandler()
با جریان رونویسی خروجی به عنوان آرگومان آن و ایجاد یک شی handler. سپس از await with استفاده می کنید asyncio.gather()
و با استفاده از متد ()write_chunks و handler با استفاده از روش handle_events () به آیندههای نهایی این کوروتینها رسیدگی کنید. در نهایت، تمام حلقه های رویداد را جمع آوری کرده و حلقه را حلقه می کنید loop_me()
عملکرد با run_until_complete()
. کد زیر را ببینید:
وقتی کدهای قبلی با هم بدون خطا اجرا می شوند، می توانید با میکروفون صحبت کنید و به سرعت صدای خود را که به چینی ماندارین ترجمه شده است بشنوید. ویژگی تشخیص خودکار زبان برای Amazon Transcript و Amazon Translate هر زبان ورودی پشتیبانی شده را به زبان مقصد ترجمه می کند. شما می توانید برای مدتی طولانی صحبت کنید و به دلیل ماهیت غیر مسدود کننده فراخوانی عملکرد، تمام ورودی گفتار شما ترجمه و گفتاری می شود، و این باعث می شود این ابزار عالی برای ترجمه سخنرانی های زنده باشد.
نتیجه
اگرچه این پست نشان داد که چگونه این سه API کاملاً مدیریت شده AWS میتوانند به طور یکپارچه با هم کار کنند، ما شما را تشویق میکنیم تا به این فکر کنید که چگونه میتوانید از این سرویسها به روشهای دیگری برای ارائه پشتیبانی چند زبانه برای سرویسها یا رسانههایی مانند زیرنویسهای چندزبانه با کسری از هزینه فعلی استفاده کنید. . پزشکی، تجاری، و حتی روابط دیپلماتیک همگی می توانند از خدمات ترجمه همیشه در حال بهبود، کم هزینه و کم هزینه بهره مند شوند.
برای کسب اطلاعات بیشتر در مورد پایه کد اثبات مفهوم برای این مورد استفاده، ما را بررسی کنید گیتهاب.
درباره نویسنده
مایکل ترن یک معمار راه حل با تیم مهندسی Envision در خدمات وب آمازون است. او راهنمایی های فنی ارائه می دهد و به مشتریان کمک می کند تا از طریق نشان دادن هنر ممکن در AWS به توانایی خود در نوآوری سرعت بخشند. او چندین نمونه اولیه در مورد هوش مصنوعی/ML و اینترنت اشیا برای مشتریان ما ساخته است. می توانید با من @Mike_Trann در توییتر تماس بگیرید.
کامرون ویلکس یک معمار نمونه سازی در تیم شتاب دهنده صنعت AWS است. در حالی که در تیم حضور داشت، چندین نمونه اولیه مبتنی بر ML را به مشتریان تحویل داد تا «هنر ممکن» ML را در AWS نشان دهد. او از تولید موسیقی، آفرود و طراحی لذت می برد.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آمازون پولی
- آمازون رونوشت
- ترجمه آمازون
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- نحوه فنی
- زفیرنت