Paxa Labs

เสียง AI ภาษาไทยสำหรับพอดแคสต์

ผลิตพอดแคสต์ภาษาไทยจากสคริปต์ จะโฮสต์เดียวหรือสองคนก็ได้ ลงได้ทุกวัน ทำแชปเตอร์จาก timestamp และคิดเงินตามตัวอักษร

ไอเดียให้ลองเล่น

เปิดรายการ

ยินดีต้อนรับสู่ตอนที่ 118 คืนนี้เราจะคุยกันเรื่องที่คนถามเข้ามามากที่สุดในเดือนนี้

สรุปข่าว

สรุปข่าวเช้านี้ สามเรื่องที่ควรรู้ก่อนออกจากบ้าน เริ่มจากเรื่องแรก

ข้อความจากผู้ฟัง

มีข้อความจากผู้ฟังส่งเข้ามา เขาถามว่าถ้าเริ่มต้นใหม่ตอนอายุสามสิบ จะสายเกินไปไหม

ปิดรายการ

วันนี้ขอจบไว้เท่านี้ ฝากกดติดตามรายการไว้ แล้วเจอกันใหม่ตอนหน้า

ทุกการ์ดเล่นคลิปจริงที่สร้างจากสคริปต์นั้น ๆ ด้วยเสียงนมเย็น เปิดในหน้าเสียงพูดเพื่อให้พูดข้อความของคุณเองได้

คนทำพอดแคสต์ใช้ API อย่างไร

พอดแคสต์ไทยส่วนใหญ่คือคนหนึ่งหรือสองคนคุยกัน และคนที่พูดก็คือกระบวนการผลิตทั้งหมด รายการออกอากาศเมื่อโฮสต์อัดเสียง ด้วยพลังเท่าที่โฮสต์มีในวันนั้น และรายการที่ลงทุกวันก็หมายถึงต้องอัดทุกวัน ไม่ว่าจะเหลือเสียงพอหรือไม่ Text-to-Speech API ทำให้โฮสต์กลายเป็นคุณสมบัติหนึ่งของสคริปต์ รหัสเสียงหนึ่งตัวอ่านทั้งรายการ รหัสเสียงตัวที่สองคือโฮสต์คนที่สอง และทั้งคู่ฟังเหมือนเดิมในตอนที่ 118 เท่ากับตอนที่ 1 ช่วงที่เขียนใหม่คิดเงินตามตัวอักษรของช่วงนั้น ส่วนที่เหลือของตอนยังอยู่เหมือนเดิม ชื่อภาษาอังกฤษและศัพท์เฉพาะที่อยู่ในประโยคไทยอ่านด้วยเสียงเดียวกัน ช่วงเวลาระดับประโยคที่ส่งกลับมาพร้อมเสียงกลายเป็นแชปเตอร์และทรานสคริปต์สำหรับโน้ตของรายการ และไฟล์ที่ได้กลับมาก็คือไฟล์ที่ฟีดชี้ไป

  1. แบ่งสคริปต์ตามผู้พูด

    บทพูดต่อเนื่องของโฮสต์แต่ละคนคือหนึ่งช่วง และแต่ละช่วงคือหนึ่งคำขอที่ส่งรหัสเสียงของโฮสต์คนนั้น ช่วงที่ยาวเกินเพดานต่อคำขอแบ่งอีกครั้งที่ย่อหน้า รายการโฮสต์เดียวใช้รหัสเสียงเดียวตลอดทั้งตอน

  2. สร้างเสียงแล้วต่อไฟล์

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

  3. เผยแพร่ตามปกติ

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

ความยาวตอนกับค่าใช้จ่าย

ความยาวตอนกับค่าใช้จ่าย
รายการตัวอักษรคำขอค่าใช้จ่าย
หนึ่งตอน 20 นาที12,1203$0.12
รายการรายสัปดาห์ ต่อเดือน48,48012$0.48
รายการรายวันตอนละ 20 นาที ต่อเดือนประมาณ $3.64

