تحويل الصوت من فيديوهات يوتيوب إلى نص باستخدام بايثون
تحويل الصوت من فيديوهات يوتيوب إلى نص باستخدام بايثون
مقدمة
تُعَدّ عملية تحويل
الصوت إلى نص أحد المواضيع المثيرة للاهتمام في مجالات الذكاء الاصطناعي والتعلم
الآلي.
باستخدام الأدوات
المناسبة، يمكننا استخراج الصوت من فيديوهات يوتيوب وتحويله إلى نص مكتوب بسهولة.
في هذه المقالة،
سنتناول كيفية استخدام بايثون لتحقيق هذا الهدف
سأقوم بمشاركة الكود بشكل مجاني بحيث يستفيد منه الطلبة والباحثين
الأدوات المطلوبة
للقيام بهذه المهمة،
سنحتاج إلى الأدوات والمكتبات التالية:
- pytube: مكتبة لتحميل الفيديوهات من يوتيوب.
- ffmpeg: أداة قوية لتحويل صيغ الملفات الصوتية
والمرئية.
- speech_recognition: مكتبة
لتحويل الصوت إلى نص باستخدام خدمات التعرف على الصوت من جوجل.
الخطوة 1: تحميل الصوت من يوتيوب
أول خطوة هي تحميل الصوت من فيديو يوتيوب. نستخدم مكتبة pytube لتحقيق ذلك.
الكود التالي يوضح كيفية تحميل الصوت فقط من فيديو يوتيوب:
yt = YouTube(url)
audio_stream = yt.streams.filter(only_audio=True).first()
audio_stream.download(output_path)
return audio_stream.default_filename
الخطوة 2: تحويل الصوت إلى صيغة WAV
بعد تحميل الصوت، نحتاج إلى تحويله إلى صيغة WAV لتسهيل عملية التحويل إلى نص.
نستخدم أداة ffmpeg لهذا الغرض.
الكود التالي يوضح كيفية التحويل:
import os
import subprocess
def convert_to_wav(audio_file, output_path):
file_name, _ = os.path.splitext(os.path.basename(audio_file))
wav_file = os.path.join(output_path, f"{file_name}.wav")
subprocess.run(['ffmpeg', '-i', audio_file, wav_file])
return wav_file
الخطوة 3: تحويل الصوت إلى نص
الخطوة التالية هي تحويل الصوت إلى نص باستخدام مكتبة speech_recognition
هذه المكتبة توفر واجهة سهلة لاستخدام خدمات التعرف على الصوت من جوجل.
الكود التالي يوضح كيفية تنفيذ ذلك:
def audio_to_text(audio_file):
recognizer = sr.Recognizer()
with sr.AudioFile(audio_file) as source:
audio_data = recognizer.record(source)
text = recognizer.recognize_google(audio_data, language='en')
return text
بامكانك هنا تغيير اللغة واستبدال en ب ar للفيديوهات العربية
الخطوة 4: حفظ النص المحول
بعد تحويل الصوت إلى
نص، نحتاج إلى حفظ النص في ملف نصي. الكود التالي يوضح كيفية تنفيذ ذلك:
def save_text(text, output_file):
with open(output_file, 'w', encoding='utf-8') as file:
file.write(text)
التنفيذ الكامل
الكود التالي يوضح التنفيذ الكامل للخطوات المذكورة أعلاه:
if __name__ == "__main__":
video_url = '' # add your yt link here btw ''
output_path = 'OUTPUT_FOLDER_PATH'
output_file = 'OUTPUT_TEXT_FILE_PATH'
audio_file = download_audio(video_url, output_path)
wav_file = convert_to_wav(os.path.join(output_path, audio_file), output_path)
text = audio_to_text(wav_file)
save_text(text, output_file)
يمكن توظيف الكود بعد ذلك والتطويرعليه في عدة تطبيقات مثل ربطه ب chatgpt وبالتالي يستطيع المستخدم سؤال أي شيء حول نص الفيديوالمستخرج ويتم الاجابه عليه أو استخدامه في تطبيقات الترجمة الفورية للفيديوهات وغيرها.
للحصول على الكود انقر على الصورة في الاسفل :
الصور ادناه توضح مثال تطبيقي على احد الفيديوهات
AHMED A. A. ALFARRA
تعليقات
إرسال تعليق