ในช่วงไม่กี่ปีที่ผ่านมา แพลตฟอร์มการศึกษาออนไลน์มีการยอมรับเพิ่มขึ้นและมีความต้องการการเรียนรู้ผ่านวิดีโอเพิ่มขึ้น เนื่องจากมีสื่อที่มีประสิทธิภาพในการดึงดูดผู้เรียน เพื่อขยายไปสู่ตลาดต่างประเทศและจัดการกับประชากรที่มีความหลากหลายทางวัฒนธรรมและภาษา ธุรกิจต่างๆ ยังมองหาการกระจายข้อเสนอการเรียนรู้ของตนด้วยการแปลเนื้อหาเป็นหลายภาษา ธุรกิจเหล่านี้กำลังมองหาวิธีที่เชื่อถือได้และคุ้มค่าในการแก้ปัญหาการใช้งานการแปลเป็นภาษาท้องถิ่น
การโลคัลไลซ์เนื้อหาส่วนใหญ่รวมถึงการแปลเสียงต้นฉบับเป็นภาษาใหม่ และการเพิ่มภาพประกอบ เช่น คำบรรยาย ตามธรรมเนียมแล้ว กระบวนการนี้ไม่ต้องเสียค่าใช้จ่าย ดำเนินการเอง และใช้เวลานาน รวมถึงการทำงานร่วมกับผู้เชี่ยวชาญด้านโลคัลไลเซชัน ด้วยพลังของบริการการเรียนรู้ของเครื่อง AWS (ML) เช่น ถอดความจากอเมซอน, อเมซอนแปลภาษาและ Amazon Pollyคุณสามารถสร้างโซลูชันโลคัลไลเซชันที่ใช้งานได้จริงและคุ้มค่า คุณสามารถใช้ Amazon Transcribe เพื่อสร้างการถอดเสียงของสตรีมเสียงและวิดีโอที่มีอยู่ แล้วแปลการถอดเสียงนี้เป็นหลายภาษาโดยใช้ Amazon Translate จากนั้น คุณสามารถใช้ Amazon Polly ซึ่งเป็นบริการแปลงข้อความเป็นคำพูดเพื่อแปลงข้อความที่แปลเป็นคำพูดของมนุษย์ที่ฟังดูเป็นธรรมชาติ
ขั้นตอนต่อไปของการแปลเป็นภาษาท้องถิ่นคือการเพิ่มคำบรรยายลงในเนื้อหา ซึ่งสามารถปรับปรุงการเข้าถึงและความเข้าใจ และช่วยให้ผู้ดูเข้าใจวิดีโอได้ดีขึ้น การสร้างคำบรรยายในเนื้อหาวิดีโออาจทำได้ยากเนื่องจากคำพูดที่แปลไม่ตรงกับจังหวะเวลาของเสียงพูดต้นฉบับ การซิงโครไนซ์ระหว่างเสียงและคำบรรยายเป็นงานสำคัญที่ต้องพิจารณา เนื่องจากอาจทำให้ผู้ชมขาดการเชื่อมต่อจากเนื้อหาของคุณหากเนื้อหาไม่ตรงกัน Amazon Polly นำเสนอโซลูชันสำหรับความท้าทายนี้ผ่านการเปิดใช้งาน เครื่องหมายคำพูดซึ่งคุณสามารถใช้เพื่อสร้างไฟล์คำบรรยายที่สามารถซิงค์กับเอาต์พุตเสียงพูดที่สร้างขึ้นได้
ในโพสต์นี้ เราตรวจสอบโซลูชันการแปลเป็นภาษาท้องถิ่นโดยใช้บริการ AWS ML ซึ่งเราใช้วิดีโอภาษาอังกฤษต้นฉบับและแปลงเป็นภาษาสเปน เรายังเน้นที่การใช้เครื่องหมายคำพูดเพื่อสร้างไฟล์คำบรรยายที่ซิงค์ในภาษาสเปน
ภาพรวมโซลูชัน
ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชัน
โซลูชันนี้ใช้ไฟล์วิดีโอและการตั้งค่าภาษาเป้าหมายเป็นอินพุต และใช้ Amazon Transcribe เพื่อสร้างการถอดเสียงวิดีโอ จากนั้นเราใช้ Amazon Translate เพื่อแปลการถอดเสียงเป็นภาษาเป้าหมาย ข้อความที่แปลเป็นข้อมูลป้อนเข้าไปยัง Amazon Polly เพื่อสร้างสตรีมเสียงและเครื่องหมายคำพูดในภาษาเป้าหมาย Amazon Polly กลับมาอีกครั้ง เอาต์พุตเครื่องหมายคำพูด ในสตรีม JSON ที่คั่นด้วยบรรทัด ซึ่งมีฟิลด์ต่างๆ เช่น เวลา ประเภท จุดเริ่มต้น สิ้นสุด และค่า ค่าอาจแตกต่างกันไปขึ้นอยู่กับประเภทของเครื่องหมายคำพูดที่ร้องขอในการป้อนข้อมูลเช่น เอสเอสเอ็มแอล, วีเซ่, คำ หรือ ประโยค เพื่อจุดประสงค์ในตัวอย่างของเรา เราขอ เครื่องหมายคำพูดประเภท as word
. ด้วยตัวเลือกนี้ Amazon Polly จะแบ่งประโยคออกเป็นคำแต่ละคำในประโยค และเวลาเริ่มต้นและสิ้นสุดในสตรีมเสียง ด้วยข้อมูลเมตานี้ เครื่องหมายคำพูดจะได้รับการประมวลผลเพื่อสร้างคำบรรยายสำหรับสตรีมเสียงที่เกี่ยวข้องซึ่งสร้างโดย Amazon Polly
สุดท้ายเราใช้ AWS Elemental MediaConvert เพื่อแสดงวิดีโอสุดท้ายพร้อมเสียงที่แปลและคำบรรยายที่เกี่ยวข้อง
วิดีโอต่อไปนี้สาธิตผลลัพธ์สุดท้ายของการแก้ปัญหา:
เวิร์กโฟลว์ AWS Step Function
เราใช้ ฟังก์ชันขั้นตอนของ AWS เพื่อประสานกระบวนการนี้ รูปภาพต่อไปนี้แสดงมุมมองระดับสูงของเวิร์กโฟลว์ Step Functions (บางขั้นตอนถูกละเว้นจากไดอะแกรมเพื่อความชัดเจนยิ่งขึ้น)
ขั้นตอนเวิร์กโฟลว์มีดังนี้:
- ผู้ใช้อัปโหลดไฟล์วิดีโอต้นทางไปที่ an บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (Amazon S3) ถัง
- พื้นที่ การแจ้งเตือนเหตุการณ์ S3 ทริกเกอร์ AWS แลมบ์ดา ฟังก์ชัน state_machine.py (ไม่แสดงในแผนภาพ) ซึ่งเรียกใช้เครื่องสถานะ Step Functions
- ขั้นตอนแรก, ถอดเสียง, เรียกใช้ฟังก์ชันแลมบ์ดา ถอดเสียง.pyซึ่งใช้ Amazon Transcribe เพื่อสร้างการถอดเสียงจากวิดีโอต้นทาง
โค้ดตัวอย่างต่อไปนี้สาธิตวิธีสร้างงานการถอดเสียงโดยใช้ Amazon Transcribe โบโต3 หลาม SDK:
หลังจากงานเสร็จสิ้น ไฟล์เอาต์พุตจะถูกบันทึกลงในบัคเก็ต S3 และกระบวนการจะดำเนินต่อไปในขั้นตอนต่อไปของการแปลเนื้อหา
- พื้นที่ แปลการถอดเสียงเป็นคำ ขั้นตอนเรียกฟังก์ชันแลมบ์ดา แปล.py ซึ่งใช้ Amazon Translate เพื่อแปลการถอดเสียงเป็นภาษาเป้าหมาย ที่นี่ เราใช้การแปลแบบซิงโครนัส/เรียลไทม์โดยใช้ แปล_ข้อความ ฟังก์ชั่น:
การแปลแบบซิงโครนัสมีข้อ จำกัด เกี่ยวกับขนาดเอกสารที่สามารถแปลได้ ในการเขียนนี้ มันถูกตั้งค่าเป็น 5,000 ไบต์ สำหรับขนาดเอกสารที่ใหญ่ขึ้น ให้พิจารณาใช้เส้นทางแบบอะซิงโครนัสในการสร้างงานโดยใช้ start_text_translation_job และตรวจสอบสถานะได้ทาง อธิบาย_text_translation_job.
- ขั้นตอนต่อไปคือ Step Functions Parallel รัฐที่เราสร้างสาขาขนานในเครื่องสถานะของเรา
- ในสาขาแรก เราเรียกใช้ฟังก์ชันแลมบ์ดาฟังก์ชันแลมบ์ดา create_polly_audio.py เพื่อสร้างสตรีมเสียง Amazon Polly ของเรา:
ที่นี่เราใช้ start_speech_synthetic_task เมธอดของ Amazon Polly Python SDK เพื่อทริกเกอร์งานการสังเคราะห์เสียงพูดที่สร้างเสียง Amazon Polly เราตั้งค่า
OutputFormat
ไปยังmp3
ซึ่งบอกให้ Amazon Polly สร้างสตรีมเสียงสำหรับการเรียก API นี้ - ในสาขาที่สอง เราเรียกใช้ฟังก์ชันแลมบ์ดา สร้าง_speech_marks.py เพื่อสร้างเอาต์พุตเครื่องหมายคำพูด:
- ในสาขาแรก เราเรียกใช้ฟังก์ชันแลมบ์ดาฟังก์ชันแลมบ์ดา create_polly_audio.py เพื่อสร้างสตรีมเสียง Amazon Polly ของเรา:
- เราใช้ .อีกครั้ง start_speech_synthetic_task วิธีแต่ระบุ
OutputFormat
ไปยังjson
ซึ่งบอกให้ Amazon Polly สร้างเครื่องหมายคำพูดสำหรับการเรียก API นี้
ในขั้นตอนต่อไปของแบรนช์ที่สอง เราเรียกใช้ฟังก์ชันแลมบ์ดา create_subtitles.pyซึ่งใช้ตรรกะในการสร้างไฟล์คำบรรยายจากเอาต์พุตเครื่องหมายคำพูด
มันใช้โมดูล Python ในไฟล์ webvtt_utils.py. โมดูลนี้มีฟังก์ชันยูทิลิตี้หลายอย่างเพื่อสร้างไฟล์คำบรรยาย วิธีหนึ่งดังกล่าว get_phrases_from_speechmarks
มีหน้าที่แยกวิเคราะห์ไฟล์เครื่องหมายคำพูด คำพูดที่ทำเครื่องหมายโครงสร้าง JSON ให้เวลาเริ่มต้นสำหรับแต่ละคำทีละคำ ในการสร้างเวลาคำบรรยายที่จำเป็นสำหรับไฟล์ SRT ก่อนอื่นเราจะสร้างวลีเกี่ยวกับคำประมาณ n (โดยที่ n=10) จากรายการคำในไฟล์เครื่องหมายคำพูด จากนั้นเราเขียนลงในรูปแบบไฟล์ SRT โดยใช้เวลาเริ่มต้นจากคำแรกในวลี และสำหรับเวลาสิ้นสุด เราใช้เวลาเริ่มต้นของคำ (n+1) แล้วลบด้วย 1 เพื่อสร้างรายการตามลำดับ . ฟังก์ชันต่อไปนี้จะสร้างวลีเพื่อเตรียมเขียนลงในไฟล์ SRT:
- ขั้นตอนสุดท้าย, สื่อแปลง, เรียกใช้ฟังก์ชันแลมบ์ดา create_mediaconvert_job.py เพื่อรวมสตรีมเสียงจาก Amazon Polly และไฟล์คำบรรยายกับไฟล์วิดีโอต้นทางเพื่อสร้างไฟล์เอาต์พุตสุดท้าย ซึ่งจัดเก็บไว้ในบัคเก็ต S3 ขั้นตอนนี้ใช้
MediaConvert
ซึ่งเป็นบริการแปลงรหัสวิดีโอแบบไฟล์พร้อมคุณสมบัติระดับการออกอากาศ ช่วยให้คุณสร้างเนื้อหาวิดีโอออนดีมานด์ได้อย่างง่ายดาย และรวมความสามารถด้านวิดีโอและเสียงขั้นสูงเข้ากับอินเทอร์เฟซทางเว็บที่เรียบง่าย ที่นี่อีกครั้งเราใช้ Python โบโต3 SDK เพื่อสร้างMediaConvert
งาน:
เบื้องต้น
ก่อนเริ่มต้น คุณต้องมีข้อกำหนดเบื้องต้นดังต่อไปนี้:
ปรับใช้โซลูชัน
ในการปรับใช้โซลูชันโดยใช้ AWS CDK ให้ทำตามขั้นตอนต่อไปนี้:
- โคลน กรุ:
- เพื่อให้แน่ใจว่า AWS CDK เป็น บูตสแตรป, เรียกใช้คำสั่ง
cdk bootstrap
จากรูทของที่เก็บ: - เปลี่ยนไดเร็กทอรีการทำงานเป็นรูทของที่เก็บ และรันคำสั่งต่อไปนี้:
ตามค่าเริ่มต้น การตั้งค่าเสียงเป้าหมายจะถูกตั้งค่าเป็นภาษาสเปนแบบสหรัฐอเมริกา (es-US
). หากคุณวางแผนที่จะทดสอบด้วยภาษาเป้าหมายอื่น ให้ใช้คำสั่งต่อไปนี้:
กระบวนการนี้ใช้เวลาสองสามนาทีจึงจะเสร็จสมบูรณ์ หลังจากนั้นจะแสดงลิงก์ที่คุณสามารถใช้ดูไฟล์วิดีโอเป้าหมายพร้อมเสียงที่แปลและคำบรรยายที่แปลแล้ว
ทดสอบวิธีแก้ปัญหา
เพื่อทดสอบโซลูชันนี้ เราใช้ส่วนเล็กๆ ต่อไปนี้ วิดีโอ AWS re:Invent 2017 จาก YouTube ซึ่งเปิดตัว Amazon Transcribe เป็นครั้งแรก คุณยังสามารถทดสอบวิธีแก้ปัญหาด้วยวิดีโอของคุณเอง ภาษาต้นฉบับของวิดีโอทดสอบของเราคือภาษาอังกฤษ เมื่อคุณปรับใช้โซลูชันนี้ คุณสามารถระบุการตั้งค่าเสียงเป้าหมายหรือคุณสามารถใช้การตั้งค่าเสียงเป้าหมายเริ่มต้น ซึ่งใช้ภาษาสเปนเพื่อสร้างเสียงและคำบรรยาย โซลูชันนี้สร้างบัคเก็ต S3 ที่สามารถใช้อัปโหลดไฟล์วิดีโอได้
- บนคอนโซล Amazon S3 ให้ไปที่ที่เก็บข้อมูล
PollyBlogBucket
. - เลือกที่เก็บข้อมูล ไปที่
/inputVideo
ไดเร็กทอรี และอัปโหลดไฟล์วิดีโอ (โซลูชันได้รับการทดสอบกับวิดีโอประเภท mp4) ณ จุดนี้ การแจ้งเตือนเหตุการณ์ S3 จะทริกเกอร์ฟังก์ชัน Lambda ซึ่งจะเริ่มเครื่องสถานะ - บนคอนโซล Step Functions ให้เรียกดูเครื่องสถานะ (
ProcessAudioWithSubtitles
). - เลือกการทำงานของเครื่องรัฐเพื่อค้นหา สารวัตรกราฟ.
นี้แสดงผลการทำงานสำหรับแต่ละรัฐ เวิร์กโฟลว์ Step Functions ใช้เวลาสองสามนาทีจึงจะเสร็จสมบูรณ์ หลังจากนั้นคุณสามารถตรวจสอบว่าขั้นตอนทั้งหมดเสร็จสมบูรณ์หรือไม่
ตรวจสอบผลลัพธ์
หากต้องการตรวจสอบผลลัพธ์ ให้เปิดคอนโซล Amazon S3 และตรวจสอบว่าไฟล์เสียง (.mp3) และไฟล์เครื่องหมายคำพูด (.marks) ถูกจัดเก็บไว้ในบัคเก็ต S3 หรือไม่ <ROOT_S3_BUCKET>/<UID>/synthesisOutput/
.
ต่อไปนี้คือตัวอย่างไฟล์เครื่องหมายคำพูดที่สร้างจากข้อความที่แปลแล้ว:
ในผลลัพธ์นี้ แต่ละส่วนของข้อความจะแยกออกเป็นเครื่องหมายคำพูด:
- เวลา – การประทับเวลาในหน่วยมิลลิวินาทีจากจุดเริ่มต้นของสตรีมเสียงที่เกี่ยวข้อง
- ชนิด – ประเภทของเครื่องหมายคำพูด (ประโยค คำ viseme หรือ SSML)
- เริ่มต้น – ออฟเซ็ตเป็นไบต์ (ไม่ใช่อักขระ) ของจุดเริ่มต้นของวัตถุในข้อความที่ป้อน (ไม่รวมเครื่องหมาย viseme)
- ปลาย – ออฟเซ็ตเป็นไบต์ (ไม่ใช่อักขระ) ของจุดสิ้นสุดของวัตถุในข้อความที่ป้อน (ไม่รวมเครื่องหมาย viseme)
- ความคุ้มค่า – คำแต่ละคำในประโยค
ไฟล์คำบรรยายที่สร้างขึ้นจะถูกเขียนกลับไปที่บัคเก็ต S3 คุณสามารถค้นหาไฟล์ภายใต้ <ROOT_S3_BUCKET>/<UID>/subtitlesOutput/
. ตรวจสอบไฟล์คำบรรยาย เนื้อหาควรคล้ายกับข้อความต่อไปนี้:
หลังจากสร้างไฟล์คำบรรยายและไฟล์เสียงแล้ว ไฟล์วิดีโอต้นฉบับขั้นสุดท้ายจะถูกสร้างขึ้นโดยใช้ MediaConvert ตรวจสอบคอนโซล MediaConvert เพื่อตรวจสอบว่าสถานะงานคือ COMPLETE
.
เมื่องาน MediaConvert เสร็จสิ้น ไฟล์วิดีโอขั้นสุดท้ายจะถูกสร้างขึ้นและบันทึกกลับไปที่บัคเก็ต S3 ซึ่งสามารถพบได้ใน <ROOT_S3_BUCKET>/<UID>/convertedAV/
.
ในการปรับใช้นี้ วิดีโอสุดท้ายจะเผยแพร่ผ่าน an Amazon CloudFront (CDN) ลิงก์และแสดงในเทอร์มินัลหรือใน การก่อตัวของ AWS Cloud ปลอบใจ
เปิด URL ในเบราว์เซอร์เพื่อดูวิดีโอต้นฉบับพร้อมตัวเลือกเพิ่มเติมสำหรับเสียงและคำบรรยาย คุณสามารถตรวจสอบว่าเสียงที่แปลและคำบรรยายตรงกันหรือไม่
สรุป
ในโพสต์นี้ เราได้พูดถึงวิธีสร้างไฟล์วิดีโอเวอร์ชันภาษาใหม่โดยไม่ต้องมีการแทรกแซงด้วยตนเอง ผู้สร้างเนื้อหาสามารถใช้กระบวนการนี้เพื่อซิงโครไนซ์เสียงและคำบรรยายของวิดีโอและเข้าถึงผู้ชมทั่วโลก
คุณสามารถรวมแนวทางนี้เข้ากับไปป์ไลน์การผลิตของคุณเองได้อย่างง่ายดายเพื่อจัดการกับปริมาณมากและปรับขนาดได้ตามความต้องการของคุณ Amazon Polly ใช้ ประสาท TTS (NTTS) เพื่อสร้างเสียงจากข้อความเป็นคำพูดที่เป็นธรรมชาติและเหมือนมนุษย์ นอกจากนี้ยังรองรับ การสร้างคำพูดจากSSMLซึ่งให้คุณควบคุมเพิ่มเติมว่า Amazon Polly สร้างคำพูดจากข้อความที่ให้ไว้ได้อย่างไร Amazon Polly ยังให้บริการ a หลากหลายเสียง ในหลายภาษาเพื่อรองรับความต้องการของคุณ
เริ่มต้นกับบริการแมชชีนเลิร์นนิงของ AWS โดยไปที่ หน้าสินค้าหรืออ้างถึง ห้องปฏิบัติการโซลูชันแมชชีนเลิร์นนิงของ Amazon หน้าที่คุณสามารถทำงานร่วมกับผู้เชี่ยวชาญเพื่อนำโซลูชันแมชชีนเลิร์นนิงมาสู่องค์กรของคุณ
แหล่งข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริการที่ใช้ในโซลูชันนี้ ให้อ้างอิงกับต่อไปนี้:
เกี่ยวกับผู้แต่ง
เรแกน โรซาริโอ ทำงานเป็นสถาปนิกโซลูชันที่ AWS โดยมุ่งเน้นที่บริษัทเทคโนโลยีการศึกษา เขาชอบช่วยเหลือลูกค้าในการสร้างโซลูชันที่ปรับขนาดได้ มีความพร้อมใช้งานสูง และปลอดภัยใน AWS Cloud เขามีประสบการณ์มากกว่าทศวรรษในการทำงานในด้านเทคโนโลยีที่หลากหลาย โดยมุ่งเน้นที่วิศวกรรมซอฟต์แวร์และสถาปัตยกรรม
อนิล โคดาลี เป็นสถาปนิกโซลูชันกับ Amazon Web Services เขาทำงานร่วมกับลูกค้า AWS EdTech โดยแนะนำพวกเขาด้วยแนวทางปฏิบัติที่ดีที่สุดด้านสถาปัตยกรรมสำหรับการย้ายปริมาณงานที่มีอยู่ไปยังระบบคลาวด์ และออกแบบปริมาณงานใหม่ด้วยแนวทางที่เน้นระบบคลาวด์เป็นหลัก ก่อนร่วมงานกับ AWS เขาทำงานร่วมกับผู้ค้าปลีกรายใหญ่เพื่อช่วยพวกเขาในการย้ายระบบคลาวด์
ประสณนา สรัสวดี กฤษณะ เป็นสถาปนิกโซลูชันกับ Amazon Web Services ที่ทำงานร่วมกับลูกค้า EdTech เขาช่วยขับเคลื่อนสถาปัตยกรรมคลาวด์และกลยุทธ์ข้อมูลโดยใช้แนวทางปฏิบัติที่ดีที่สุด ภูมิหลังของเขาคือการคำนวณแบบกระจาย การวิเคราะห์ข้อมูลขนาดใหญ่ และวิศวกรรมข้อมูล เขาหลงใหลเกี่ยวกับแมชชีนเลิร์นนิงและการประมวลผลภาษาที่เป็นธรรมชาติ
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- ห้องปฏิบัติการโซลูชัน Amazon ML
- Amazon Polly
- ถอดความจากอเมซอน
- อเมซอนแปลภาษา
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล