Paxa Labs
บล็อก

Paxa TTS Flash v2 เปิดให้ใช้งานแล้ว

Paxa TTS Flash v2 หรือที่เราเรียกว่า Pixie พูดตามคำกำกับที่เขียนไว้ในประโยค เช่น กระซิบหรือหัวเราะ ด้วยเสียง 50 เสียงที่พูดได้ทั้งไทย อังกฤษ และจีนกลาง ในราคาเดียวกับ Paxa TTS Flash

· Paxa Labs · อ่าน 9 นาที

บทพากย์บอกนักพากย์เสมอว่าแต่ละประโยคต้องพูดอย่างไร จะกระซิบหรือพูดทั้งน้ำตา โมเดลเสียงพูดที่อ่านทุกประโยคด้วยน้ำเสียงเรียบเท่ากันหมดทิ้งโน้ตเหล่านั้นไว้บนกระดาษ งานแสดงจึงต้องไปจบที่ห้องอัด

วันนี้เราเปิดตัว Paxa TTS Flash v2 ในแล็บเราเรียกโมเดลนี้ว่า Pixie และชื่อเล่นนี้อยู่ข้างชื่อโมเดลในเครื่องมือเสียงพูดของ Console ด้วย Pixie พูดตามโน้ตที่บทเขียนไว้ คำกำกับในวงเล็บเหลี่ยมที่เขียนเป็นภาษาไทย อังกฤษ หรือจีน กำหนดวิธีพูดของข้อความที่ตามมา และน้ำเสียงเปลี่ยนได้หลายครั้งในประโยคเดียว

Paxa TTS Flash v2 เปิดให้ใช้งานแล้วผ่านทุกช่องทางเสียงพูดของ API และใน Console ในราคา $10 ต่อหนึ่งล้านตัวอักษร เท่ากับ Paxa TTS Flash และคำขอที่ส่งถึง Paxa TTS Flash ยังทำงานเหมือนเดิม

วิดีโอเปิดตัว ทุกเสียงในวิดีโอสร้างจากข้อความบนจอ

อะไรเปลี่ยนไปจาก Paxa TTS Flash#

Paxa TTS FlashPaxa TTS Flash v2
การกำกับน้ำเสียงแท็กอารมณ์อย่าง [happy] บนเสียงทดลอง 2 เสียงคำกำกับเป็นคำใดก็ได้ ใช้ได้ทุกเสียง
เสียงอย่างหัวเราะหรือถอนหายใจไม่มีเสียงอย่าง [laughs] ดังตรงที่เขียน
คำอุทานไม่มี[um] และ [hmm] พูดออกมาเป็นคำ
การเน้นคำไม่มีช่วงข้อความ <emph> และ <whisper>
ภาษาแต่ละเสียงทำมาสำหรับไทย อังกฤษ หรือจีนกลางภาษาเดียวทุกเสียงพูดได้ทั้งสามภาษา
จำนวนเสียง3450
mp324 kHz, 64 kbps44.1 kHz, 128 kbps
opus48 kHz, 48 kbps48 kHz, 64 kbps
ราคาต่อ 1,000 ตัวอักษร10 เครดิต10 เครดิต

ประโยคเดียวกัน สองโมเดล#

ฝอยทอง อ่านประโยคเดียวกันสองครั้ง คำขอบน Paxa TTS Flash มีแค่ข้อความ ส่วนคำขอบน Paxa TTS Flash v2 มีคำกำกับสองคำ คือ [whispering] หน้าครึ่งแรก และ [ecstatic] หน้าครึ่งหลัง

ฝอยทอง อ่านประโยคเดียวกันบนทั้งสองโมเดล
  • I can't believe it. We actually did it!Paxa TTS Flash0:02
  • [whispering] I can't believe it. [ecstatic] We actually did it!Paxa TTS Flash v20:03

คำกำกับเขียนเป็นคำพูดธรรมดา#

คำกำกับคือคำใดก็ได้ในวงเล็บเหลี่ยม เช่น [เสียงสดใส] [sad] หรือ [speaking slowly, close to the microphone] จะเขียนแค่คำเดียวหรือบรรยายวิธีอ่านทั้งประโยคก็ได้ เช่น [ผู้ประกาศข่าว น้ำเสียงเป็นทางการ] หรือ [product advertisement, punchy and upbeat] ตัวคำกำกับไม่ถูกพูดออกมา

