วิธีใช้งาน
- ลากไฟล์เสียงมาวางในพื้นที่อัปโหลดหรือคลิกเพื่อเลือกไฟล์ เช่น MP3, WAV, OGG, M4A, FLAC หรือรูปแบบอื่น
- เล่นไฟล์ในเครื่องเล่นตัวอย่างเพื่อตรวจสอบว่าเป็นเสียงที่ถูกต้อง
- เลือก Data URI สำหรับแท็ก audio ของ HTML หรือ Base64 ล้วนสำหรับคำขอ API
- กด “คัดลอก” ผลลัพธ์ หรือ “ดาวน์โหลด” เป็นไฟล์ .txt
การเล่นเสียง Base64 ในหน้าเว็บ
data URI ที่มีชนิด MIME ของเสียงใช้ได้ทุกตำแหน่งที่เบราว์เซอร์ต้องการ URL ของไฟล์เสียง
<audio controls src="data:audio/mpeg;base64,..."></audio>
// JavaScript: เล่นเสียงสั้น ๆ เมื่อคลิกปุ่ม
const click = new Audio('data:audio/wav;base64,...');
button.addEventListener('click', () => click.play());
โดยทั่วไปเบราว์เซอร์จะบล็อกไม่ให้เสียงเริ่มเล่นก่อนที่ผู้เข้าชมจะโต้ตอบกับหน้าเว็บ จึงควรเรียก play() จากตัวจัดการการคลิกหรือการกดแป้นแทนการเรียกเมื่อโหลดหน้า
กรณีที่เหมาะกับการใช้เสียงแบบ Base64
- เสียงสั้น ๆ ของอินเทอร์เฟซ เสียงคลิก เสียงแจ้งเตือน และเสียงบี๊ปเมื่อเกิดข้อผิดพลาดที่มีขนาดเพียงไม่กี่กิโลไบต์ สามารถเก็บไว้ใน JavaScript bundle ได้ จึงเล่นได้ทันทีโดยไม่ต้องส่งคำขอเพิ่ม
- แอปออฟไลน์และแอปไฟล์เดียว เกม ตู้คีออสก์ แพ็กเกจอีเลิร์นนิง และรายงาน HTML ที่ต้องทำงานจากไฟล์เดียวโดยไม่มีเซิร์ฟเวอร์ สามารถฝังเสียงไว้ในตัวได้
- API แปลงเสียงพูดเป็นข้อความ บริการรู้จำเสียงพูดบนคลาวด์หลายแห่งรับไฟล์บันทึกเสียงสั้น ๆ เป็นฟิลด์ Base64 ในคำขอ JSON ซึ่งมักมีชื่อว่า
contentหรือaudioบริการเหล่านี้มักต้องการรูปแบบไฟล์ อัตราสุ่มตัวอย่าง และจำนวนช่องสัญญาณที่เฉพาะเจาะจง เครื่องมือนี้เข้ารหัสไฟล์ตามที่เป็นอยู่ทุกประการ โดยไม่แปลงรูปแบบหรือเปลี่ยนอัตราสุ่มตัวอย่าง - ข้อมูลสำหรับการทดสอบ การทดสอบโค้ดประมวลผลเสียงสามารถเก็บตัวอย่างเสียงขนาดจิ๋วไว้เป็นค่าคงที่แบบสตริงได้
เมื่อใดที่ไม่ควรใช้ Base64 กับไฟล์เสียง
Base64 เพิ่มขนาดประมาณหนึ่งในสาม และเบราว์เซอร์ต้องได้รับสตริงทั้งหมดก่อนจึงจะเริ่มเล่นได้ ไม่มีการสตรีม ไม่มีการแคชแยก และไม่มีคำขอแบบช่วงไบต์ (range request) สำหรับการเลื่อนตำแหน่งเล่น ไฟล์ MP3 ความยาว 5 นาทีที่ 128 kbps มีขนาดประมาณ 4.8 MB ซึ่งจะกลายเป็นข้อความประมาณ 6.4 MB ภายใน HTML หรือ JavaScript ของคุณ และต้องดาวน์โหลดใหม่ทุกครั้งที่ไฟล์นั้นเปลี่ยนแปลง สำหรับเพลง พอดแคสต์ และไฟล์บันทึกเสียงยาว ๆ ควรใช้ไฟล์เสียงตามปกติ หลักง่าย ๆ คือฝังแบบอินไลน์เฉพาะเสียงที่ยาวไม่กี่วินาที
รูปแบบไฟล์เสียงและชนิด MIME
| รูปแบบ | ส่วนนำหน้า Data URI | หมายเหตุ |
|---|---|---|
| MP3 | data:audio/mpeg;base64, | ขนาดเล็ก เล่นได้ในทุกเบราว์เซอร์ |
| WAV | data:audio/wav;base64, | ไม่บีบอัดและมีขนาดใหญ่ เหมาะกับเสียงที่สั้นมาก |
| OGG (Vorbis, Opus) | data:audio/ogg;base64, | ขนาดเล็ก Safari เวอร์ชันเก่าเล่นไม่ได้ |
| M4A (AAC) | data:audio/mp4;base64, | ขนาดเล็ก รองรับอย่างกว้างขวาง |
| FLAC | data:audio/flac;base64, | ไม่สูญเสียคุณภาพ ใหญ่กว่า MP3 หรือ AAC มาก |
ขึ้นอยู่กับระบบปฏิบัติการ ไฟล์อาจถูกรายงานด้วยชนิดแบบอื่น เช่น audio/x-wav หรือ audio/x-m4a โดยทั่วไปเบราว์เซอร์ก็เล่นชนิดเหล่านี้ได้เช่นกัน และคุณสามารถแก้ไขส่วนนำหน้าได้หากแพลตฟอร์มต้องการชนิดที่เฉพาะเจาะจง
คำถามที่พบบ่อย
ชนิด MIME ของ MP3 ใน data URI คืออะไร
audio/mpeg data URI จึงขึ้นต้นด้วย data:audio/mpeg;base64, คุณอาจพบ audio/mp3 ในการใช้งานจริงด้วย ซึ่งเบราว์เซอร์บางตัวยอมรับ แต่ audio/mpeg เป็นตัวเลือกที่ปลอดภัยกว่าทำไมเครื่องเล่นตัวอย่างจึงเล่นไฟล์ของฉันไม่ได้
เครื่องเล่นอาศัยตัวแปลงสัญญาณ (codec) ที่มีอยู่ในเบราว์เซอร์ของคุณ หากเบราว์เซอร์ไม่รองรับรูปแบบนั้น เช่น OGG ใน Safari เวอร์ชันเก่า ตัวอย่างจะไม่มีเสียง แต่เอาต์พุต Base64 ยังคงเป็นสำเนาที่ตรงกับไฟล์ทุกประการ
คลิปเสียง Base64 ยาวได้แค่ไหน
เครื่องมือนี้เข้ารหัสไฟล์ได้สูงสุด 100 MB แต่ขนาดนั้นใหญ่เกินกว่าจะฝังได้มาก สำหรับการใช้แบบอินไลน์ ควรให้คลิปยาวไม่กี่วินาทีและมีขนาดไม่กี่สิบกิโลไบต์ สำหรับ API ด้านเสียงพูด ให้ตรวจสอบขีดจำกัดของเสียงแบบอินไลน์ ซึ่งมักต่ำกว่าเสียงที่อัปโหลดไปยังพื้นที่จัดเก็บมาก
แปลง MP3 เป็น WAV ที่นี่ได้หรือไม่
ไม่ได้ เครื่องมือนี้เข้ารหัสไฟล์ตามที่เป็นอยู่ โดยไม่เปลี่ยนรูปแบบ บิตเรต หรืออัตราสุ่มตัวอย่าง ให้แปลงเสียงก่อนด้วยโปรแกรมแก้ไขเสียงหรือเครื่องมือบรรทัดคำสั่งอย่าง FFmpeg แล้วจึงเข้ารหัสผลลัพธ์
ไฟล์เสียงของฉันถูกอัปโหลดหรือไม่
ไม่ถูกอัปโหลด การเข้ารหัสและการเล่นเสียงเกิดขึ้นในเบราว์เซอร์ของคุณ และไฟล์จะอยู่บนอุปกรณ์ของคุณเท่านั้น