คำนวณจาก 606 ตัวอักษรต่อเสียงหนึ่งนาที ที่อัตรา $10 ต่อหนึ่งล้านตัวอักษร นับ 30 ตอนต่อเดือน เพลงประกอบ อินโทร และการตัดต่ออยู่นอกตัวเลขนี้ ช่วงที่เขียนใหม่คิดเงินตามตัวอักษรของช่วงนั้นเท่านั้น

สองโฮสต์จากสคริปต์เดียว

episode-118/
script.txt        12,120 ตัวอักษร (ราว 20 นาที)
01 โฮสต์ A  oliang      เปิดรายการ สรุปข่าว
02 โฮสต์ B  sanaechan   ช่วงคำถามจากผู้ฟัง
03 โฮสต์ A  oliang      ปิดรายการ
→ POST /v1/tts   หนึ่งคำขอต่อหนึ่งช่วง ใช้รหัสเสียงของช่วงนั้น
→ part-01.mp3  part-02.mp3  part-03.mp3
→ episode-118.mp3   (ต่อไฟล์ตามลำดับ วางเพลงประกอบไว้ข้างใต้)

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

สิ่งที่ฟีดชี้ไป

feed.xml
<item>
  <title>ตอนที่ 118</title>
  <enclosure url="https://cdn.example.com/ep118.mp3" type="audio/mpeg"/>
  <itunes:duration>20:00</itunes:duration>
  <podcast:chapters url="https://cdn.example.com/ep118.chapters.json"/>
</item>

enclosure คือไฟล์ MP3 ที่ต่อเสร็จแล้ว ไฟล์แชปเตอร์เขียนจากช่วงเวลาระดับประโยคที่ API ส่งกลับมาพร้อมแต่ละช่วง โดยเลื่อนตามตำแหน่งที่ช่วงนั้นเริ่มในตอน บริการโฮสต์พอดแคสต์ที่ใช้อยู่ยังเป็นผู้เผยแพร่ฟีดเหมือนเดิม ไม่มีอะไรเปลี่ยน

สำหรับนักพัฒนา

ส่งแต่ละช่วงพร้อมรหัสเสียงของโฮสต์ และขอช่วงเวลาระดับประโยคในคำขอเดียวกันเมื่อรายการต้องการแชปเตอร์หรือทรานสคริปต์

เอกสารอ้างอิง API ฉบับเต็ม
curl -X POST https://api.paxalabs.com/v1/tts \
  -H "Authorization: Bearer $PAXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs",
    "voice": "khanomkrok",
    "model": "paxa-tts-flash-v2",
    "timestamps": "word"
  }' \
  -o response.json

jq -r .audio response.json | base64 -d > speech.mp3
jq .timing.spans response.json

ฟังเสียงจริง

เสียงบางส่วนจากทั้งหมด 50 เสียง สร้างจาก API ด้วยรหัสเสียงที่เปิดให้ใช้งานจริง ฟังครบทุกเสียงได้ที่หน้า Text-to-Speech

สองโฮสต์ คนละหนึ่งคำขอ

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

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

ให้โฮสต์สองคนคุยกันในตอนเดียวได้ไหม

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

ตอนหนึ่งยาวได้แค่ไหน

หนึ่งคำขอรับได้ถึง 5,000 ตัวอักษร ตอนความยาว 20 นาทีจึงสร้างด้วย 3 คำขอ ตัวรายการไม่มีขีดจำกัดความยาว ส่วนขีดจำกัดอัตราต่อแพลนอยู่ในหน้าราคา

ทำแชปเตอร์และทรานสคริปต์ได้ไหม

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

อ่านชื่อและศัพท์ภาษาอังกฤษในประโยคไทยได้ไหม

ได้ ข้อความไทยปนอังกฤษในคำขอเดียวอ่านด้วยเสียงเดียว ชื่อสินค้า ชื่อแขกรับเชิญ และวลีภาษาอังกฤษในประโยคไทยจึงฟังเป็นโฮสต์คนเดิม

รายการที่ทำแบบนี้หารายได้ได้ไหม

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

เริ่มต้นด้วยเครดิตฟรี

เข้าสู่ระบบด้วย Google, GitHub หรือ Hugging Face แล้วใช้เครดิตฟรี 100 เครดิตกับข้อความของคุณเอง

บทความที่เกี่ยวข้อง