تحويل الصوت إلى نص باستخدام بايثون, دليل المبتدئين
Guideعربي فقط
١٨ فبراير ٢٠٢٦7 min readفريق مفكّر

تحويل الصوت إلى نص باستخدام بايثون, دليل المبتدئين

دليل مبتدئين لبناء سكربت تحويل صوت إلى نص بالبايثون باستخدام Google Speech API و Whisper، مع أمثلة كود ونصائح للعربية.

عندك تسجيل صوتي لمحاضرة. أو ملاحظات صوتية سجلتها بالسيارة. أو مقابلة كاملة تحتاج تفرغها. تقعد تسمع وتكتب يدوياً؟ ممكن، بس لو التسجيل ساعة كاملة رح تقضي ثلاث ساعات تكتب. فيه طريقة أذكى.

بايثون تخليك تحول أي ملف صوتي إلى نص مكتوب بأسطر قليلة من الكود. وفي هالمقال رح نبني مع بعض سكريبت من الصفر، خطوة بخطوة، ونجرب طريقتين مختلفتين: Google Speech API و OpenAI Whisper API. نقارن بينهم ونشوف أيهم يناسبك.

ما تحتاج تكون خبير برمجة. لو تعرف تكتب print("hello") وتشغل سكريبت بايثون، تقدر تتابع معي.

ليش بايثون للتعامل مع الصوت؟

بايثون فيها نظام مكتبات (packages) غني جداً. أي شي تبي تسويه، من تحليل بيانات إلى ذكاء اصطناعي إلى معالجة صوت، فيه مكتبة جاهزة تثبتها بأمر واحد. ما تحتاج تبني شي من الصفر.

في موضوع تحويل الصوت لنص تحديداً، عندك خيارات كثيرة. بس أشهرهم وأكثرهم استخداماً اثنين: مكتبة SpeechRecognition اللي توصلك بـ Google، ومكتبة openai اللي توصلك بـ Whisper. نجرب الاثنين.

تثبيت المكتبات المطلوبة

قبل ما نبدأ نكتب كود، لازم نثبت المكتبات. افتح التيرمنال (أو Command Prompt على ويندوز) واكتب:

pip install SpeechRecognition

هذي مكتبة تعطيك وصول سهل لعدة محركات تعرف على الكلام، منها Google و IBM و Microsoft. نحن بنستخدم Google لأنه مجاني ولا يحتاج مفتاح.

للطريقة الثانية (Whisper API)، ثبت مكتبة OpenAI:

pip install openai

هذي تحتاج مفتاح API من OpenAI (والخدمة مدفوعة بس رخيصة). بنشرح الطريقتين ونخليك تختار.

الطريقة الأولى: Google Speech Recognition

هذي أسهل طريقة تبدأ فيها. ما تحتاج حساب ولا مفتاح ولا بطاقة ائتمان. مكتبة SpeechRecognition تتعامل مع Google Speech API المجاني مباشرة.

ملاحظة مهمة: النسخة المجانية من Google عندها حدود على عدد الطلبات. للاستخدام الشخصي والتجارب، كافية. للاستخدام الكثيف، رح تحتاج تنتقل لحل ثاني.

هذا الكود الكامل:

import speech_recognition as sr

recognizer = sr.Recognizer()
with sr.AudioFile("audio.wav") as source:
    audio = recognizer.record(source)

text = recognizer.recognize_google(audio, language="ar-SA")
print(text)

خلنا نمشي سطر سطر. أول شي نستورد المكتبة ونسوي كائن Recognizer. بعدين نفتح ملف الصوت، لازم يكون بصيغة WAV. نسجل البيانات الصوتية. وبعدين نرسلها لـ Google مع تحديد اللغة.

لاحظ إننا كتبنا language="ar-SA"، يعني عربي سعودي. تقدر تغيرها حسب اللهجة اللي تبيها: "ar-EG" للمصري، "ar-LB" للبناني، "ar-MA" للمغربي. بس خلني أكون صريح معك، حتى لو غيرت رمز اللهجة، الدقة مع اللهجات العامية تبقى محدودة. Google Speech مدرّب أكثر على الفصحى.

ايش تتوقع من النتائج؟

مع الإنجليزية، النتائج عادةً ممتازة. Google عنده بيانات تدريب ضخمة بالإنجليزي.

مع العربية الفصحى الواضحة، مثل تسجيل خطبة أو نشرة أخبار، النتائج مقبولة. مش مثالية بس تعطيك أساس تبني عليه.

مع اللهجات العامية، توقع أخطاء كثيرة. كلمات ناقصة، جمل ما لها معنى، وأحياناً يطلع نص بلغة ثانية تماماً. هذا مو عيب فيك ولا في الكود، هذا واقع المحركات العامة مع اللهجات العربية.

الطريقة الثانية: OpenAI Whisper API

الحين ننتقل لخيار أقوى. Whisper من OpenAI نموذج مدرّب على بيانات أكبر بكثير، وأداؤه مع العربية أفضل بشكل ملموس من Google Speech.

هنا نستخدم الـ API السحابي، يعني Whisper يشتغل على سيرفرات OpenAI، مو على جهازك. ما تحتاج GPU ولا ذاكرة كبيرة. بس تحتاج مفتاح API.

from openai import OpenAI

client = OpenAI()
with open("audio.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=audio_file,
        language="ar"
    )
print(transcript.text)

الكود واضح ومباشر. نسوي عميل OpenAI (المكتبة تلقائياً تقرأ مفتاح الـ API من متغير البيئة OPENAI_API_KEY). نفتح ملف الصوت. نرسله للـ API مع تحديد النموذج واللغة. ونطبع النص.

