אמזון פולי הוא שירות שהופך טקסט לדיבור אמיתי. זה מאפשר פיתוח של מחלקה שלמה של יישומים שיכולים להמיר טקסט לדיבור במספר שפות.
שירות זה יכול לשמש צ'אטבוטים, ספרי אודיו ויישומי טקסט לדיבור אחרים בשילוב עם שירותי AWS AI או למידת מכונה (ML) אחרים. לדוגמה, אמזון לקס ו-Amazon Polly ניתן לשלב ליצירת צ'אט בוט שמנהל שיחה דו כיוונית עם משתמש ומבצע משימות מסוימות על סמך פקודות המשתמש. אמזון תעתיק, אמזון תרגם, וניתן לשלב את Amazon Polly כדי לתמלל דיבור לטקסט בשפת המקור, לתרגם אותו לשפה אחרת ולדבר אותו.
בפוסט זה, אנו מציגים גישה מעניינת להדגשת טקסט בזמן שהוא מוקרא באמצעות אמזון פולי. ניתן להשתמש בפתרון זה ביישומי טקסט לדיבור רבים כדי לבצע את הפעולות הבאות:
- הוסף יכולות ויזואליות לאודיו בספרים, אתרי אינטרנט ובלוגים
- הגבר את ההבנה כאשר לקוחות מנסים להבין את הטקסט במהירות תוך כדי הדיבור
הפתרון שלנו נותן ללקוח (הדפדפן, בדוגמה זו), את היכולת לדעת איזה טקסט (מילה או משפט) נאמרת על ידי אמזון פולי בכל רגע. זה מאפשר ללקוח להדגיש באופן דינמי את הטקסט תוך כדי אמירתו. יכולת כזו שימושית למתן סיוע חזותי לדיבור עבור מקרי השימוש שהוזכרו קודם לכן.
ניתן להרחיב את הפתרון שלנו לביצוע משימות נוספות מלבד הדגשת טקסט. לדוגמה, הדפדפן יכול להציג תמונות, לנגן מוזיקה או לבצע אנימציות אחרות בקצה הקדמי בזמן אמירת הטקסט. יכולת זו שימושית ליצירת ספרי שמע דינמיים, תוכן חינוכי ויישומי טקסט לדיבור עשירים יותר.
סקירת פתרונות
בבסיסו, הפתרון משתמש ב- Amazon Polly כדי להמיר מחרוזת טקסט לדיבור. ניתן להזין את הטקסט מהדפדפן או באמצעות קריאת API לנקודת הקצה שנחשפת על ידי הפתרון שלנו. הדיבור שנוצר על ידי אמזון פולי מאוחסן כקובץ שמע (פורמט MP3) ב-an שירות אחסון פשוט של אמזון (אמזון S3) דלי.
עם זאת, באמצעות קובץ האודיו בלבד, הדפדפן לא יכול למצוא אילו חלקים מהטקסט נאמרים בכל רגע מכיוון שאין לנו מידע מפורט על מתי כל מילה נאמרת.
אמזון פולי מספקת דרך להשיג זאת באמצעות סימני דיבור. סימני דיבור מאוחסנים בקובץ טקסט המציג את הזמן (נמדד באלפיות שניות מתחילת השמע) כאשר כל מילה או משפט נאמרים.
אמזון פולי מחזירה אובייקטים של סימני דיבור בזרם JSON מופרד בקווים. אובייקט סימן דיבור מכיל את השדות הבאים:
- זְמַן – חותמת הזמן באלפיות שניות מתחילת זרם האודיו המתאים
- סוּג - סוג סימן הדיבור (משפט, מילה, ויסמה או SSML)
- הַתחָלָה – ההיסט בבתים (לא תווים) של התחלת האובייקט בטקסט הקלט (לא כולל סימני ויזמה)
- סוֹף – ההיסט בבתים (לא תווים) של קצה האובייקט בטקסט הקלט (לא כולל סימני וידיים)
- ערך - זה משתנה בהתאם לסוג סימן הדיבור:
- SSML – תג SSML
- Viseme – שם ה-Visme
- מילה או משפט – מחרוזת משנה של טקסט הקלט המופרד על ידי שדות ההתחלה והסיום
לדוגמה, המשפט "למרי הייתה כבשה קטנה" יכול לתת לך את קובץ סימני הדיבור הבא אם אתה משתמש SpeechMarkTypes
= ["מילה", "משפט"] בקריאה ל-API להשגת סימני הדיבור:
המילה "היה" (בסוף שורה 3) מתחילה 373 אלפיות שניות לאחר תחילת זרם האודיו, מתחילה בבייט 5 ומסתיימת בבייט 8 של טקסט הקלט.
סקירה כללית של אדריכלות
הארכיטקטורה של הפתרון שלנו מוצגת בתרשים הבא.
אתר האינטרנט שלנו לפתרון מאוחסן ב-Amazon S3 כקבצים סטטיים (JavaScript, HTML), המתארחים ב- אמזון CloudFront (1) והוגש לדפדפן של משתמש הקצה (2).
כאשר המשתמש מזין טקסט בדפדפן באמצעות טופס HTML פשוט, הוא מעובד על ידי JavaScript בדפדפן. זה קורא ל-API (3) דרך שער API של אמזון, להפעיל an AWS למבדה פונקציה (4). פונקציית Lambda קוראת לאמזון פולי (5) כדי ליצור קבצי דיבור (אודיו) וסימני דיבור (JSON). שתי שיחות מתבצעות לאמזון פולי כדי להביא את קבצי סימני השמע והדיבור. השיחות מתבצעות באמצעות פונקציות אסינכרון של JavaScript. הפלט של שיחות אלה הוא קבצי סימני השמע והדיבור, המאוחסנים באמזון S3 (6a). כדי למנוע ממשתמשים מרובים להחליף קבצים אחד של השני בדלי S3, הקבצים מאוחסנים בתיקייה עם חותמת זמן. זה ממזער את הסיכוי ששני משתמשים יחליפו זה את הקבצים של זה באמזון S3. עבור מהדורת ייצור, אנו יכולים להשתמש בגישות חזקות יותר להפרדת קבצי משתמשים על סמך מזהה משתמש או חותמת זמן ומאפיינים ייחודיים אחרים.
פונקציית Lambda יוצרת כתובות URL חתומות מראש עבור קבצי סימוני הדיבור והדיבור ומחזירה אותם לדפדפן בצורה של מערך (7, 8, 9).
כאשר הדפדפן שולח את קובץ הטקסט לנקודת הקצה של ה-API (3), הוא מקבל בחזרה שתי כתובות URL חתומות מראש עבור קובץ האודיו וקובץ סימוני הדיבור בהפעלה סינכרונית אחת (9). זה מסומן על ידי סמל המפתח שליד החץ.
פונקציית JavaScript בדפדפן מביאה את קובץ סימני הדיבור ואת האודיו מנקודות האחיזה של כתובת האתר שלהם (10). זה מגדיר את נגן האודיו לנגן את האודיו. (תג האודיו HTML משמש למטרה זו).
כאשר המשתמש לוחץ על כפתור ההפעלה, הוא מנתח את סימני הדיבור שאוחזרו בשלב הקודם כדי ליצור סדרה של אירועים מתוזמנים באמצעות פסק זמן. האירועים מפעילים פונקציית callback, שהיא פונקציית JavaScript נוספת המשמשת להדגשת הטקסט המדובר בדפדפן. במקביל, פונקציית JavaScript מזרימה את קובץ האודיו מנקודת האחיזה של כתובת האתר שלו.
התוצאה היא שהאירועים מופעלים בזמנים המתאימים כדי להדגיש את הטקסט בזמן שהוא מושמע בזמן שהשמע מושמע. השימוש בפסקי זמן של JavaScript מספק לנו את הסנכרון של האודיו עם הטקסט המודגש.
תנאים מוקדמים
כדי להפעיל את הפתרון הזה, אתה צריך חשבון AWS עם AWS זהות וניהול גישה משתמש (IAM) בעל הרשאה להשתמש ב- Amazon CloudFront, Amazon API Gateway, Amazon Polly, Amazon S3, AWS Lambda ו-AWS Step Functions.
השתמש ב-Lambda כדי ליצור סימני דיבור ודיבור
הקוד הבא מפעיל את Amazon Polly synthesize_speech
פונקציה פעמיים כדי להביא את קובץ סימני השמע והדיבור. הן מופעלות כפונקציות אסינכרוניות ומתואמות להחזרת התוצאה בו-זמנית תוך שימוש בהבטחות.
בצד JavaScript, הדגשת הטקסט מתבצעת על ידי סימון (התחלה, סיום, מילה) והאירועים המתוזמנים נקבעים על ידי setTimers()
:
גישות אלטרנטיביות
במקום הגישה הקודמת, אתה יכול לשקול כמה חלופות:
- צור גם את סימני הדיבור וגם את קובצי האודיו בתוך מכשיר מצב Step Functions. מכונת המצב יכולה להפעיל את מצב הסניף המקביל כדי להפעיל שתי פונקציות שונות של Lambda: אחת ליצירת דיבור ואחרת ליצירת סימני דיבור. את הקוד לכך ניתן למצוא ב- שימוש בפונקציות-שלב תיקיית המשנה בריפו של Github.
- הפעל את Amazon Polly באופן אסינכרוני כדי ליצור את סימני השמע והדיבור. ניתן להשתמש בגישה זו אם תוכן הטקסט גדול או שהמשתמש אינו זקוק לתגובה בזמן אמת. לפרטים נוספים על יצירת קובצי שמע ארוכים, עיין ב יצירת קבצי אודיו ארוכים.
- בקש מאמזון פולי ליצור את כתובת האתר המיועדת מראש ישירות באמצעות
generate_presigned_url
התקשר ללקוח Amazon Polly ב-Boto3. אם אתה הולך עם גישה זו, אמזון פולי מייצר את סימני האודיו והדיבור מחדש בכל פעם. בגישה הנוכחית שלנו, אנו מאחסנים קבצים אלה באמזון S3. למרות שהקבצים המאוחסנים הללו אינם נגישים מהדפדפן בגרסה שלנו של הקוד, אתה יכול לשנות את הקוד כדי להפעיל קובצי אודיו שנוצרו בעבר על ידי שליפתם מאמזון S3 (במקום ליצור מחדש את האודיו עבור הטקסט שוב באמצעות Amazon Polly). יש לנו יותר דוגמאות קוד לגישה לאמזון פולי עם Python בספריית הקוד של AWS.
צור את הפתרון
הפתרון כולו זמין אצלנו ריפו של גיטוב. כדי ליצור פתרון זה בחשבונך, עקוב אחר ההוראות בקובץ README.md. הפתרון כולל א AWS CloudFormation תבנית כדי לספק את המשאבים שלך.
ניקוי
כדי לנקות את המשאבים שנוצרו בהדגמה זו, בצע את השלבים הבאים:
- מחק את דלי ה-S3 שנוצרו לאחסון תבנית CloudFormation (דלי A), קוד המקור (דלי B) ואת האתר (
pth-cf-text-highlighter-website-[Suffix]
). - מחק את ערימת CloudFormation
pth-cf
. - מחק את דלי S3 המכיל את קובצי הדיבור (
pth-speech-[Suffix]
). דלי זה נוצר על ידי תבנית CloudFormation כדי לאחסן את קבצי סימני השמע והדיבור שנוצרו על ידי אמזון פולי.
<br> סיכום
בפוסט זה, הראינו דוגמה לפתרון שיכול להדגיש טקסט תוך כדי אמירה באמצעות Amazon Polly. הוא פותח באמצעות תכונת סימני הדיבור של אמזון פולי, המספקת לנו סמנים עבור המקום שבו מתחילים כל מילה או משפט בקובץ שמע.
הפתרון זמין כתבנית CloudFormation. ניתן לפרוס אותו כפי שהוא לכל יישום אינטרנט שמבצע המרת טקסט לדיבור. זה יהיה שימושי להוספת יכולות ויזואליות לאודיו בספרים, אווטארים עם יכולות סינכרון שפתיים (באמצעות סימני דיבור של סיני), אתרי אינטרנט ובלוגים, ולסיוע לאנשים עם ליקויי שמיעה.
ניתן להרחיב אותו לביצוע משימות נוספות מלבד הדגשת טקסט. לדוגמה, הדפדפן יכול להציג תמונות, לנגן מוזיקה ולבצע אנימציות אחרות בקצה הקדמי בזמן שהטקסט מושמע. יכולת זו יכולה להיות שימושית ליצירת ספרי שמע דינמיים, תוכן חינוכי ויישומי טקסט לדיבור עשירים יותר.
אנו מזמינים אותך לנסות את הפתרון הזה וללמוד עוד על שירותי AWS הרלוונטיים מהקישורים הבאים. אתה יכול להרחיב את הפונקציונליות לצרכים הספציפיים שלך.
על המחבר
Varad G Varadarajan הוא יועץ מהימן ו-CTO בתחום עבור לקוחות דיגיטליים Native Businesses (DNB) ב-AWS. הוא עוזר להם לתכנן ולבנות פתרונות חדשניים בקנה מידה באמצעות מוצרים ושירותים של AWS. תחומי העניין של ורד הם ייעוץ אסטרטגיית IT, ארכיטקטורה וניהול מוצר. מחוץ לעבודה ורד נהנה מכתיבה יצירתית, צפייה בסרטים עם משפחה וחברים ומטיילים.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. רכב / רכבים חשמליים, פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- BlockOffsets. מודרניזציה של בעלות על קיזוז סביבתי. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/highlight-text-as-its-being-spoken-using-amazon-polly/
- :יש ל
- :הוא
- :לֹא
- $ למעלה
- 1
- 10
- 100
- 11
- 12
- 17
- 19
- 22
- 23
- 33
- 7
- 8
- 9
- a
- יכולת
- אודות
- גישה
- נגיש
- גישה
- חֶשְׁבּוֹן
- מוסיף
- נוסף
- יועץ
- לאחר
- שוב
- AI
- סיוע
- לבד
- חלופות
- למרות
- אמזון בעברית
- שער API של אמזון
- אמזון פולי
- אמזון שירותי אינטרנט
- an
- ו
- אנימציות
- אחר
- כל
- API
- בקשה
- יישומים
- גישה
- גישות
- מתאים
- ארכיטקטורה
- ARE
- אזורים
- מערך
- AS
- At
- אודיו
- זמין
- אווטרים
- לְהִמָנַע
- לחכות
- AWS
- AWS למבדה
- פונקציות שלב AWS
- בחזרה
- מבוסס
- BE
- כי
- ההתחלה
- להיות
- מלבד
- בלוגים
- ספרים
- שניהם
- סניף
- דפדפן
- לִבנוֹת
- עסקים
- לַחְצָן
- by
- שיחה
- שיחות
- CAN
- יכולות
- יכולת
- מקרים
- מסוים
- סיכויים
- מאפיינים
- תווים
- chatbot
- chatbots
- בכיתה
- לקוחות
- קוד
- משולב
- מצב
- יחד
- לשקול
- קונסול
- ייעוץ
- מכיל
- תוכן
- להמשיך
- שיחה
- המרה
- להמיר
- מתואם
- ליבה
- תוֹאֵם
- לִיצוֹר
- נוצר
- יוצר
- יוצרים
- יְצִירָתִי
- ראש אגף טכנולוגיה
- נוֹכְחִי
- לקוחות
- הדגמה
- תלוי
- פרס
- פרטים
- מפותח
- צעצועי התפתחות
- אחר
- דיגיטלי
- ישירות
- DNB
- do
- מסמך
- לא
- עשה
- לא
- דינמי
- באופן דינמי
- כל אחד
- מוקדם יותר
- חינוך
- מאפשר
- סוף
- נקודת קצה
- מסתיים
- עוסק
- נכנס
- שלם
- שגיאה
- אירועים
- כל
- דוגמה
- דוגמאות
- חשוף
- להאריך
- משפחה
- מאפיין
- מעטים
- שדה
- שדות
- שלח
- קבצים
- גימור
- לעקוב
- הבא
- בעד
- טופס
- פוּרמָט
- מצא
- חברים
- החל מ-
- חזית
- חזיתי
- פונקציה
- פונקציונלי
- פונקציות
- שער כניסה
- ליצור
- נוצר
- מייצר
- GitHub
- לתת
- נותן
- Go
- היה
- לטפל
- מטפל
- יש
- he
- שמיעה
- עוזר
- להבליט
- מודגש
- הדגשה
- אירח
- HTML
- http
- HTTPS
- i
- ID
- זהות
- if
- תמונות
- in
- כולל
- כולל
- הצביע
- מידע
- חדשני
- קלט
- בתוך
- מיידי
- במקום
- הוראות
- אינטרס
- מעניין
- אל תוך
- מעורר
- IT
- שֶׁלָה
- JavaScript
- ג'סון
- מפתח
- לדעת
- שפה
- שפות
- גָדוֹל
- לִלמוֹד
- למידה
- אורך
- לתת
- סִפְרִיָה
- קו
- קישורים
- קְצָת
- ארוך
- מכונה
- למידת מכונה
- עשוי
- ניהול
- רב
- סימן
- מוּזְכָּר
- ML
- לשנות
- יותר
- סרטים
- מספר
- כלי נגינה
- יליד
- צורך
- צרכי
- חדש
- חדש
- הבא
- אובייקט
- אובייקטים
- להשיג
- of
- לקזז
- on
- ONE
- or
- אחר
- שלנו
- הַחוּצָה
- תפוקה
- בחוץ
- מקביל
- חלקים
- אֲנָשִׁים
- לְבַצֵעַ
- מבצע
- רשות
- מקום
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- שיחק
- שחקן
- הודעה
- להציג
- מוצג
- קודם
- קוֹדֶם
- מעובד
- המוצר
- ניהול מוצר
- הפקה
- מוצרים
- הבטחה
- מבטיח
- מספק
- מתן
- אַספָּקָה
- מטרה
- מהר
- זמן אמת
- לשחרר
- רלוונטי
- משאבים
- תגובה
- תוצאה
- לַחֲזוֹר
- החזרות
- חָסוֹן
- הפעלה
- s
- אותו
- סולם
- שולח
- משפט
- סדרה
- שרות
- שירותים
- סט
- סטים
- לְהַצִיג
- הראה
- הופעות
- צד
- פָּשׁוּט
- בו זמנית
- פִּתָרוֹן
- פתרונות
- מָקוֹר
- קוד מקור
- לדבר
- ספציפי
- נאום
- דיבר
- לערום
- התחלה
- התחלות
- מדינה
- שלב
- צעדים
- אחסון
- חנות
- מאוחסן
- אִסטרָטֶגִיָה
- זרם
- זרמים
- מחרוזת
- כזה
- סמל
- סִנכְּרוּן
- תָג
- משימות
- תבנית
- טקסט לדיבור
- זֶה
- השמיים
- המקור
- המדינה
- שֶׁלָהֶם
- אותם
- אלה
- זֶה
- דרך
- זמן
- מתוזמן
- פִּי
- חותם
- ל
- לתרגם
- נסיעה
- מהימן
- לנסות
- פונה
- שתיים
- סוג
- להבין
- ייחודי
- כתובת האתר
- us
- להשתמש
- מְשׁוּמָשׁ
- משתמש
- משתמשים
- שימושים
- באמצעות
- ערך
- ערכים
- גרסה
- היה
- צופה
- דֶרֶך..
- we
- אינטרנט
- אפליקציית רשת
- שירותי אינטרנט
- אתר
- אתרים
- ברוך הבא
- מה
- מתי
- אשר
- בזמן
- מי
- כל
- עם
- Word
- תיק עבודות
- היה
- כתיבה
- אתה
- זפירנט