ให้เพื่อน AI ของคุณพูดไทยได้จริง
เพื่อน AI ถูกตัดสินจากสองเรื่อง: เสียงฟังแล้วเหมือนมีตัวตนไหม และหยุดพูดทันทีไหมเมื่อเราเริ่มพูด ทั้งสองเรื่องเป็นงานของระบบแปลงข้อความเป็นเสียง และทั้งสองเรื่องมีคำตอบอยู่ในหน้านี้
เสียงนี้ฟังเป็นอย่างไร
0:04ค่ำคืนนี้ ปล่อยให้เสียงของฉัน อยู่เป็นเพื่อนคุณจนกว่าจะหลับนะคะ
นี่คือประโยคที่เพื่อน AI ใช้เปิดบทสนทนา ลองแก้แล้วฟังใหม่ได้เลย ช่องนี้รับข้อความได้ไม่เกิน 50 ตัวอักษร และมีเสียงให้เลือก 4 เสียง โดยสองเสียงคือโทนสนิทที่หน้านี้พูดถึง
ความสนิทอยู่ในตัวคำ#
เพื่อน AI ภาษาอังกฤษต้องสร้างความสนิทด้วยน้ำเสียง เพราะภาษาอังกฤษไม่มีที่อื่นให้เก็บความสนิทไว้ ต้องเสียงอุ่นขึ้น พูดช้าลง ลงท้ายให้นุ่มลง ภาษาไทยไม่ได้ทำงานแบบนั้น ภาษาไทยเก็บความสัมพันธ์ไว้ในไวยากรณ์: ผู้พูดเรียกตัวเองว่าอะไร เรียกอีกฝ่ายว่าอะไร และจบประโยคด้วยคำลงท้ายตัวไหน
แปลว่าระดับความสนิทอยู่ในข้อความ ผู้ช่วยเปลี่ยนความสนิทได้ด้วยการเปลี่ยนสิ่งที่มันเขียน และโมเดลภาษาก็เป็นคนเขียนข้อความนั้นอยู่แล้ว ไม่ต้องมีพารามิเตอร์เสียงเข้ามาเกี่ยว และไม่จำเป็นต้องมี ข้างล่างนี้คือความหมายเดียวกันในสี่ระดับความสนิท อ่านด้วยเสียงเดียวกันทั้งหมด
ความหมายเดียว
กินข้าวเย็นหรือยัง รออยู่นะ
01
คนแปลกหน้า
เรียกอีกฝ่ายว่าคุณ เรียกตัวเองว่าดิฉัน นี่คือน้ำเสียงพนักงานต้อนรับ ถูกต้องทุกอย่าง และห่างเกินกว่าจะเป็นเพื่อนของใคร
คุณทานข้าวเย็นแล้วหรือยังคะ ดิฉันรออยู่นะคะ
- เรียกอีกฝ่าย / เรียกตัวเอง
- คุณ / ดิฉัน
- คำลงท้าย
- คะ
02
คนที่อายุน้อยกว่า
ขยับแค่คำเดียว คุณกลายเป็นพี่ ดิฉันกลายเป็นหนู ผู้ช่วยกลายเป็นฝ่ายที่อายุน้อยกว่าทันที ประโยคเดิมจึงอ่อนโยนขึ้นโดยยังไม่ตีสนิท
พี่ทานข้าวเย็นแล้วหรือยังคะ หนูรออยู่นะคะ
- เรียกอีกฝ่าย / เรียกตัวเอง
- พี่ / หนู
- คำลงท้าย
- คะ
03
เพื่อน
เธอกับเราลดระยะห่างลง ทานเปลี่ยนเป็นกินแบบธรรมดา และจ๊ะเข้ามาแทนคะ คำถามเดิม แต่ตอนนี้เป็นคำถามระหว่างคนเท่ากัน
เธอกินข้าวเย็นแล้วยังจ๊ะ เรารออยู่นะ
- เรียกอีกฝ่าย / เรียกตัวเอง
- เธอ / เรา
- คำลงท้าย
- จ๊ะ
04
สนิทกว่านั้น
คำลงท้ายสุภาพหายไปทั้งคำ ในภาษาไทยการที่มันหายไปคือสัญญาณ นี่จึงเป็นระดับที่สนิทที่สุดในสี่ระดับ ทั้งที่ใช้คำน้อยที่สุด
กินข้าวยังอ่ะ เรารอเธออยู่
- เรียกอีกฝ่าย / เรียกตัวเอง
- เธอ / เรา
- คำลงท้าย
- ไม่มี
เลือกระดับที่สินค้าของคุณควรอยู่ บอกโมเดลให้เขียนในระดับนั้น แล้วเสียงจะอ่านตามนั้นเอง การย้ายเพื่อน AI จากระดับสุภาพไปหาระดับสนิทคือการแก้ system prompt โมเดลข้างใต้ยังเป็นตัวเดิม
ฟังทั้งสี่ระดับ
เสียงเดียว สี่ระดับความสนิท สิ่งเดียวที่เปลี่ยนไปในแต่ละแถวคือข้อความที่เขียน
- คนแปลกหน้า0:02
- คนที่อายุน้อยกว่า0:02
- เพื่อน0:02
- สนิทกว่านั้น0:02
8 เสียงที่ออกแบบมาเพื่อการพูดใกล้ ๆ#
แคตตาล็อกมีทั้งหมด 26 เสียง กลุ่มนี้คือเสียงที่ออกแบบมาสำหรับการพูดกับผู้ฟังคนเดียวเป็นเวลานาน ทั้งโทนยามค่ำ เสียงกระซิบ เสียงใกล้ไมค์ และเสียงตัวละครที่งานบทบาทสมมติต้องใช้ รหัสเสียงเป็นตัวระบุสาธารณะที่คงที่ เพื่อน AI ที่ผู้ใช้รู้จักตั้งแต่เดือนมกราคมจึงยังเป็นเสียงเดิมในเดือนธันวาคม
ประโยคที่ใช้
คืนนี้ไม่ต้องรีบนอนก็ได้ อยู่คุยกันอีกสักหน่อยนะ
- มัสมั่นพระเอก0:02
- พะแนงละครเวที0:03
- โอเลี้ยงวิทยุยามดึก0:02
- เสน่ห์จันทน์เสน่ห์ยามค่ำ0:02
- ทับทิมกรอบบทอ่านยามดึก0:03
- ลูกชุบเสียงตัวการ์ตูน0:03
- วุ้นเสียงกระซิบ0:04
- สังขยาASMR0:03
ประโยคเดียวกัน อ่านด้วยทุกเสียง ตัวแปรเดียวที่ต่างกันคือเสียง กดที่ชื่อเพื่อไปหน้าของเสียงนั้น
สิ่งที่คนอีกฝั่งสังเกตได้#
ทั้งสี่ข้อข้างล่างไม่มีใครเรียกร้องมาเป็นชื่อฟีเจอร์ แต่มันคือสิ่งที่คนหมายถึงเวลาบอกว่าเพื่อน AI ตัวนี้เหมือนมีคนอยู่จริง หรือบอกว่ามันเลิกเหมือนไปแล้ว
เดือนธันวาคมก็ยังเป็นคนเดิม
มีคนรู้จักตัวละครนี้ตั้งแต่เดือนมกราคม ผ่านบทสนทนามาเก้าเดือน เสียงก็ยังไม่ขยับไปไหน ไม่มีไฟล์บันทึกให้หาย ไม่มีตัวอย่างเสียงให้เพี้ยน เพราะเสียงในที่นี้คือรหัสในแคตตาล็อก เรียกอีกครั้งก็ได้คนเดิมมาตอบ เพื่อน AI ที่เสียงค่อย ๆ เปลี่ยนไปคือเพื่อน AI ที่คนเลิกไว้ใจ และส่วนใหญ่เขาบอกไม่ถูกด้วยซ้ำว่าเพราะอะไร
หยุดทันทีที่เราเริ่มพูด
การพูดแทรกกลางประโยคเป็นเรื่องปกติระหว่างคน แต่การถูกพูดทับโดยสิ่งที่ไม่ยอมหยุด คือจังหวะที่ภาพลวงทั้งหมดพังลง ตรงนี้ประโยคจะหยุดที่เดิมและส่วนที่เหลือถูกทิ้งไป คนที่คุยอยู่จึงกำลังตอบเพื่อน AI ที่ฟังอยู่ แทนการนั่งรอให้พูดคนเดียวจนจบ
เริ่มพูดตั้งแต่ยังคิดไม่จบ
เงียบไปสองวินาทีแล้วพูดรวดเดียวยาวเป็นย่อหน้า คือเสียงของเครื่องที่กำลังเรียบเรียงคำตอบ ส่วนคนที่เริ่มพูดประโยคแรกตั้งแต่ที่เหลือยังคิดไม่เสร็จ คือเสียงของคนที่กำลังคุยอยู่ ความต่างอยู่ที่จังหวะที่เสียงเริ่มออกมาล้วน ๆ และคนฟังรับรู้มันเป็นความใส่ใจ
ตอนห้าทุ่มเสียงเบาลงได้
ประโยคเดียวกันให้ความรู้สึกต่างกันมาก เมื่ออ่านด้วยเสียงเกือบกระซิบ ด้วยโทนทุ้มแบบวิทยุยามดึก หรือด้วยเสียงสดใสกลางวัน นั่นคือการเลือกเสียงที่ทำครั้งเดียวต่อหนึ่งตัวละคร จากชุดเสียงที่ออกแบบมาสำหรับชั่วโมงแบบนั้น และมันเปลี่ยนความรู้สึกของเพื่อน AI ได้มากกว่าปุ่มตั้งค่าใด ๆ ที่ผู้ใช้จะหาเจอในเมนู
หนึ่งตา และการพูดแทรก#
เพื่อน AI ที่พูดได้คือลูปหนึ่งลูป และลูปนี้เองที่ตัดสินว่ามันจะรู้สึกมีชีวิตหรือไม่มี ระบบรู้จำเสียงถอดคำพูดของคน โมเดลเขียนคำตอบ แล้วระบบเสียงอ่านออกมา ขั้นที่งานส่วนใหญ่ทำพลาดคือขั้นที่สี่
- 01
เปิดซ็อกเก็ตเดียวตลอดบทสนทนา
เอนด์พอยต์สดถือ WebSocket หนึ่งเส้นไว้ตลอดเซสชัน ตั้งค่าครั้งเดียวตอนเปิด หลังจากนั้นทุกตาคือเฟรมข้อความบนการเชื่อมต่อที่อุ่นอยู่แล้ว
- 02
ส่งทีละประโยคทันทีที่โมเดลเขียนจบ
อย่ารอให้คำตอบครบทั้งก้อน ส่งประโยคทันทีที่โมเดลเขียนจบ แล้วเสียงจะเริ่มกลับมาตั้งแต่ส่วนที่เหลือยังเขียนไม่เสร็จ ภาษาไทยไม่มีเครื่องหมายจบประโยค ไคลเอนต์ภาษาไทยจึงสั่ง flush เมื่อจบวรรค
- 03
เล่นเสียงไปพร้อมกับที่มันมาถึง
เฟรมไบนารีคือเสียงของตานั้นเรียงตามลำดับการส่ง ใบเสร็จ charged มาก่อนเสียงของทุกตาเสมอ ไคลเอนต์จึงรู้ราคาของตานั้นก่อนได้ยินเสียงด้วยซ้ำ
- 04
สั่งหยุดทันทีที่อีกฝ่ายเริ่มพูด
เมื่อผู้ใช้พูดแทรกขึ้นมา ให้ส่งเฟรม cancel ประโยคที่กำลังพูดจะหยุด ส่วนที่เหลือของคำตอบถูกทิ้ง และการเชื่อมต่อยังเปิดรอตาถัดไป จะปิดซ็อกเก็ตทิ้งก็หยุดเสียงได้เหมือนกัน แต่ต้องคืนช่องคำขอพร้อมกันและต้องเชื่อมต่อใหม่ทั้งรอบก่อนจะตอบได้อีกครั้ง
ตาที่ถูกหยุดยังคงค่าบริการของประโยคที่สังเคราะห์ไปแล้ว ส่วนที่ถูกทิ้งไม่เคยถูกคิดเงิน การส่งทีละประโยคต่อหนึ่งเฟรมคือสิ่งที่จำกัดต้นทุนตรงนี้ และเป็นรูปแบบเดียวกับที่ทำให้เวลารอเสียงแรกต่ำ
ต้องเร็วแค่ไหน#
มีสามวิธีในการส่งเสียงของเพื่อน AI วิธีที่ถูกต้องขึ้นอยู่กับรูปร่างของสินค้า
คำขอแบบรอครบ
แชทแบบผลัดกันตอบ ทีละคำตอบ
หนึ่ง POST ต่อหนึ่งคำตอบ ได้ไฟล์กลับมาทั้งก้อน เป็นวิธีที่ง่ายที่สุดและใช้ได้จริง เหมาะเมื่อผู้ใช้อ่านก่อนแล้วค่อยฟัง
ซ็อกเก็ตสด
บทสนทนาที่พูดกันจริง
WebSocket เดียวตลอดเซสชัน สั่งสังเคราะห์ทีละประโยค และสั่งหยุดได้เมื่อถูกพูดแทรก นี่คือลูปของเพื่อน AI และใช้ได้ทุกแพ็กเกจ
เครื่องเฉพาะ
งานเรียลไทม์ที่มีโหลดจริง
บน API สาธารณะคุณใช้กำลังเครื่องร่วมกับคนอื่น ค่ากลางเร็ว แต่ปลายหางขยับตามโหลดรวม การใช้เครื่องเฉพาะทำให้ปลายหางเป็นของคุณเอง วัดบนเครื่องทดสอบของเราเองได้ 50 มิลลิวินาทีถึงเสียงแรก และเร็วกว่าเวลาจริง 95 เท่า บน NVIDIA L4 หนึ่งใบ กับชุดข้อความไทยหลากหลาย รวมผลที่คำขอพร้อมกัน 8 และ 16 คำขอ
ค่าเสียงของเพื่อน AI หนึ่งคน
| บทสนทนา | จำนวนคำตอบ | ตัวอักษร | ค่าใช้จ่าย |
|---|---|---|---|
| หนึ่งค่ำคืน | 20 | 2,400 | $0.04 |
| ผู้ใช้ประจำหนึ่งคน หนึ่งเดือน | 1,200 | 144,000 | $2.16 |
คิดที่ 15 เครดิตต่อ 1,000 ตัวอักษร จากคำตอบยาว 120 ตัวอักษร วันละ 40 คำตอบ ค่าเสียงคิดตามจำนวนตัวอักษรจริง ผู้ใช้ที่คุยน้อยจึงจ่ายน้อยกว่า และเดือนที่ไม่มีใครคุยเลยก็ไม่มีค่าใช้จ่าย
คำถามที่พบบ่อย#
- ทำให้เสียงดีใจ เสียใจ หรือหวานได้ไหม
- ยังทำผ่านพารามิเตอร์ไม่ได้ โมเดลที่ให้บริการอยู่ยังไม่มีการควบคุมอารมณ์หรือสไตล์ และหน้านี้จะไม่พูดให้เข้าใจเป็นอย่างอื่น สิ่งที่มีคือชุดเสียงที่คัดมาตามโทน และภาษาที่เก็บความสนิทไว้ในตัวคำ ซึ่งเป็นเหตุผลที่บันไดระดับความสนิทด้านบนคือคำตอบที่ตรงไปตรงมาที่สุดของคำถามนี้ในตอนนี้
- โคลนเสียง หรือเพิ่มเสียงตัวละครของตัวเองได้ไหม
- ยังไม่ได้ แคตตาล็อกมี 26 เสียงคงที่ เพื่อน AI จึงเลือกเสียงจากชุดนี้แบบเดียวกับที่กองถ่ายเลือกนักแสดงจากรายชื่อ สำหรับแอปบทบาทสมมติที่มีตัวละครจำนวนมาก นี่คือเพดานในตอนนี้: 26 เสียงที่ต่างกัน และแต่ละเสียงคงที่ตลอดไป
- เพื่อน AI หยุดพูดตอนผู้ใช้พูดแทรกได้อย่างไร
- ใช้เฟรม cancel บนซ็อกเก็ตสด ประโยคที่กำลังพูดจะหยุด ส่วนที่ค้างอยู่ถูกทิ้งโดยไม่คิดเงิน และการเชื่อมต่อเดิมรับตาถัดไปต่อได้เลย กลไกมีเท่านี้ และมีอธิบายไว้ในคู่มือสตรีมสด
- อ่านไทยปนอังกฤษในประโยคเดียวกันได้ไหม
- ได้ และอ่านด้วยเสียงเดียว เพื่อน AI ภาษาไทยสลับภาษากันตลอดเวลา คำตอบที่ไหลจากไทยไปอังกฤษแล้วกลับมาจึงถูกอ่านเป็นประโยคเดียวต่อเนื่องด้วยเสียงเดียวตลอดสาย ข้อความยาวได้ถึง 5,000 ตัวอักษรต่อหนึ่งคำขอ
- เอาเสียงไปขยับปากตัวละครได้ไหม
- ได้ ขอข้อมูลเวลาระดับคำ ประโยค หรือทั้งช่วงพูด แล้วผลลัพธ์จะมีช่วงเวลามาพร้อมกับเสียง ซึ่งเป็นสิ่งที่ปากของอวตารใช้อ่าน ทั้งนี้การขอข้อมูลเวลาคิดค่าบริการสูงกว่าเสียงเปล่า
เครดิตฟรี ไม่ต้องผูกบัตร
สมัครเข้าใช้งานแล้วเครดิตฟรีที่ได้รับครอบคลุมคำตอบแรก ๆ ของเพื่อน AI ได้หลายพันคำตอบ ลองพิมพ์ในเพลย์กราวด์ให้ทุกเสียงในแคตตาล็อกอ่านได้ก่อนเขียนโค้ดจริง