AI อะไรเนี่ย

Tools

Amazon Polly เพิ่มสตรีมมิ่งสองทิศทางสำหรับการสร้างเสียงพูด AI แบบเรียลไทม์

Amazon Polly เพิ่มสตรีมมิ่งสองทิศทางสำหรับการสร้างเสียงพูด AI แบบเรียลไทม์

ใครที่ทำงานกับ AI สนทนา หรือแอปพลิเคชันที่ต้องการเสียงพูดแบบเรียลไทม์ ต้องเคยเจอปัญหาเรื่องเวลาแฝง (latency) แน่ๆ ใช่ไหมครับ? วันนี้ Amazon Polly ได้เปิดตัวฟีเจอร์ใหม่ที่น่าตื่นเต้นสุดๆ นั่นก็คือ Bidirectional Streaming API ที่จะเข้ามาช่วยแก้ปัญหานี้โดยเฉพาะ!

Bidirectional Streaming API คืออะไร?

เจ้า API ตัวใหม่นี้จาก Amazon Polly ถูกออกแบบมาเพื่อการสังเคราะห์เสียงพูดจากข้อความ (Text-to-Speech หรือ TTS) แบบเรียลไทม์โดยเฉพาะเลยครับ โดยเฉพาะอย่างยิ่งสำหรับแอปพลิเคชัน AI สนทนาที่ใช้โมเดลภาษาขนาดใหญ่ (LLMs) ซึ่งมีการสร้างข้อความออกมาทีละส่วน (incrementally)

พูดง่ายๆ คือ ปกติแล้วเราจะต้องรอให้ LLM สร้างข้อความเสร็จทั้งหมดก่อน ถึงจะส่งไปให้ Polly สังเคราะห์เสียงได้ แต่ด้วย Bidirectional Streaming API คุณสามารถส่งข้อความที่ LLM กำลังสร้างออกมาทีละนิดๆ ไปให้ Polly ได้เลย และ Polly ก็จะส่งเสียงที่สังเคราะห์ได้กลับมาทันทีเช่นกัน! ทำให้การสนทนาเป็นไปอย่างราบรื่นและเป็นธรรมชาติมากขึ้น

ทำไมถึงสำคัญ?

ก่อนหน้านี้ การสร้างประสบการณ์ AI สนทนาที่ลื่นไหลเหมือนคุยกับคนจริงเป็นเรื่องที่ท้าทายมากครับ เพราะ API TTS แบบเดิมๆ จะทำงานในรูปแบบ request-response นั่นหมายความว่าคุณต้องรวบรวมข้อความให้ครบถ้วนก่อนที่จะส่งคำขอสังเคราะห์เสียง

ลองนึกภาพผู้ช่วยเสมือนจริงที่ขับเคลื่อนด้วย LLM ดูนะครับ LLM จะสร้างข้อความออกมาทีละส่วน (หรือที่เรียกว่า token) ใช้เวลาหลายวินาที ถ้าใช้ TTS แบบเดิม ผู้ใช้จะต้องรอหลายขั้นตอนกว่าจะได้ยินเสียง:

  1. LLM สร้างข้อความตอบกลับจนเสร็จสมบูรณ์
  2. บริการ TTS สังเคราะห์ข้อความทั้งหมดให้เป็นเสียง
  3. ดาวน์โหลดไฟล์เสียงทั้งหมดก่อนที่จะเริ่มเล่นได้

กระบวนการนี้ทำให้เกิด "คอขวด" และเกิดความล่าช้าอย่างเห็นได้ชัด แต่ API Bidirectional Streaming ใหม่นี้เข้ามาแก้ปัญหาคอขวดเหล่านี้ได้ตรงจุด ด้วยการสื่อสารแบบสองทิศทาง (duplex communication) ผ่าน HTTP/2 ทำให้ส่งและรับข้อมูลได้พร้อมกันบนการเชื่อมต่อเดียว

คุณสมบัติเด่นและส่วนประกอบหลัก

API Bidirectional Streaming มาพร้อมกับแนวคิดที่แตกต่าง:

  • ส่งข้อความทีละส่วน: ส่งข้อความไปยัง Amazon Polly ทันทีที่ข้อความนั้นพร้อม ไม่ต้องรอให้เป็นประโยคหรือย่อหน้าเต็ม
  • รับเสียงทันที: ได้รับไฟล์เสียงที่สังเคราะห์แล้วกลับมาแบบเรียลไทม์
  • ควบคุมการสังเคราะห์: สามารถกำหนดให้สังเคราะห์ข้อความที่บัฟเฟอร์ไว้ทันที

ส่วนประกอบหลักๆ ที่ทำงานร่วมกันใน API นี้คือ:

  • TextEvent (จาก client ไป Polly): สำหรับส่งข้อความที่จะให้สังเคราะห์
  • CloseStreamEvent (จาก client ไป Polly): ส่งสัญญาณว่าหมดข้อความที่จะป้อนแล้ว
  • AudioEvent (จาก Polly ไป client): สำหรับรับไฟล์เสียงที่สังเคราะห์แล้วเป็นส่วนๆ
  • StreamClosedEvent (จาก Polly ไป client): ยืนยันว่าการสตรีมเสร็จสมบูรณ์แล้ว

ประสิทธิภาพที่เหนือกว่าอย่างเห็นได้ชัด

เพื่อพิสูจน์ประสิทธิภาพ Amazon ได้ทำการทดสอบเปรียบเทียบระหว่าง API SynthesizeSpeech แบบเดิม กับ API StartSpeechSynthesisStream แบบ Bidirectional Streaming ใหม่ โดยใช้ข้อความยาว 7,045 ตัวอักษร (970 คำ):

  • เวลาประมวลผลทั้งหมด: API Bidirectional Streaming ใช้เวลาเพียง 70,071 มิลลิวินาที (ประมาณ 70 วินาที) ซึ่ง เร็วขึ้น 39% เมื่อเทียบกับ API แบบเดิมที่ใช้เวลา 115,226 มิลลิวินาที (ประมาณ 115 วินาที)
  • จำนวนการเรียกใช้ API: API ใหม่ใช้การเรียกเพียง 1 ครั้งเท่านั้น ในขณะที่วิธีเดิมต้องเรียกถึง 27 ครั้ง ซึ่ง ลดลงถึง 27 เท่า

ผลลัพธ์นี้แสดงให้เห็นชัดเจนว่าวิธีการสตรีมแบบสองทิศทางนี้ช่วยลดเวลาแฝงแบบ end-to-end ได้อย่างมาก เพราะสามารถประมวลผลข้อความได้ทีละส่วนในขณะที่ LLM กำลังสร้างข้อความอยู่ ไม่ต้องรอให้ข้อความทั้งหมดเสร็จก่อนจึงจะเริ่มสังเคราะห์ได้

เริ่มต้นใช้งานได้เลย!

API Bidirectional Streaming นี้รองรับการใช้งานผ่าน AWS SDKs สำหรับหลายภาษา เช่น Java-2x, JavaScript v3, .NET v4, C++, Go v2, Kotlin, PHP v3, Ruby v3 และ Swift ใครที่อยากลองนำไปปรับใช้กับโปรเจกต์ AI สนทนาของตัวเอง สามารถดูรายละเอียดเพิ่มเติมและตัวอย่างโค้ดได้เลยครับ

อ่านต่อ: ไปดูรายละเอียดทางเทคนิคและตัวอย่างโค้ดเพิ่มเติมเกี่ยวกับการ Introducing Amazon Polly Bidirectional Streaming ได้ที่บล็อกอย่างเป็นทางการของ AWS ได้เลย!