You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
19 KiB
142 lines
19 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "b73fe10ec6b580fba2affb6f6e0a5c4d",
|
|
"translation_date": "2025-08-27T20:24:59+00:00",
|
|
"source_file": "6-consumer/lessons/3-spoken-feedback/README.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# ตั้งเวลาและให้คำตอบด้วยเสียง
|
|
|
|

|
|
|
|
> สเก็ตโน้ตโดย [Nitya Narasimhan](https://github.com/nitya) คลิกที่ภาพเพื่อดูเวอร์ชันขนาดใหญ่
|
|
|
|
## แบบทดสอบก่อนเรียน
|
|
|
|
[แบบทดสอบก่อนเรียน](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/45)
|
|
|
|
## บทนำ
|
|
|
|
ผู้ช่วยอัจฉริยะไม่ได้เป็นเพียงอุปกรณ์สื่อสารทางเดียว คุณพูดกับพวกเขา และพวกเขาตอบกลับ:
|
|
|
|
"Alexa ตั้งเวลาสามนาที"
|
|
|
|
"ตกลง ตั้งเวลาไว้สามนาทีแล้ว"
|
|
|
|
ในสองบทเรียนที่ผ่านมา คุณได้เรียนรู้วิธีแปลงเสียงเป็นข้อความ และดึงคำสั่งตั้งเวลาจากข้อความนั้น ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีตั้งเวลาบนอุปกรณ์ IoT พร้อมตอบกลับผู้ใช้ด้วยคำพูดเพื่อยืนยันการตั้งเวลา และแจ้งเตือนเมื่อเวลาหมด
|
|
|
|
ในบทเรียนนี้เราจะครอบคลุม:
|
|
|
|
* [ข้อความเป็นเสียงพูด](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
* [ตั้งเวลา](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
* [แปลงข้อความเป็นเสียงพูด](../../../../../6-consumer/lessons/3-spoken-feedback)
|
|
|
|
## ข้อความเป็นเสียงพูด
|
|
|
|
ข้อความเป็นเสียงพูด (Text to Speech) คือกระบวนการแปลงข้อความให้เป็นเสียงที่มีคำพูดตามข้อความ หลักการพื้นฐานคือการแยกคำในข้อความออกเป็นเสียงย่อย (phonemes) และนำเสียงเหล่านั้นมาประกอบกัน ไม่ว่าจะใช้เสียงที่บันทึกไว้ล่วงหน้าหรือเสียงที่สร้างขึ้นโดยโมเดล AI
|
|
|
|

|
|
|
|
ระบบข้อความเป็นเสียงพูดทั่วไปมี 3 ขั้นตอน:
|
|
|
|
* การวิเคราะห์ข้อความ
|
|
* การวิเคราะห์ทางภาษาศาสตร์
|
|
* การสร้างคลื่นเสียง
|
|
|
|
### การวิเคราะห์ข้อความ
|
|
|
|
การวิเคราะห์ข้อความเกี่ยวข้องกับการนำข้อความที่ให้มาและแปลงเป็นคำที่สามารถใช้สร้างเสียงพูดได้ ตัวอย่างเช่น หากคุณแปลง "Hello world" จะไม่มีการวิเคราะห์ข้อความเพิ่มเติม คำสองคำนี้สามารถแปลงเป็นเสียงพูดได้ทันที แต่ถ้าคุณมี "1234" อาจต้องแปลงเป็น "หนึ่งพันสองร้อยสามสิบสี่" หรือ "หนึ่ง สอง สาม สี่" ขึ้นอยู่กับบริบท เช่น "ฉันมีแอปเปิ้ล 1234 ลูก" จะเป็น "หนึ่งพันสองร้อยสามสิบสี่" แต่ "เด็กนับ 1234" จะเป็น "หนึ่ง สอง สาม สี่"
|
|
|
|
คำที่สร้างขึ้นจะแตกต่างกันไม่เพียงแต่ในภาษา แต่ยังรวมถึงสำเนียงของภาษานั้นด้วย เช่น ในภาษาอังกฤษแบบอเมริกัน 120 จะเป็น "One hundred twenty" แต่ในภาษาอังกฤษแบบอังกฤษจะเป็น "One hundred and twenty" โดยมีคำว่า "and" เพิ่มเข้ามาหลังคำว่า hundred
|
|
|
|
✅ ตัวอย่างอื่นๆ ที่ต้องการการวิเคราะห์ข้อความ เช่น "in" ที่อาจหมายถึงนิ้ว (inch) หรือ "st" ที่อาจหมายถึงนักบุญ (saint) หรือถนน (street) คุณสามารถคิดตัวอย่างในภาษาของคุณที่คำมีความหมายคลุมเครือหากไม่มีบริบทได้หรือไม่?
|
|
|
|
เมื่อกำหนดคำแล้ว คำเหล่านี้จะถูกส่งไปยังการวิเคราะห์ทางภาษาศาสตร์
|
|
|
|
### การวิเคราะห์ทางภาษาศาสตร์
|
|
|
|
การวิเคราะห์ทางภาษาศาสตร์จะแยกคำออกเป็น phonemes ซึ่ง phonemes ไม่ได้ขึ้นอยู่กับตัวอักษรที่ใช้เท่านั้น แต่ยังรวมถึงตัวอักษรอื่นๆ ในคำด้วย เช่น ในภาษาอังกฤษเสียง 'a' ในคำว่า 'car' และ 'care' จะแตกต่างกัน ภาษาอังกฤษมี phonemes 44 เสียงสำหรับตัวอักษร 26 ตัวในอักษรภาษาอังกฤษ โดยบางเสียงใช้ร่วมกัน เช่น phoneme เดียวกันที่ใช้ในคำว่า 'circle' และ 'serpent'
|
|
|
|
✅ ลองค้นคว้า: phonemes ในภาษาของคุณมีอะไรบ้าง?
|
|
|
|
เมื่อคำถูกแปลงเป็น phonemes แล้ว phonemes เหล่านี้จะต้องมีข้อมูลเพิ่มเติมเพื่อสนับสนุนการเน้นเสียง เช่น การปรับโทนเสียงหรือระยะเวลาขึ้นอยู่กับบริบท ตัวอย่างหนึ่งคือในภาษาอังกฤษ การเพิ่มโทนเสียงสามารถเปลี่ยนประโยคให้เป็นคำถามได้ โดยการเพิ่มโทนเสียงในคำสุดท้ายจะบ่งบอกว่าเป็นคำถาม
|
|
|
|
ตัวอย่าง - ประโยค "You have an apple" เป็นการบอกว่าคุณมีแอปเปิ้ล แต่ถ้าโทนเสียงเพิ่มขึ้นในคำสุดท้าย "apple" จะกลายเป็นคำถาม "You have an apple?" ถามว่าคุณมีแอปเปิ้ลหรือไม่ การวิเคราะห์ทางภาษาศาสตร์ต้องใช้เครื่องหมายคำถามที่ท้ายประโยคเพื่อเพิ่มโทนเสียง
|
|
|
|
เมื่อ phonemes ถูกสร้างขึ้นแล้ว จะถูกส่งไปยังการสร้างคลื่นเสียงเพื่อสร้างเสียงพูด
|
|
|
|
### การสร้างคลื่นเสียง
|
|
|
|
ระบบข้อความเป็นเสียงพูดอิเล็กทรอนิกส์ในยุคแรกใช้การบันทึกเสียง phoneme แต่ละตัวเพียงครั้งเดียว ทำให้เสียงที่ได้ฟังดูเป็นหุ่นยนต์และไม่มีชีวิตชีวา การวิเคราะห์ทางภาษาศาสตร์จะสร้าง phonemes จากนั้นโหลดจากฐานข้อมูลเสียงและนำมาประกอบกันเพื่อสร้างเสียง
|
|
|
|
✅ ลองค้นคว้า: หาไฟล์เสียงจากระบบสังเคราะห์เสียงในยุคแรกๆ และเปรียบเทียบกับระบบสังเคราะห์เสียงในปัจจุบัน เช่นที่ใช้ในผู้ช่วยอัจฉริยะ
|
|
|
|
การสร้างคลื่นเสียงในปัจจุบันใช้โมเดล ML ที่สร้างขึ้นด้วย deep learning (เครือข่ายประสาทเทียมขนาดใหญ่ที่ทำงานคล้ายกับเซลล์ประสาทในสมอง) เพื่อสร้างเสียงที่เป็นธรรมชาติมากขึ้นจนแทบแยกไม่ออกจากเสียงมนุษย์
|
|
|
|
> 💁 โมเดล ML บางตัวสามารถฝึกฝนใหม่ด้วยการเรียนรู้แบบถ่ายโอน (transfer learning) เพื่อให้เสียงเหมือนคนจริงๆ ได้ ซึ่งหมายความว่าการใช้เสียงเป็นระบบรักษาความปลอดภัย เช่นที่ธนาคารบางแห่งเริ่มใช้ อาจไม่ปลอดภัยอีกต่อไป เพราะใครก็ตามที่มีการบันทึกเสียงของคุณเพียงไม่กี่นาทีก็สามารถเลียนเสียงคุณได้
|
|
|
|
โมเดล ML ขนาดใหญ่เหล่านี้กำลังถูกฝึกฝนให้รวมทั้งสามขั้นตอนเข้าด้วยกันเพื่อสร้างระบบสังเคราะห์เสียงแบบครบวงจร
|
|
|
|
## ตั้งเวลา
|
|
|
|
เพื่อที่จะตั้งเวลา อุปกรณ์ IoT ของคุณต้องเรียกใช้ REST endpoint ที่คุณสร้างขึ้นด้วยโค้ด serverless จากนั้นใช้จำนวนวินาทีที่ได้เพื่อตั้งเวลา
|
|
|
|
### งาน - เรียกใช้ฟังก์ชัน serverless เพื่อรับเวลาตั้งเวลา
|
|
|
|
ทำตามคำแนะนำที่เกี่ยวข้องเพื่อเรียกใช้ REST endpoint จากอุปกรณ์ IoT ของคุณและตั้งเวลาตามที่ต้องการ:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-set-timer.md)
|
|
* [คอมพิวเตอร์บอร์ดเดี่ยว - Raspberry Pi/อุปกรณ์ IoT เสมือน](single-board-computer-set-timer.md)
|
|
|
|
## แปลงข้อความเป็นเสียงพูด
|
|
|
|
บริการเสียงเดียวกับที่คุณใช้ในการแปลงเสียงเป็นข้อความสามารถใช้แปลงข้อความกลับเป็นเสียงพูดได้ และสามารถเล่นผ่านลำโพงบนอุปกรณ์ IoT ของคุณ ข้อความที่จะแปลงจะถูกส่งไปยังบริการเสียง พร้อมกับประเภทของเสียงที่ต้องการ (เช่น อัตราตัวอย่าง) และข้อมูลไบนารีที่มีเสียงจะถูกส่งกลับมา
|
|
|
|
เมื่อคุณส่งคำขอนี้ คุณจะส่งโดยใช้ *Speech Synthesis Markup Language* (SSML) ซึ่งเป็นภาษามาร์กอัปที่ใช้ XML สำหรับแอปพลิเคชันสังเคราะห์เสียงพูด SSML นี้กำหนดไม่เพียงแต่ข้อความที่จะแปลง แต่ยังรวมถึงภาษาของข้อความ เสียงที่ใช้ และยังสามารถกำหนดความเร็ว ระดับเสียง และโทนเสียงสำหรับบางคำหรือทั้งหมดในข้อความได้
|
|
|
|
ตัวอย่างเช่น SSML นี้กำหนดคำขอให้แปลงข้อความ "Your 3 minute 5 second time has been set" เป็นเสียงพูดโดยใช้เสียงภาษาอังกฤษแบบอังกฤษที่เรียกว่า `en-GB-MiaNeural`
|
|
|
|
```xml
|
|
<speak version='1.0' xml:lang='en-GB'>
|
|
<voice xml:lang='en-GB' name='en-GB-MiaNeural'>
|
|
Your 3 minute 5 second time has been set
|
|
</voice>
|
|
</speak>
|
|
```
|
|
|
|
> 💁 ระบบข้อความเป็นเสียงพูดส่วนใหญ่มีเสียงหลายแบบสำหรับภาษาต่างๆ พร้อมสำเนียงที่เกี่ยวข้อง เช่น เสียงภาษาอังกฤษแบบอังกฤษที่มีสำเนียงอังกฤษ และเสียงภาษาอังกฤษแบบนิวซีแลนด์ที่มีสำเนียงนิวซีแลนด์
|
|
|
|
### งาน - แปลงข้อความเป็นเสียงพูด
|
|
|
|
ทำตามคำแนะนำที่เกี่ยวข้องเพื่อแปลงข้อความเป็นเสียงพูดโดยใช้อุปกรณ์ IoT ของคุณ:
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-text-to-speech.md)
|
|
* [คอมพิวเตอร์บอร์ดเดี่ยว - Raspberry Pi](pi-text-to-speech.md)
|
|
* [คอมพิวเตอร์บอร์ดเดี่ยว - อุปกรณ์เสมือน](virtual-device-text-to-speech.md)
|
|
|
|
---
|
|
|
|
## 🚀 ความท้าทาย
|
|
|
|
SSML มีวิธีการเปลี่ยนแปลงวิธีการพูดของคำ เช่น การเพิ่มการเน้นคำ การเพิ่มการหยุด หรือการเปลี่ยนโทนเสียง ลองใช้ฟีเจอร์เหล่านี้โดยส่ง SSML ที่แตกต่างกันจากอุปกรณ์ IoT ของคุณและเปรียบเทียบผลลัพธ์ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ SSML รวมถึงวิธีการเปลี่ยนแปลงวิธีการพูดของคำได้ใน [Speech Synthesis Markup Language (SSML) Version 1.1 specification จาก World Wide Web Consortium](https://www.w3.org/TR/speech-synthesis11/)
|
|
|
|
## แบบทดสอบหลังเรียน
|
|
|
|
[แบบทดสอบหลังเรียน](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/46)
|
|
|
|
## ทบทวนและศึกษาด้วยตนเอง
|
|
|
|
* อ่านเพิ่มเติมเกี่ยวกับการสังเคราะห์เสียงพูดได้ที่ [หน้าการสังเคราะห์เสียงพูดบน Wikipedia](https://wikipedia.org/wiki/Speech_synthesis)
|
|
* อ่านเพิ่มเติมเกี่ยวกับวิธีที่อาชญากรใช้การสังเคราะห์เสียงเพื่อขโมยเงินได้ที่ [ข่าว 'เสียงปลอมช่วยโจรไซเบอร์ขโมยเงิน' บน BBC](https://www.bbc.com/news/technology-48908736)
|
|
* เรียนรู้เพิ่มเติมเกี่ยวกับความเสี่ยงต่อผู้พากย์เสียงจากการสังเคราะห์เสียงของพวกเขาใน [บทความ 'คดีความ TikTok นี้กำลังชี้ให้เห็นว่า AI กำลังทำร้ายผู้พากย์เสียง' บน Vice](https://www.vice.com/en/article/z3xqwj/this-tiktok-lawsuit-is-highlighting-how-ai-is-screwing-over-voice-actors)
|
|
|
|
## งานที่ได้รับมอบหมาย
|
|
|
|
[ยกเลิกการตั้งเวลา](assignment.md)
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |