محوّل Base64 إلى صوت

الصق صوتًا بترميز Base64 من استجابة خدمة لتحويل النص إلى كلام أو من data URI أو من بيانات JSON. تحدّد الأداة الصيغة، وتشغّل الصوت في المتصفح، وتحفظه كملف صوتي.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. الصق الصوت بترميز Base64 في حقل المدخلات، أو الصق data URI مثل data:audio/mpeg;base64,...
  2. تحقّق من الصيغة المكتشفة واضغط زر التشغيل في مشغّل الصوت.
  3. نزّل الملف. يحصل الملف على امتداد يطابق الصيغة المكتشفة، مثل .mp3 أو .wav.

فك ترميز مخرجات تحويل النص إلى كلام

لا تستطيع خدمات تحويل النص إلى كلام التي تجيب بصيغة JSON وضع صوت ثنائي في الاستجابة، لذا ترمّزه. فخدمة Google Cloud Text-to-Speech مثلًا تعيد الكلام كسلسلة Base64 في حقل اسمه audioContent، بالترميز الذي طلبته، مثل MP3 أو OGG Opus. وتستخدم واجهات API أخرى للصوت وروبوتات الدردشة حقولًا مثل audio أو data أو audio_base64.

الصق القيمة هنا للاستماع إلى النتيجة أثناء المقارنة بين الأصوات أو سرعات النطق أو المطالبات. انسخ السلسلة الموجودة بين علامتي الاقتباس فقط؛ فتحليل JSON أولًا يجنّبك نسخ علامات الاقتباس أو الأحرف المهرّبة مثل \/.

صيغ الصوت المكتشفة

تُعرف الصيغة من البايتات الأولى للبيانات بعد فك ترميزها، لذا لا يهم إن كان نوع MIME مفقودًا أو خاطئًا:

الصيغةالتوقيعتبدأ سلسلة Base64 بـ
MP3وسم ID3 أو ترويسة إطار MPEGSUQz أو في الغالب //
WAVRIFF ... WAVEUklGR
OGG (Vorbis وOpus)OggST2dnUw
FLACfLaCZkxhQ
M4A (AAC)صندوق ftyp بالعلامة M4Aمتغيّرة (تبدأ بحقل الحجم)

صوت PCM الخام: عندما لا يُشغَّل الصوت

ترسل بعض واجهات API الصوتية، ولا سيما الفورية والمتدفقة منها، عينات PCM خامًا، غالبًا بدقة 16 بت وقناة أحادية وبتردد 16 أو 24 كيلوهرتز، دون ترويسة ملف. وبالمثل تحمل تدفقات الاتصالات الهاتفية صوت μ-law بتردد 8 كيلوهرتز دون ترويسة. ومن دون ترويسة، لا شيء في البايتات يدل على ماهيتها: فلا يمكن اكتشاف الصيغة، ولا تستطيع المتصفحات تشغيل البيانات، ولا تستطيع هذه الأداة تخمين معدل العينات أو عدد القنوات. لا يزال بإمكانك تنزيل البايتات بعد فك ترميزها، لكن لسماعها تحتاج إلى إضافة ترويسة WAV باستخدام المعاملات الواردة في وثائق واجهة API:

# FFmpeg: عينات 16 بت بترتيب little-endian، بتردد 24 كيلوهرتز، قناة أحادية
ffmpeg -f s16le -ar 24000 -ac 1 -i speech.pcm speech.wav

# Python
import base64, wave
with wave.open('speech.wav', 'wb') as w:
    w.setnchannels(1)
    w.setsampwidth(2)        # عينات 16 بت
    w.setframerate(24000)
    w.writeframes(base64.b64decode(pcm_base64))

إذا بدا الصوت سريعًا جدًا أو بطيئًا جدًا أو مثل التشويش، فإن معدل العينات أو حجم العينة أو ترتيب البايتات لا يطابق البيانات. وبعد أن يُشغَّل، يمكن لأداة تحويل الصوت إلى Base64 ترميز ملف WAV مجددًا إذا احتجت إليه كسلسلة.

الأسئلة الشائعة

لماذا لا تستطيع الأداة تشغيل الصوت الخاص بي؟

إما أن البيانات صوت PCM خام دون ترويسة (انظر أعلاه)، وإما أن متصفحك لا يدعم برنامج الترميز. وفي الحالة الثانية يظل الملف المنزّل صحيحًا ويُفتح في مشغّل وسائط مثل VLC.

ترسل واجهة API الصوت في أجزاء Base64 كثيرة. كيف أجمعها؟

فك ترميز كل جزء إلى بايتات وألحقها ببعضها بالترتيب. أما ضم سلاسل Base64 أولًا فلا ينجح إلا إذا كان كل جزء، عدا الأخير، يرمّز عددًا من البايتات يقبل القسمة على 3، وهو ما لا يمكنك الاعتماد عليه عادةً. وتفك هذه الأداة ترميز سلسلة واحدة في كل مرة، لذا اجمع الأجزاء المتدفقة في شيفرتك الخاصة.

هل الصوت بعد فك الترميز مطابق للأصل؟

نعم. Base64 ترميز بلا فقدان، لذا يحتوي الملف على البايتات التي رُمّزت تمامًا، بالجودة ومعدل البت نفسيهما. ولا تعيد الأداة ترميز الصوت ولا تحوّله.

هل يمكنني لصق data URI؟
نعم. الصق السلسلة data:audio/...;base64, كاملة، أو Base64 الخام دون بادئة. وفي الحالتين تُكتشف الصيغة من البايتات بعد فك الترميز.
هل يُرسل ملفي الصوتي إلى خادم؟

لا. يجري فك الترميز واكتشاف الصيغة والتشغيل كلها في متصفحك.