คำกำกับมีผลไปจนถึงคำกำกับถัดไป ข้อความก่อนคำกำกับแรกใช้น้ำเสียงปกติของเสียงนั้น และ [neutral] พากลับไปที่น้ำเสียงปกติ ตัวพิมพ์ใหญ่เล็ก ช่องว่างที่เกิน และวงเล็บแบบเต็มความกว้างไม่มีผล [Sad] [ sad ] และ [sad] คือคำกำกับเดียวกัน

ประโยคภาษาไทยด้านล่างกำกับด้วยคำภาษาไทย น้ำเสียงสั่น กลั้นน้ำตา หัวเราะทั้งน้ำตา และประกาศข่าวอย่างเป็นทางการ บรรทัดสุดท้ายเปลี่ยนน้ำเสียงสี่ครั้งในประโยคเดียว เริ่มจากกระซิบ ตื่นเต้นด้วยน้ำหนัก 2 ร้องไห้ แล้วจบด้วยเสียงหัวเราะ

คำกำกับกลางประโยค
  • [เสียงสั่น] กลับมาแล้วเหรอ [กลั้นน้ำตา] ฉันนึกว่าคุณจะไม่กลับมาแล้วเสน่ห์จันทน์0:04
  • [หัวเราะทั้งน้ำตา] คนบ้า ปล่อยให้รอตั้งนานเสน่ห์จันทน์0:04
  • [ผู้ประกาศข่าว น้ำเสียงเป็นทางการ] สวัสดีครับ ข่าวภาคค่ำวันนี้ เริ่มต้นที่กรุงเทพมหานครทองเอก0:04
  • [whispering] I was not going to tell anyone, [excited:2] but we got the house, [crying] after three years of saving. [laughs]ฝอยทอง0:07

น้ำหนักและการผสม#

ตัวเลขหลังโคลอนกำหนดว่าคำกำกับหรือเสียงจะมีผลแรงแค่ไหน เขียนเป็นตัวเลขหรือเปอร์เซ็นต์ก็ได้ เช่น [sad:0.5] [sad:50%] [laughs:0.3] เครื่องหมายบวกใช้ผสมคำกำกับหลายคำ แต่ละคำมีน้ำหนักของตัวเอง เช่น [happy:0.7+sad:0.3]

เสียง คำอุทาน และการเน้นคำ#

เสียงดังขึ้นตรงตำแหน่งที่เขียน ได้แก่ [sighs] [laughs] [chuckles] [exhales sharply] [gasps] [inhales deeply] [giggles] [sobs] [yawns] และ [clears throat] และตัวสะกดอย่าง [inhales] และ [scoffs]

[um] และ [hmm] คือคำอุทาน ถูกพูดออกมาเป็นคำที่อยู่ในวงเล็บ ตัวสะกดภาษาไทยอย่าง [เอ่อ] ก็อ่านแบบเดียวกัน

<emph> ทำให้คำข้างในเป็นคำที่ถูกเน้นในประโยค และ <whisper> ทำให้คำข้างในเป็นเสียงกระซิบ แท็กปิดพาประโยคกลับไปที่น้ำเสียงก่อนหน้า การเน้นคำเขียนเป็นวงเล็บได้ด้วย เช่น [เน้นเสียง] หรือ [emphasize]

เน้นคำเดียวในประโยค
  • [firm] I didn't eat your <emph>cookie</emph>.คุกกี้0:01

สิ่งที่โมเดลไม่ทำ#

แท็กที่โมเดลทำตามไม่ได้จะถูกปฏิเสธด้วย 400 tag_invalid ก่อนตัดเครดิตใด ๆ ข้อความที่มีแต่แท็กโดยไม่มีคำให้พูดจะได้คำตอบ 422 unspeakable_text ก่อนตัดเครดิตเช่นกัน

สิ่งที่ขอตัวอย่าง
สำเนียง[สำเนียงอีสาน], [british accent], [北京口音]
เสียงอื่น[เสียงเด็ก], [robotic], [old man voice]
การร้องเพลง[ร้องเพลง], [singing], [唱歌]
เสียงประกอบ[door slams], [applause]
ภาษา[ภาษาไทย], [english], [中文]
เสียงที่ไม่อยู่ในรายการ[sniffs] [gulps] [coughs] และ [sneezes]

คู่มือคำกำกับ รวมเสียง ตัวสะกด และแท็กที่ระบบไม่รับไว้ครบทุกตัว

50 เสียง ทุกเสียงพูดได้สามภาษา#

