پروژه های برنامه نویسی

تبدیل پادکست به خلاصه متنی توسط مدل هوش مصنوعی

در دنیای پرشتاب امروز، زمان یکی از ارزشمندترین دارایی‌های ماست. بسیاری از ما علاقه‌مند به شنیدن پادکست‌های طولانی هستیم، اما یافتن فرصت کافی برای گوش دادن به یک پادکست ۴۰ دقیقه‌ای یا بیشتر، چالشی بزرگ محسوب می‌شود. کال نیوپورت، نویسنده کتاب «کار عمیق»، معتقد است که «استفاده هدفمند از فناوری و محدود کردن زمان صرف شده در شبکه‌های اجتماعی می‌تواند به شما کمک کند تا تمرکز خود را بازیابی کنید و زمان بیشتری برای کارهای عمیق داشته باشید».

 

ایده‌ای نو برای مشکلی قدیمی:

با توجه به این چالش، به این فکر افتادم که ابزاری توسعه دهم که بتواند پادکست‌ها را به‌صورت خودکار خلاصه‌ کند. هدف این بود که بتوانم فایل صوتی پادکست را به برنامه بدهم و در نهایت، نکات کلیدی و مهم آن را به‌صورت متنی مطالعه کنم. این نیاز به‌ویژه زمانی احساس می‌شود که متن یا رونوشت (transcript) پادکست‌ها به‌راحتی در دسترس نیستند.

توسعه ابزار:

برای ساخت این ابزار، از زبان برنامه‌نویسی پایتون استفاده کردم. کد اصلی پروژه مسئول دانلود پادکست و تقسیم آن به بخش‌های کوچکتر (chunk) است. سپس این بخش‌ها به‌صورت همزمان به API ارسال می‌شوند تا به متن تبدیل شوند. برای بخش back-end، از PHP و JavaScript بهره بردم تا فرآیند به‌صورت کاملاً خودکار انجام شود و در نهایت، یک متن خلاصه‌شده و فرمت‌دهی‌شده به‌صورت Markdown تولید شود که آماده‌ی صادرات به فایل Microsoft Word است. این کار، خواندن متن را برای من جذاب‌تر می‌کند.

قابلیت‌های شخصی‌سازی:

این پروژه امکان شخصی‌سازی بالایی دارد. برای مثال، به‌جای ارسال به back-end، می‌توانید از مدل‌های مشابهی مانند DeepSeek که روی سیستم‌عامل خودتان از طریق ابزارهایی مانند Ollama نصب کرده‌اید، استفاده کنید و فرآیند خلاصه‌سازی را به‌صورت محلی انجام دهید.

ابزارهای متن‌باز دیگری نیز وجود دارند که به‌صورت محلی صدا را به متن تبدیل می‌کنند. هرچند که آن‌ها را تست کرده‌ام و در مجموع عملکرد قابل قبولی داشتند، اما به کیفیت مورد نظر من نرسیدند.

چند سوال در خصوص این پروژه:

آیا این بهترین راه حل است؟
نمیدانم! من همیشه موقع حل مسئله می‌پرسم ساده و سریعترین راه کدام است؟!
پس جواب این سوال به مقیاس استفاده شما بستگی دارد. به طور مثال در زمان توسعه این پروژه به Production توجهی نشده و صرفا پاسخی به یک نیاز در ساده ترین و سریع ترین راه ممکن بوده است.

راه حل ساده تر همیشه بهترین است ویلیام اوکام

این یک اصل حل مسئله است که استدلال می کند که سادگی بهتر از پیچیدگی است. این نظریه که به نام منطق‌دان و الهی‌دان قرن چهاردهم ویلیام اوکام نامگذاری شده است، برای قرن‌ها به بسیاری از متفکران بزرگ کمک کرده است. بسیاری از صنایع به این قسم می خورند.

 

 

آیا بهتر نبود با Nodejs یا Python و … back-end نوشته شود؟ چرا PHP در سال 2025؟ 
از خودم میپرسم ساده ترین و سریع ترین راه که با Resource های من Align باشد کدام است؟! جواب مشخص میشود.

