طريقة الاستخدام
- أفلت ملفًا صوتيًا في منطقة الإفلات أو انقر لاختيار ملف: 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، فتُشغَّل فورًا دون طلب إضافي.
- التطبيقات التي تعمل دون اتصال أو من ملف واحد. يمكن للألعاب وأجهزة الأكشاك وحزم التعليم الإلكتروني وتقارير HTML التي يجب أن تعمل من ملف واحد دون خادم أن تحمل أصواتها مضمّنة فيها.
- واجهات API لتحويل الكلام إلى نص. تقبل كثير من خدمات التعرف على الكلام السحابية تسجيلًا قصيرًا في حقل Base64، يُسمّى غالبًا
contentأوaudio، ضمن طلب JSON. وهي تتوقع عادةً صيغة ومعدل عينات وعدد قنوات محددة. وترمّز هذه الأداة الملف كما هو تمامًا، فلا تحوّله ولا تغيّر معدل عيناته. - بيانات الاختبار. يمكن لاختبارات شيفرة معالجة الصوت أن تحتفظ بعيّنة صغيرة جدًا كثابت نصي.
متى لا تستخدم Base64 للصوت
يزيد Base64 الحجم بنحو الثلث، ويجب أن يستلم المتصفح السلسلة كاملة قبل أن يبدأ التشغيل. فلا يوجد بث تدريجي ولا تخزين مؤقت مستقل ولا طلبات نطاقات (range requests) للتنقل داخل المقطع. فملف MP3 مدته 5 دقائق بمعدل 128 kbps يبلغ نحو 4.8 ميغابايت، ويصبح نحو 6.4 ميغابايت من النص داخل ملف 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 هو الخيار الآمن.لماذا لا تشغّل المعاينة ملفي؟
يعتمد المشغّل على برامج الترميز (codecs) المدمجة في متصفحك. فإذا كان المتصفح لا يدعم صيغة ما، مثل OGG في إصدارات Safari القديمة، تبقى المعاينة صامتة، لكن مخرجات Base64 تظل نسخة مطابقة تمامًا للملف.
ما أقصى طول لمقطع صوتي بترميز Base64؟
ترمّز الأداة ملفات يصل حجمها إلى 100 ميغابايت، لكن هذا الحجم أكبر بكثير من أن يُضمَّن. وللاستخدام المضمّن، اجعل المقاطع بطول بضع ثوانٍ وبحجم بضع عشرات من الكيلوبايتات. ولواجهات API الخاصة بالكلام، تحقّق من الحد المسموح للصوت المضمّن، فهو غالبًا أقل بكثير من حد الصوت المرفوع إلى التخزين.
هل يمكنني تحويل MP3 إلى WAV هنا؟
لا. ترمّز الأداة الملف كما هو، دون تغيير صيغته أو معدل البت أو معدل العينات. حوّل الصوت أولًا باستخدام محرر صوت أو أداة سطر أوامر مثل FFmpeg، ثم رمّز النتيجة.
هل يُرفع ملفي الصوتي؟
لا. يجري الترميز والتشغيل في متصفحك، ويبقى الملف على جهازك.