Paxa TTS Flash v2 มีเสียงทั้งหมด 50 เสียง 26 เสียงมาจาก Paxa TTS Flash โดยใช้รหัสเดิม และอีก 24 เสียงเป็นเสียงใหม่ บน Paxa TTS Flash แต่ละเสียงทำมาสำหรับภาษาเดียว ส่วนบน Paxa TTS Flash v2 ทุกเสียงพูดได้ทั้งไทย อังกฤษ และจีนกลาง เสียงเดียวจึงพูดถึงสินค้าได้ครบทั้งสามตลาด

Pixie อ่านข้อความหลายภาษาปนกันได้ด้วยเสียงเดียว แต่ละคำถูกอ่านตามภาษาของตัวอักษรที่เขียน ประโยคภาษาไทยที่มีชื่อสินค้าภาษาอังกฤษ หรือประกาศภาษาจีนที่มีเลขเที่ยวบินอยู่ข้างใน ส่งเป็นคำขอเดียวได้ ฟิลด์ language ที่ใส่หรือไม่ใส่ก็ได้ กำหนดวิธีอ่านรหัส ตัวเลข และสัญลักษณ์ เช่น ตั้งเป็น "th" แล้ว AB2039 จะอ่านชื่อตัวอักษรแบบไทย

โฆษณาเดียวกันสามภาษา และเอเจนต์คนเดียวที่พูดสองภาษา
  • [โฆษณาสินค้า น้ำเสียงกระฉับกระเฉง] ซีซันใหม่ สีใหม่ วางขายวันศุกร์นี้ขนมครก0:03
  • [product advertisement, punchy and upbeat] New season. New colors. In stores this Friday.ขนมครก0:03
  • [广告配音,热情洋溢] 新一季,新色彩,本周五上市。ขนมครก0:03
  • [apologetic, sincere] I'm so sorry about the wait. I've moved you to TG628 at 15:40, at no charge.คุกกี้0:07
  • [亲切的客服语气] 王太太您好,航班已改为TG628,15:40在12号登机口登机。คุกกี้0:07

เสียงใหม่ 24 เสียง#

เสียงเหมาะกับบท
สาคูผู้ช่วย AI
สะเต๊ะพระเอกอนิเมะ
ทองหยอดนางเอกอนิเมะ
ใบเตยผู้ให้คำปรึกษา
กล้วยทอดตัวการ์ตูนคู่หู
มะตูมสารคดี
ห่อหมกอัศวินแฟนตาซี
น้ำมะนาวโค้ชฟิตเนส
ข้าวต้มคุณพ่อใจดี
ซ่าหริ่มสาวข้างบ้าน
กระยาสารทคุณตา
เมี่ยงคำคุณยาย
ทอดมันพิธีกร
น้ำพริกเสียงทุ้มแหบ
ไข่เจียวนักพากย์เร้าใจ
ฉู่ฉี่อาจารย์
ครองแครงหุ่นยนต์
ช่อม่วงขี้อาย
ข้าวหลามหนุ่มโรแมนติก
ปลาทูนักศึกษา
แกงเผ็ดเสียงหนังตัวอย่าง
แกงป่าตัวร้าย
มะขามนางร้าย
ปุยฝ้ายไอดอลเสมือน

ฟังตัวอย่างของแต่ละเสียงได้ที่หน้ารวมเสียง และมีอีก 25 หน้าที่เล่นฉากเต็มด้วยเสียงเหล่านี้ ตั้งแต่เสียงพากย์อนิเมะและนิทานก่อนนอน ไปจนถึงพากย์กีฬาและเสียงหุ่นยนต์

ฉากจากวิดีโอเปิดตัว#

สายลูกค้า#

ลูกค้าหงุดหงิดเพราะรอสายนาน เจ้าหน้าที่ขอโทษและเปลี่ยนเที่ยวบินให้ แล้วลูกค้าขอให้แจ้งภรรยาเป็นภาษาจีน คุกกี้ ตอบเป็นภาษาอังกฤษแล้วต่อด้วยภาษาจีนกลางด้วยเสียงเดียวกัน

สายลูกค้า
  • [frustrated, tense] I've been on hold for forty minutes. My flight leaves in an hour.เอสเพรสโซ0:04
  • [apologetic, sincere] I'm so sorry about the wait. I've moved you to TG628 at 15:40, at no charge.คุกกี้0:07
  • [relieved] Thank you. Could you tell my wife? She only speaks Mandarin.เอสเพรสโซ0:04
  • [亲切的客服语气] 王太太您好,航班已改为TG628,15:40在12号登机口登机。คุกกี้0:07

ละครเสียง#

โจรสองคนเริ่มจากกระซิบนับเวลา แล้วตื่นตระหนก ตะโกนให้หนี และโล่งใจจนหายใจไม่ทัน แต่ละประโยคมีคำกำกับหนึ่งคำ และประโยคสุดท้ายจบด้วยเสียงหัวเราะ