آیا نمیتوان به صورت آفلاین و لوکال با استفاده از منابع سخت افزاری شامل GPU و پروژه Whisper پادکست را به متن تبدیل کرد؟
بله می‌شود. اما با توجه به نیاز و Life style شما ممکن است بخواهید با یک آدرس URL در هر مرورگر و دیوایسی این کار را انجام دهید!

آیا بهتر نبود با مدل های زبانی Open Source و فوق العاده قوی به صورت Local متن پادکست را به خلاصه تبدیل کنیم تا نیاز به استفاده از API نداشته باشیم؟
بله می‌توانیم این کار را به سادگی انجام دهیم. اما این نیز سلیقه ای می‌باشد.

 

پیشنهاداتی در خصوص توسعه پروژه:

  • میتوان به جای ایجاد Chunk بر اساس حجم فایل، بر اساس دقیقه این کار را انجام داد.
  • میتوان هنگام ارسال متن پادکست به Back-end یک پرامپت اضافه که خاصیت Override به پرامپت پیشفرض را دارد ارسال کرد و آنگونه که میخواهیم خروجی دلخواه را پرینت کند.
  • میتوان به جای خلاصه سازی، متن را به یک LLM داد و از متن سوال پرسید (Chat with podcast) که ایده ای جالب می‌باشد!
  • پست خلاصه متن به صورت خودکار روی یک بلاگ یا Social media با خروجی های دلخواه.
  • ساخت یک وب سایت تولید خلاصه پادکست و پست خلاصه پادکست های پر بازدید به صورت آرشیو مشابه کاری که سایت های تولید خلاصه کتاب انجام میدهند!

نحوه استفاده:

  1. پس از دانلود پروژه از گیت‌هاب و نصب پیش نیاز های مورد نیاز، کافی است فایل main.py را اجرا کنید.
  2. برنامه از شما می‌خواهد که یا آدرس URL فایل MP3 را وارد کنید یا یک فایل MP3 را از سیستم خود انتخاب کنید.
  3. در فایل تنظیمات config.py، می‌توانید تعیین کنید که پادکست به چند بخش (مثلاً ۷ مگابایتی) تقسیم شود. سپس، این بخش‌ها به‌صورت همزمان به API ارسال می‌شوند تا فرآیند تبدیل به متن با سرعت بیشتری انجام شود.
  4. پس از تبدیل، متن‌های تولیدشده ذخیره می‌شوند و در نهایت، همه‌ی آن‌ها با هم ترکیب شده و در یک فایل متنی نمایش داده می‌شوند.
  5. در مرحله بعد، این متن کامل به back-end ارسال می‌شود. در آنجا، با استفاده از مدل GPT-4 و پرامپت‌های از پیش تعیین‌شده، خلاصه‌ای از متن تولید و نمایش داده می‌شود.
  6. در نهایت، می‌توانید متن خلاصه‌شده را مشاهده کرده و به‌عنوان یک فایل Word دانلود کنید.

در صورتی که در خصوص Deploy کردن این پروژه مشکلی داشتید در گیت هاب پروژه یک issue جدید باز کنید!

پروژه‌های آینده:

علاوه بر این، ابزارهای دیگری نیز توسعه داده‌ام که در آینده در گیت‌هاب منتشر خواهم کرد. ابزارهایی مانند خلاصه‌سازی ویدئوهای یوتیوب با وارد کردن لینک ویدئو، یا خلاصه‌سازی هر صفحه وب با یک کلیک. این ابزارها به من این امکان را می‌دهند که محتوای بیشتری را مرور کنم؛ گرچه به‌صورت سطحی‌تر، اما برای من کاربردی و جذاب هستند.

اگر این ابزار برای شما مفید بود، خوشحال می‌شوم بازخوردهای خود را با من در میان بگذارید.

امیدوارم این ابزار به شما در مدیریت و استفاده بهتر از محتوای پادکست‌ها کمک کند.

برای دسترسی به سورس کد و جزئیات بیشتر، به ریپازیتوری پروژه در گیت‌هاب مراجعه کنید:

Show More

Ehsan Heydari

I began my career in web and software development in 2011. Previously, I worked as an Android application developer using Java, and I am now proficient in PHP, JavaScript, and Python, with my main focus currently on developing web applications. Additionally, I have a strong interest in capital markets, blockchain, and the decentralized world of Web3, which has shaped my future roadmap.
دکمه بازگشت به بالا