آمازون پولی سرویسی است که متن را به گفتار واقعی تبدیل می کند. این امکان توسعه یک کلاس کامل از برنامه های کاربردی را فراهم می کند که می توانند متن را به گفتار در چندین زبان تبدیل کنند.
این سرویس میتواند توسط رباتهای چت، کتابهای صوتی و سایر برنامههای کاربردی تبدیل متن به گفتار در ارتباط با سایر خدمات AWS AI یا یادگیری ماشین (ML) استفاده شود. مثلا، آمازون لکس و آمازون پولی را می توان برای ایجاد یک چت بات که در یک مکالمه دو طرفه با کاربر شرکت می کند و وظایف خاصی را بر اساس دستورات کاربر انجام می دهد، ترکیب کرد. آمازون رونوشت, ترجمه آمازونو آمازون پولی را می توان برای رونویسی گفتار به متن در زبان مبدأ، ترجمه آن به زبان دیگری و صحبت کردن با آن ترکیب کرد.
در این پست، یک رویکرد جالب برای برجسته کردن متنی که با استفاده از آمازون پولی صحبت میشود، ارائه میکنیم. این راه حل را می توان در بسیاری از برنامه های تبدیل متن به گفتار برای انجام موارد زیر استفاده کرد:
- قابلیت های بصری را به صدا در کتاب ها، وب سایت ها و وبلاگ ها اضافه کنید
- هنگامی که مشتریان سعی می کنند متن را به سرعت در حالی که گفته می شود درک کنند، درک را افزایش دهید
راه حل ما به مشتری (مرورگر، در این مثال) این توانایی را می دهد که بداند چه متنی (کلمه یا جمله) توسط آمازون پولی در هر لحظه گفته می شود. این کار به مشتری امکان میدهد متن را در حین گفتار به صورت پویا برجسته کند. چنین قابلیتی برای ارائه کمک بصری به گفتار برای موارد استفاده که قبلا ذکر شد مفید است.
راه حل ما را می توان برای انجام کارهای اضافی علاوه بر برجسته کردن متن گسترش داد. برای مثال، مرورگر میتواند تصاویر را نشان دهد، موسیقی پخش کند یا انیمیشنهای دیگری را در قسمت جلویی هنگام گفتن متن اجرا کند. این قابلیت برای ایجاد کتاب های صوتی پویا، محتوای آموزشی و برنامه های کاربردی تبدیل متن به گفتار غنی تر مفید است.
بررسی اجمالی راه حل
در هسته خود، این راه حل از Amazon Polly برای تبدیل یک رشته متن به گفتار استفاده می کند. متن را می توان از مرورگر یا از طریق یک فراخوانی API به نقطه پایانی که توسط راه حل ما در معرض دید قرار می گیرد، وارد کرد. گفتار تولید شده توسط Amazon Polly به عنوان یک فایل صوتی (فرمت MP3) در یک ذخیره می شود سرویس ذخیره سازی ساده آمازون سطل (Amazon S3).
با این حال، با استفاده از فایل صوتی به تنهایی، مرورگر نمیتواند در هر لحظه متوجه شود که چه بخشهایی از متن گفته میشود، زیرا ما اطلاعات دقیقی درباره زمان بیان هر کلمه نداریم.
آمازون پولی راهی برای به دست آوردن این با استفاده از علائم گفتاری ارائه می دهد. علائم گفتار در یک فایل متنی ذخیره می شود که زمان بیان هر کلمه یا جمله را نشان می دهد (در میلی ثانیه از شروع صدا اندازه گیری می شود).
آمازون پولی اشیاء علامت گفتاری را در جریان JSON محدود شده با خط برمیگرداند. یک شی علامت گفتاری شامل فیلدهای زیر است:
- زمان - مهر زمانی بر حسب میلی ثانیه از ابتدای جریان صوتی مربوطه
- نوع - نوع علامت گفتار (جمله، کلمه، ویزه یا SSML)
- آغاز - تعدیل در بایت (نه کاراکتر) شروع شی در متن ورودی (بدون احتساب علائم viseme)
- پایان - جابجایی در بایت (نه کاراکتر) انتهای شی در متن ورودی (بدون احتساب علائم ویزه)
- ارزش - این بسته به نوع علامت گفتار متفاوت است:
- SSML – تگ SSML
- Viseme - نام ویزه
- کلمه یا جمله – یک رشته فرعی از متن ورودی که توسط فیلدهای شروع و پایان مشخص شده است
به عنوان مثال، جمله «مریم یک بره کوچک داشت» میتواند فایل نشانههای گفتاری زیر را در صورت استفاده به شما بدهد SpeechMarkTypes
= ["word", "sentence"] در فراخوانی API برای به دست آوردن علائم گفتاری:
کلمه "had" (در انتهای خط 3) 373 میلی ثانیه پس از شروع جریان صوتی شروع می شود، از بایت 5 شروع می شود و در بایت 8 متن ورودی پایان می یابد.
نمای کلی معماری
معماری راه حل ما در نمودار زیر ارائه شده است.
وب سایت ما برای راه حل در Amazon S3 به عنوان فایل های ثابت (جاوا اسکریپت، HTML) ذخیره می شود که در میزبانی می شوند. آمازون CloudFront (1) و به مرورگر کاربر نهایی (2) ارائه می شود.
هنگامی که کاربر متنی را از طریق یک فرم ساده HTML در مرورگر وارد می کند، توسط جاوا اسکریپت در مرورگر پردازش می شود. این یک API (3) را فراخوانی می کند دروازه API آمازون، برای فراخوانی یک AWS لامبدا تابع (4). تابع Lambda آمازون Polly (5) را برای تولید فایلهای گفتاری (صوتی) و علائم گفتاری (JSON) فراخوانی میکند. دو تماس با آمازون پولی برای واکشی فایلهای علامتهای صوتی و گفتاری برقرار میشود. تماس ها با استفاده از توابع همگام جاوا اسکریپت انجام می شود. خروجی این تماس ها فایل های علامت های صوتی و گفتاری است که در Amazon S3 (6a) ذخیره می شود. برای جلوگیری از بازنویسی چندین کاربر فایل های یکدیگر در سطل S3، فایل ها در پوشه ای با مهر زمان ذخیره می شوند. این شانس دو کاربر را برای بازنویسی فایل های یکدیگر در آمازون S3 به حداقل می رساند. برای انتشار تولید، میتوانیم از رویکردهای قویتری برای تفکیک فایلهای کاربران بر اساس شناسه کاربر یا مهر زمانی و سایر ویژگیهای منحصربهفرد استفاده کنیم.
تابع Lambda URL های از پیش امضا شده را برای فایل های گفتار و علامت های گفتاری ایجاد می کند و آنها را در قالب یک آرایه به مرورگر برمی گرداند (7، 8، 9).
وقتی مرورگر فایل متنی را به نقطه پایانی API (3) میفرستد، دو URL از پیش امضا شده برای فایل صوتی و فایل علامتهای گفتاری را در یک فراخوانی همزمان (9) دریافت میکند. این با علامت کلید کنار فلش نشان داده می شود.
یک تابع جاوا اسکریپت در مرورگر فایل نشانههای گفتار و صدا را از دستههای URL آنها واکشی میکند (10). پخش کننده صدا را برای پخش صدا تنظیم می کند. (برای این منظور از تگ صوتی HTML استفاده می شود).
وقتی کاربر روی دکمه پخش کلیک میکند، علامتهای گفتاری بازیابی شده در مرحله قبل را تجزیه میکند تا با استفاده از زمانبندی، یک سری رویدادهای زمانبندی شده ایجاد کند. رویدادها یک تابع callback را فراخوانی می کنند که یکی دیگر از تابع های جاوا اسکریپت است که برای برجسته کردن متن گفتاری در مرورگر استفاده می شود. به طور همزمان، تابع جاوا اسکریپت فایل صوتی را از دسته URL آن پخش می کند.
نتیجه این است که رویدادها در زمانهای مناسب اجرا میشوند تا متن در حین پخش صدا برجسته شود. استفاده از وقفه های زمانی جاوا اسکریپت، همگام سازی صدا با متن هایلایت شده را برای ما فراهم می کند.
پیش نیازها
برای اجرای این راه حل، به یک حساب AWS با هویت AWS و مدیریت دسترسی کاربر (IAM) که مجوز استفاده از Amazon CloudFront، Amazon API Gateway، Amazon Polly، Amazon S3، AWS Lambda و AWS Step Functions را دارد.
از لامبدا برای ایجاد علائم گفتار و گفتار استفاده کنید
کد زیر آمازون پولی را فراخوانی می کند synthesize_speech
برای واکشی فایل علامت های صوتی و گفتاری دو بار عمل کنید. آنها به عنوان توابع ناهمزمان اجرا می شوند و هماهنگ می شوند تا نتیجه را همزمان با استفاده از وعده ها برگردانند.
در سمت جاوا اسکریپت، برجسته کردن متن توسط برجسته (شروع، پایان، کلمه) انجام می شود و رویدادهای زمان بندی شده توسط setTimers()
:
رویکردهای جایگزین
به جای رویکرد قبلی، می توانید چند گزینه را در نظر بگیرید:
- هم علائم گفتار و هم فایل های صوتی را در داخل یک ماشین حالت توابع مرحله ایجاد کنید. ماشین حالت می تواند شرط شاخه موازی را برای فراخوانی دو تابع مختلف لامبدا فراخوانی کند: یکی برای تولید گفتار و دیگری برای تولید علائم گفتاری. کد برای این را می توان در یافت با استفاده از توابع-step زیر پوشه در مخزن Github.
- برای ایجاد علائم صوتی و گفتاری، Amazon Polly را به صورت ناهمزمان فراخوانی کنید. اگر محتوای متنی بزرگ باشد یا کاربر به پاسخ بلادرنگ نیاز نداشته باشد، میتوان از این رویکرد استفاده کرد. برای جزئیات بیشتر در مورد ایجاد فایل های صوتی طولانی به ادامه مطلب مراجعه کنید ایجاد فایل های صوتی طولانی.
- از آمازون پولی بخواهید URL تعیین شده را مستقیماً با استفاده از آن ایجاد کند
generate_presigned_url
با مشتری Amazon Polly در Boto3 تماس بگیرید. اگر با این رویکرد پیش بروید، آمازون پولی هر بار علامت های صوتی و گفتاری را به تازگی تولید می کند. در رویکرد فعلی، ما این فایل ها را در آمازون S3 ذخیره می کنیم. اگرچه این فایلهای ذخیرهشده از مرورگر نسخه کد ما قابل دسترسی نیستند، میتوانید کد را برای پخش فایلهای صوتی قبلاً تولید شده با واکشی آنها از Amazon S3 (بهجای اینکه دوباره صدا را برای متن با استفاده از Amazon Polly تولید کنید) تغییر دهید. ما بیشتر داریم نمونه کد برای دسترسی به آمازون پولی با پایتون در کتابخانه کد AWS.
راه حل را ایجاد کنید
کل راه حل از ما در دسترس است repo Github. برای ایجاد این راه حل در حساب کاربری خود، دستورالعمل های موجود در فایل README.md را دنبال کنید. راه حل شامل یک AWS CloudFormation الگویی برای تامین منابع شما
پاک کردن
برای پاکسازی منابع ایجاد شده در این دمو، مراحل زیر را انجام دهید:
- سطل های S3 ایجاد شده برای ذخیره الگوی CloudFormation (سطل A)، کد منبع (سطل B) و وب سایت (
pth-cf-text-highlighter-website-[Suffix]
). - پشته CloudFormation را حذف کنید
pth-cf
. - سطل S3 حاوی فایل های گفتار را حذف کنید (
pth-speech-[Suffix]
). این سطل توسط قالب CloudFormation برای ذخیره فایلهای علامتهای صوتی و گفتاری تولید شده توسط Amazon Polly ایجاد شده است.
خلاصه
در این پست، نمونهای از راهحلی را نشان دادیم که میتواند متن را در حین صحبت با آمازون پولی برجسته کند. این با استفاده از ویژگی علامتهای گفتار آمازون پولی توسعه داده شده است، که نشانگرهایی را برای جایی که هر کلمه یا جمله در یک فایل صوتی شروع میشود در اختیار ما قرار میدهد.
راه حل به عنوان یک الگوی CloudFormation در دسترس است. می توان آن را مانند هر برنامه وب که تبدیل متن به گفتار را انجام می دهد، مستقر کرد. این برای افزودن قابلیتهای بصری به صدا در کتابها، آواتارها با قابلیت همگامسازی لب (با استفاده از نشانههای گفتار ویزیم)، وبسایتها و وبلاگها، و برای کمک به افراد دارای اختلالات شنوایی مفید خواهد بود.
می توان آن را برای انجام کارهای اضافی علاوه بر برجسته کردن متن گسترش داد. به عنوان مثال، مرورگر میتواند تصاویر را نشان دهد، موسیقی پخش کند و انیمیشنهای دیگری را در قسمت جلویی هنگام گفتن متن اجرا کند. این قابلیت می تواند برای ایجاد کتاب های صوتی پویا، محتوای آموزشی و برنامه های کاربردی تبدیل متن به گفتار غنی تر مفید باشد.
ما از شما استقبال می کنیم که این راه حل را امتحان کنید و در مورد خدمات AWS مربوطه از پیوندهای زیر بیشتر بدانید. شما می توانید عملکرد را برای نیازهای خاص خود گسترش دهید.
درباره نویسنده
Varad G Varadarajan یک مشاور معتمد و مدیر ارشد فناوری برای مشتریان مشاغل بومی دیجیتال (DNB) در AWS است. او به آنها کمک میکند تا با استفاده از محصولات و خدمات AWS راهحلهای خلاقانهای را در مقیاس بسازند. حوزه های مورد علاقه Varad مشاوره استراتژی فناوری اطلاعات، معماری و مدیریت محصول است. خارج از محل کار، واراد از نوشتن خلاقانه، تماشای فیلم با خانواده و دوستان و سفر لذت می برد.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. خودرو / خودروهای الکتریکی، کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- BlockOffsets. نوسازی مالکیت افست زیست محیطی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/highlight-text-as-its-being-spoken-using-amazon-polly/
- : دارد
- :است
- :نه
- $UP
- 1
- 10
- 100
- 11
- 12
- 17
- 19
- 22
- 23
- 33
- 7
- 8
- 9
- a
- توانایی
- درباره ما
- دسترسی
- در دسترس
- دسترسی
- حساب
- اضافه کردن
- اضافی
- مشاور
- پس از
- از نو
- AI
- کمک
- تنها
- جایگزین
- هر چند
- آمازون
- دروازه API آمازون
- آمازون پولی
- آمازون خدمات وب
- an
- و
- تصاوير متحرك
- دیگر
- هر
- API
- کاربرد
- برنامه های کاربردی
- روش
- رویکردها
- مناسب
- معماری
- هستند
- مناطق
- صف
- AS
- At
- سمعی
- در دسترس
- آواتار ها
- اجتناب از
- در انتظار
- AWS
- AWS لامبدا
- توابع مرحله AWS
- به عقب
- مستقر
- BE
- زیرا
- شروع
- بودن
- در کنار
- وبلاگ ها
- کتاب
- هر دو
- شاخه
- مرورگر
- ساختن
- کسب و کار
- دکمه
- by
- صدا
- تماس ها
- CAN
- قابلیت های
- قابلیت
- موارد
- معین
- شانس
- مشخصات
- کاراکتر
- chatbot
- chatbots
- کلاس
- مشتری
- رمز
- ترکیب شده
- شرط
- پیوستگی
- در نظر بگیرید
- کنسول
- مشاوره
- شامل
- محتوا
- ادامه دادن
- گفتگو
- تبدیل
- تبدیل
- هماهنگ
- هسته
- متناظر
- ایجاد
- ایجاد شده
- ایجاد
- ایجاد
- خالق
- CTO
- جاری
- مشتریان
- نسخه ی نمایشی
- بستگی دارد
- مستقر
- جزئیات
- توسعه
- پروژه
- مختلف
- دیجیتال
- مستقیما
- DNB
- do
- سند
- نمی کند
- انجام شده
- آیا
- پویا
- بطور پویا
- هر
- پیش از آن
- آموزش
- را قادر می سازد
- پایان
- نقطه پایانی
- به پایان می رسد
- درگیر می شود
- وارد می شود
- تمام
- خطا
- حوادث
- هر
- مثال
- مثال ها
- قرار گرفتن در معرض
- گسترش
- خانواده
- ویژگی
- کمی از
- رشته
- زمینه
- پرونده
- فایل ها
- پیدا کردن
- پایان
- به دنبال
- پیروی
- برای
- فرم
- قالب
- یافت
- دوستان
- از جانب
- جلو
- پایان جلو
- تابع
- قابلیت
- توابع
- دروازه
- تولید می کنند
- تولید
- تولید می کند
- GitHub
- دادن
- می دهد
- Go
- بود
- دسته
- دستگیره
- آیا
- he
- شنوایی
- کمک می کند
- نماد
- برجسته
- مشخص کردن
- میزبانی
- HTML
- HTTP
- HTTPS
- i
- ID
- هویت
- if
- تصاویر
- in
- شامل
- از جمله
- نشان داد
- اطلاعات
- ابتکاری
- ورودی
- داخل
- فوری
- در عوض
- دستورالعمل
- علاقه
- جالب
- به
- فراخوانی میکند
- IT
- ITS
- جاوا اسکریپت
- json
- کلید
- دانستن
- زبان
- زبان ها
- بزرگ
- یاد گرفتن
- یادگیری
- طول
- اجازه
- کتابخانه
- لاین
- لینک ها
- کوچک
- طولانی
- دستگاه
- فراگیری ماشین
- ساخته
- مدیریت
- بسیاری
- علامت
- ذکر شده
- ML
- تغییر
- بیش
- فیلم ها
- چندگانه
- موسیقی
- بومی
- نیاز
- نیازهای
- جدید
- به تازگی
- بعد
- هدف
- اشیاء
- گرفتن
- of
- چاپ افست
- on
- ONE
- or
- دیگر
- ما
- خارج
- تولید
- خارج از
- موازی
- بخش
- مردم
- انجام
- انجام می دهد
- اجازه
- محل
- افلاطون
- هوش داده افلاطون
- PlatoData
- بازی
- بازی
- بازیکن
- پست
- در حال حاضر
- ارائه شده
- قبلی
- قبلا
- فرآوری شده
- محصول
- مدیریت تولید
- تولید
- محصولات
- وعده
- وعده
- فراهم می کند
- ارائه
- تدارک
- هدف
- سریعا
- زمان واقعی
- آزاد
- مربوط
- منابع
- پاسخ
- نتیجه
- برگشت
- بازده
- تنومند
- دویدن
- s
- همان
- مقیاس
- می فرستد
- جمله
- سلسله
- سرویس
- خدمات
- تنظیم
- مجموعه
- نشان
- نشان داد
- نشان می دهد
- طرف
- ساده
- به طور همزمان
- راه حل
- مزایا
- منبع
- کد منبع
- سخن گفتن
- خاص
- سخنرانی - گفتار
- گفته شده
- پشته
- شروع
- شروع می شود
- دولت
- گام
- مراحل
- ذخیره سازی
- opbevare
- ذخیره شده
- استراتژی
- جریان
- جریان
- رشته
- چنین
- نماد
- هماهنگ سازی
- TAG
- وظایف
- قالب
- تبدیل متن به گفتار
- که
- La
- منبع
- دولت
- شان
- آنها
- اینها
- این
- از طریق
- زمان
- به پایان رسید
- بار
- برچسب زمان
- به
- ترجمه کردن
- سفر
- مورد اعتماد
- امتحان
- تبدیل
- دو
- نوع
- فهمیدن
- منحصر به فرد
- URL
- us
- استفاده کنید
- استفاده
- کاربر
- کاربران
- استفاده
- با استفاده از
- ارزش
- ارزشها
- نسخه
- بود
- تماشای
- مسیر..
- we
- وب
- برنامه تحت وب
- خدمات وب
- سایت اینترنتی
- وب سایت
- خوش آمد
- چی
- چه زمانی
- که
- در حین
- WHO
- تمام
- با
- کلمه
- مهاجرت کاری
- خواهد بود
- نوشته
- شما
- شما
- زفیرنت