ميزة الـ API السحابي إن السرعة ثابتة بغض النظر عن جهازك. سواء عندك لابتوب قديم أو جهاز قوي، النتيجة واحدة. والنموذج اللي يشتغل على السيرفر هو النسخة الكاملة، مو نسخة مصغرة.

الفرق بين Whisper المحلي والـ API

ممكن تتساءل: ايش الفرق بين تشغيل Whisper على جهازي وبين استخدام الـ API؟ الفرق الأساسي في ثلاث نقاط:

  • التكلفة: المحلي مجاني بالكامل. الـ API مدفوع بس رخيص (تقريباً 0.006 دولار للدقيقة).
  • السرعة: المحلي يعتمد على قوة جهازك. الـ API سريع دائماً.
  • الإعداد: المحلي يحتاج تثبيت Python و PyTorch و ffmpeg. الـ API بس مكتبة واحدة ومفتاح.

لو تبي تجرب وتتعلم، المحلي أفضل. لو تبي نتائج سريعة بدون صداع الإعداد، الـ API هو الخيار.

مقارنة عملية: Google مقابل Whisper

خلنا نكون عمليين ونلخص الفروقات اللي تهمك فعلاً:

  • السعر: Google مجاني (بحدود). Whisper API مدفوع بس رخيص.
  • دقة الإنجليزية: الاثنين ممتازين.
  • دقة العربية الفصحى: Google متوسط. Whisper جيد.
  • دقة اللهجات العربية: Google ضعيف. Whisper متوسط، أحسن بس لسه مو مثالي.
  • سهولة البداية: Google أسهل (ما يحتاج مفتاح). Whisper يحتاج حساب OpenAI.
  • صيغ الملفات: Google يحتاج WAV. Whisper يقبل MP3 و M4A و WAV وغيرها.

نصيحتي: ابدأ بـ Google عشان تفهم المفهوم وتجرب. بعدين انتقل لـ Whisper لما تحتاج دقة أعلى.

الفيل اللي في الغرفة: اللهجات العربية

لو جربت أي من الطريقتين مع تسجيل صوتي باللهجة اليومية، خليجي، مصري، شامي، مغربي، رح تلاحظ إن النتائج مو اللي تتمناها.

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

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

وفوق هذا، الكثير منا يخلط عربي مع إنجليزي بنفس الجملة. "خلنا ننهي الـ project قبل الـ deadline"، جملة عادية بأي اجتماع عمل عربي. بس النماذج التقليدية تنهار لما تسمع هالخلط.

الحل للهجات: أدوات متخصصة

هنا بالضبط بنينا مفكّر. لأن الحلول البرمجية العامة، مهما كانت قوية، عندها حدود واضحة مع اللهجات العربية.

مفكّر مصمم خصيصاً للصوت العربي بكل تنوعه. ترفع التسجيل وتحصل على نص دقيق يعكس اللي انقال فعلاً، مو ترجمة فصحى تقريبية. وما تحتاج تكتب سطر كود واحد. ولا تثبت بايثون. ولا تتعامل مع مفاتيح API.

لو أنت مبرمج وتستمتع بالتحكم الكامل، الطرق اللي شرحناها فوق ممتازة وتعطيك مرونة عالية. بس لو تبي نتائج دقيقة مع اللهجات بأسرع طريقة ممكنة، الأدوات المتخصصة هي الجواب.

نصائح عملية لنتائج أفضل

بغض النظر عن الأداة اللي تستخدمها، فيه أشياء بسيطة تفرق فرق كبير بالنتائج:

  • استخدم WAV بدل MP3 لما تقدر. صيغة WAV ما فيها ضغط، يعني البيانات الصوتية كاملة وما ضاع منها شي. هذا يعطي النموذج معلومات أكثر يشتغل عليها.
  • سجّل في مكان هادي. الضوضاء في الخلفية تأثيرها أكبر مما تتوقع. حتى صوت المكيف ممكن يأثر على الدقة.
  • قسّم التسجيلات الطويلة. ملف 30 ثانية يعطي نتائج أدق من ملف ساعة كاملة. لو التسجيل طويل، قسمه لمقاطع قصيرة قبل المعالجة.
  • حدد اللغة يدوياً. لا تخلي النموذج يخمن. مع العربي تحديداً، التحديد اليدوي يفرق بالدقة.
  • جرب أكثر من أداة. أحياناً Google يعطي نتيجة أفضل على ملف معين، وأحياناً Whisper أفضل. لو الدقة مهمة، جرب الاثنين وقارن.

الخلاصة

تحويل الصوت إلى نص ببايثون صار أسهل من أي وقت. Google Speech API يعطيك بداية سريعة ومجانية. Whisper API يعطيك دقة أعلى مع مرونة أكبر. الاثنين يشتغلون بأسطر قليلة من الكود.

بس لو هدفك الأساسي تحويل صوت عربي بلهجات مختلفة، لازم تكون واقعي، الحلول العامة عندها حدود واضحة مع تنوع اللهجات العربية. جرب الطرق اللي شرحناها، شوف وين توصلك، ولو احتجت دقة أعلى مع لهجتك تحديداً، الحلول المتخصصة موجودة وتنتظرك.

يلا، افتح التيرمنال وابدأ.

Ready to try Mufakkir?

20 free minutes of transcription. No card required. Just talk.

Get Started Free

Related Articles

We use analytics to improve Mufakkir.
No personal data is sold. Your recordings stay private.