ละครเสียง
  • [whispering] Thirty seconds. Don't touch anything.มอคค่า0:02
  • [panicked, fast] Too late. I touched something.ลาเต้0:01
  • [shouting urgently] Run! Go, go, go!มอคค่า0:01
  • [out of breath, relieved] We're out. Nobody saw us. [laughs]ลาเต้0:03

นิยายเสียงภาษาไทย#

ฉากพบกันอีกครั้ง พูดเป็นภาษาไทยและกำกับเป็นภาษาไทย เสียงสั่น กลั้นน้ำตา แล้วหัวเราะทั้งน้ำตา

นิยายเสียงภาษาไทย
  • [เสียงสั่น] กลับมาแล้วเหรอ [กลั้นน้ำตา] ฉันนึกว่าคุณจะไม่กลับมาแล้วเสน่ห์จันทน์0:04
  • [อบอุ่น] ผมสัญญาไว้แล้วไง ว่าจะกลับมามัสมั่น0:02
  • [หัวเราะทั้งน้ำตา] คนบ้า ปล่อยให้รอตั้งนานเสน่ห์จันทน์0:04

Timestamp ระดับคำ#

ตั้ง timestamps เป็น "word" แล้วคำตอบจะมีเวลาเริ่มและเวลาจบของทุกคำเป็นวินาที ใช้ทำคำบรรยายหรือไฮไลต์คำตามเสียงที่พูดได้เหมือนในหน้านี้ ส่วน "sentence" และ "utterance" ให้ช่วงเวลาที่ยาวกว่า ช่วงเวลาครอบเฉพาะข้อความที่พูด แท็กไม่มีช่วงเวลาของตัวเอง

คำขอแบบรอครบที่ขอ Timestamp จะได้ JSON ที่มีเสียงเป็น base64 คู่กับ timing.spans ส่วนคำขอแบบสตรีมจะได้ JSON ทีละบรรทัดต่อหนึ่งช่วงเสียง แต่ละบรรทัดมีเสียงและช่วงเวลาที่จบในช่วงนั้น คำขอที่ขอ Timestamp คิดค่าบริการ 125 เปอร์เซ็นต์ของอัตราเสียงพูด ดูทั้งสองรูปแบบได้ในคู่มือ Timestamp

ความเร็วและการสตรีม#

จากการวัดของเราเองที่สิงคโปร์ เสียงแรกของคำขอกลับมาเร็วสุดภายใน 90 มิลลิวินาที เมื่อตั้ง stream เป็น true เสียงจะเริ่มเล่นได้ระหว่างที่ส่วนที่เหลือของประโยคยังสังเคราะห์อยู่

ซ็อกเก็ตสด พูดข้อความออกมาได้ตั้งแต่โมเดลภาษายังเขียนไม่เสร็จ และใช้คำกำกับได้เหมือนกัน แท็กที่ยังพิมพ์ไม่จบตอนซ็อกเก็ตส่งข้อความไปสังเคราะห์จะรอจนปิดวงเล็บ และแต่ละรอบเริ่มด้วยคำกำกับที่รอบก่อนหน้าจบไว้ เฟรม cancel หยุดคำตอบได้ทันทีเมื่อปลายสายพูดแทรก ดูการทำงานทีละเฟรมได้ที่หน้าเสียงพูดแบบเรียลไทม์

ราคาเท่าเดิม#

Paxa TTS Flash v2 คิด 10 เครดิตต่อ 1,000 ตัวอักษร หรือ $10 ต่อหนึ่งล้านตัวอักษร เท่ากับ Paxa TTS Flash แท็กคิดตามจำนวนตัวอักษรที่เขียน รวมวงเล็บด้วย ส่วนคำขอที่ขอ Timestamp รวมถึงการเชื่อมต่อสดที่ขอ Timestamp คิด 125 เปอร์เซ็นต์ของอัตรานี้ เหมือนกันทั้งสองโมเดล

ประโยคที่ส่งตัวอักษรเครดิต
I can't believe it. We actually did it!390.39
[whispering] I can't believe it. [ecstatic] We actually did it!630.63
[whispering] I was not going to tell anyone, [excited:2] but we got the house, [crying] after three years of saving. [laughs]1251.25
[โฆษณาสินค้า น้ำเสียงกระฉับกระเฉง] ซีซันใหม่ สีใหม่ วางขายวันศุกร์นี้690.69
[广告配音,热情洋溢] 新一季,新色彩,本周五上市。260.26

