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

 

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



 

مقدمة

تُعَدّ عملية تحويل الصوت إلى نص أحد المواضيع المثيرة للاهتمام في مجالات الذكاء الاصطناعي والتعلم الآلي.

باستخدام الأدوات المناسبة، يمكننا استخراج الصوت من فيديوهات يوتيوب وتحويله إلى نص مكتوب بسهولة.

في هذه المقالة، سنتناول كيفية استخدام بايثون لتحقيق هذا الهدف


سأقوم بمشاركة الكود بشكل مجاني بحيث يستفيد منه الطلبة والباحثين 

 

الأدوات المطلوبة

للقيام بهذه المهمة، سنحتاج إلى الأدوات والمكتبات التالية:

  • pytube: مكتبة لتحميل الفيديوهات من يوتيوب.
  • ffmpeg: أداة قوية لتحويل صيغ الملفات الصوتية والمرئية.
  • speech_recognition: مكتبة لتحويل الصوت إلى نص باستخدام خدمات التعرف على الصوت من جوجل.


الخطوة 1: تحميل الصوت من يوتيوب

  أول خطوة هي تحميل الصوت من فيديو يوتيوب. نستخدم مكتبة   pytube لتحقيق ذلك. 


الكود التالي يوضح كيفية تحميل الصوت فقط من فيديو يوتيوب:

from pytube import YouTube
def download_audio(url, output_path):
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



تعليقات

المشاركات الشائعة من هذه المدونة

التعرف على الوجوه باستخدام Python

استخدام Webots و MediaPipe للتحكم في حركة الروبوت بواسطة وضعية الرأس

التحكم بالفأرة بالفم باستخدام OpenCV و Mediapipe و PyAutoGUI