เครดิตฟรี 100 เครดิตของบัญชีใหม่แปลงเป็นเสียงพูดได้ 10,000 ตัวอักษร หรือประมาณ 16 นาทีของเสียงพูดภาษาไทย

เริ่มใช้งาน#

  • POST /v1/tts ส่งเสียงกลับมาแบบรอครบหรือแบบสตรีม ตั้ง model เป็น paxa-tts-flash-v2
  • POST /v1/audio/speech ที่ใช้ร่วมกับ OpenAI ได้ อ่านแท็กใน input ตามกฎเดียวกัน OpenAI SDK ที่ชี้มาที่ Paxa API ส่งคำกำกับได้ตามที่เขียน
  • ซ็อกเก็ตสด /v1/tts/live ระบุโมเดลในเฟรม start
  • ใน Console เครื่องมือเสียงพูดมี Paxa TTS Flash v2 ให้เลือก โดยมีชื่อ Pixie อยู่ข้างชื่อโมเดล
curl -X POST https://api.paxalabs.com/v1/tts \
  -H "Authorization: Bearer $PAXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "[warm, unhurried] ยินดีต้อนรับกลับมาครับ [chuckles] วันนี้มีข่าวดี [เอ่อ] <whisper>แต่ขอเก็บเป็นความลับไว้ก่อนนะครับ</whisper>",
    "voice": "khanomkrok",
    "model": "paxa-tts-flash-v2"
  }' \
  --output speech.mp3

คำขอหนึ่งครั้งรับข้อความได้สูงสุด 5,000 ตัวอักษร และส่งเสียงกลับมาเป็น mp3 opus wav และ pcm โดย wav และ pcm เป็นเสียง 24 kHz ส่วน speed ตั้งได้ตั้งแต่ 0.5 ถึง 1.5 โดยไม่เปลี่ยนค่าบริการ

ย้ายจาก Paxa TTS Flash#

  • Paxa TTS Flash ยังใช้งานได้ตามเดิมด้วย paxa-tts-flash-v1 และคำขอเดิมทำงานเหมือนเดิมทุกอย่าง
  • ย้ายคำขอได้ด้วยการเปลี่ยน model เป็น paxa-tts-flash-v2 เสียง 26 เสียงที่มีบนทั้งสองโมเดลใช้รหัสเดิม
  • ผัดไทย โยโย่ ส้มตำ ลาบ ข้าวซอย โรตี โดนัท และ โทสต์ ยังอยู่บน Paxa TTS Flash เท่านั้น
  • บน Paxa TTS Flash มีเพียงเสียงทดลองที่อ่านแท็กอารมณ์อย่าง [happy] ได้ ส่วนบน Paxa TTS Flash v2 ทุกเสียงอ่านแท็กได้ และ [happy] ก็เป็นคำกำกับคำหนึ่งเหมือนคำอื่น

คำถามที่พบบ่อย#

Paxa TTS Flash v2 ยังเป็นรุ่นพรีวิวอยู่ไหม#

Paxa TTS Flash v2 เปิดให้ใช้งานเต็มรูปแบบแล้ว ทั้งผ่าน API และใน Console

Paxa TTS Flash v2 แพงกว่า Paxa TTS Flash ไหม#

ไม่แพงกว่า ทั้งสองโมเดลคิด 10 เครดิตต่อ 1,000 ตัวอักษร

ต้องเรียกโมเดลว่า Pixie ในคำขอไหม#

ไม่ต้อง Pixie เป็นชื่อเล่นของโมเดล ในคำขอให้ระบุด้วยรหัส paxa-tts-flash-v2

คำกำกับเขียนว่าอะไรได้บ้าง#

เขียนวิธีพูดแบบไหนก็ได้ เป็นคำภาษาไทย อังกฤษ หรือจีน เช่น [ผู้ประกาศข่าว น้ำเสียงเป็นทางการ] หรือ [tired, exhausted] คำกำกับที่ขอสำเนียง ขอเปลี่ยนเป็นเสียงอื่น ขอให้ร้องเพลง ขอเสียงประกอบ หรือขอให้พูดภาษาใดภาษาหนึ่ง จะได้คำตอบ tag_invalid

โคลนเสียงได้ไหม#

ไม่ได้ Paxa TTS Flash v2 มีเสียงในชุดเสียง 50 เสียง และไม่รับไฟล์เสียงตัวอย่าง ส่วนเสียงใหม่มาจากการออกแบบเสียงซึ่งสร้างจากคำบรรยาย

อ่านต่อ

โพสต์อื่นในบล็อก