GitHub گفته از ابتدای ۲۰۲۶ قراره مدل قیمتگذاری GitHub Actions عوض بشه
اولش شاید به نظر بیاد خبر خوبیه چون میگن هزینه runnerهای خود گیتهاب کمتر میشه ولی وقتی دقیقتر نگاه میکنی میبینی قضیه اونقدرها هم ساده نیست
قراره یه هزینه پلتفرم به ازای هر دقیقه اجرا اضافه بشه
یعنی حتی اگه runner رو خودت داشته باشی باز هم باید به GitHub پول بدی فقط برای اینکه از Actions استفاده میکنی فعلاً گفتن این بخش برای self hosted عقب افتاده ولی مشخصه که هنوز تصمیم نهایی گرفته نشده و احتمال پولی شدنش وجود داره
مسئله بعدی اینه که هرچی بیشتر از GitHub Actions استفاده کنی وابستهتر میشی
Workflowها اکشنها و کل CI/CD طوری طراحی شدن که اگه یه روز بخوای ازش جدا شی کلی دردسر داشته باشه
CI/CD بخش مهم پروژهست و وقتی قیمت و قوانینش دست یه شرکت متمرکز باشه همیشه این ریسک هست که یه تصمیم جدید همه چیز رو به هم بزنه
به همین خاطر GitLab برای خیلیها انتخاب منطقیتریه
CI/CD از اول جزو هسته گیتلب بوده نه یه چیز اضافه اگه self hosted بری جلو نه هزینه دقیقهای داری نه محدودیت عجیب و کنترل کامل دست خودته
اگه آزادی برات مهمتره Forgejo گزینه جدیتریه
کاملاً متنبازه self hosted واقعیه و خبری از هزینه دقیقهای و قفل شدن توی یه اکوسیستم خاص نیست بیشتر به نفع کاربر ساخته شده تا شرکت
خلاصه اینکه GitHub Actions هنوز کار راهاندازه
ولی مسیری که داره میره نشون میده بهتره از الان به گزینههای دیگه هم فکر کنی
حداقل GitLab یا Forgejo رو تست کن که اگه یه روز مجبور به مهاجرت شدی غافلگیر نشی
#DevOps
#byteforge
@byteforge_chan 🛸
31 · 2.3K · سلام وقت بخیر
خواستم بجای whisper از faster-whisper استفاده کنم که برای فیلم های تایم بالا سریع تر باشه و کمتر به gpu اینا فشار بیاره
اما کدش موقع ران انگار گیر میکنه و رو این حالتی که تو عکس فرستادم میمونه
کتابخانه های زیر رو هم نصب کردم:
nvidia-cudnn-cu12
nvidia-cublas-cu12
لطفا راهنمایی کنید❤️
# making_subtitle_english_faster.py
# faster-whisper LARGE (GPU)
# Fixed input file: D:\confidental\Music\Tear.mp3
import os
import subprocess
import tempfile
from faster_whisper import WhisperModel
import pysubs2
def extract_audio(input_path, output_wav):
cmd = [
"ffmpeg", "-y",
"-i", input_path,
"-vn",
"-acodec", "pcm_s16le",
"-ar", "16000",
"-ac", "1",
output_wav
]
subprocess.run(cmd, check=True)
def save_srt(segments, output_srt):
subs = pysubs2.SSAFile()
for seg in segments:
subs.append(
pysubs2.SSAEvent(
start=int(seg.start * 1000),
end=int(seg.end * 1000),
text=seg.text.strip()
)
)
subs.save(output_srt)
print(f"SRT created -> {output_srt}")
def main():
input_file = r"D:\confidental\Music\Tears.mp3"
if not os.path.exists(input_file):
print("Input file not found!")
return
output_srt = os.path.splitext(input_file)[0] + ".srt"
print("Loading Whisper LARGE model on GPU...")
# :white_check_mark: این خط اصلاح شد
model = WhisperModel(
"large-v3", # ← آرگومان اول، نه keyword
device="cuda",
compute_type="float16"
)
with tempfile.TemporaryDirectory() as tmp:
audio_wav = os.path.join(tmp, "audio.wav")
print("Extracting audio...")
extract_audio(input_file, audio_wav)
print("Transcribing...")
segments, info = model.transcribe(
audio_wav,
beam_size=5,
vad_filter=True,
language="en",
condition_on_previous_text=False
E Y E اگه بتونید یکم اطلاعات دقیقتر بدید بهتر میشه عبارت هایی مثل thank you زمانی نوشته میشن که برنامه در تشخیص با مشکل مواجه میشه مثلا زمان های خالی که چیزی برای پردازش وجود نداره اینا چاپ میشن در صورتی که این اتفاق میوفته باید تنظیمات مربوژ به تشخیص سکوت و گفتار رو ایجاد یا بهینه کنید پیشنهادی برای models.transcribe segments, info = model.transcribe( audio_wav, beam_size=5, vad_filter=True, vad_parameters=dict( min_silence_duration_ms=500, speech_pad_ms=300, no_speech_threshold=0.95, compression_ratio_threshold=2.4, language="en", condition_on_previous_text=False ) یا vad_parameter های دیگه ای که فکر میکنید نیازه اگه فایلاتون تمیز نشدن قبل از اینکه بعنوان ورودی استفاده کنید تمیزشون کنید تا نویز و چیزای اذیت کار کم یا حذف بشه ffmpeg -i input.wav -af "arnndn=m=rnnoise.rnnn, silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-30dB" output_cleaned.wav توی اجرای برنامه چک کنید ببینید اون پرینتی که گذاشتی نمایش داده میشه یا نه loadin whisper large model on gpu کدتون رو روی فایل دیگه هم امتحان میکنید همینه؟
S E
سلام به همگی
دارم یک سایت میزنم که باید روی پرژکتور های نه چندان پیشرفته بالا بیاد
یه مشکلی که با پرژکتور خوردیم ، اینه که اندروید ۹ روش نصبه و کرومش ورژن ۶۶ که خیلی خیلی قدیمیه و استایل ها و بیشتر جاوااسکریپت سایت رو نمیخونه ( کلا سایت به هم میریزه )
راهی هست که سایت با این ورژن کروم سازگار بشه ؟
استایل بعضی صفحات رو با css خام زدم اوکی شد ، ولی هنوزم ریکوئست هایی که با ری اکت کوئری میده و ری رندر که باید انجام بشه نمایش داده نمیشه
احیانا کسی تجربه ای داشته ؟ یا اگه شخصی رو میشناسین که بتونه راهنماییم کنه 🤝
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
doh یه ابزار خطفرمان سبکه که باهاش DNS رو به شکل DNS over HTTPS میفرستی یعنی بهجای اینکه درخواست DNS معمولی و قابل شنود بفرستی، کوئری داخل HTTPS روی پورت ۴۴۳ میره سمت Cloudflare (1.1.1.1) و رمزنگاری میشه
به درد وقتایی میخوره که میخوای بدون درگیر شدن با DNS سیستمعاملت دامنهها رو resolve کنی یا وقتی DNS اینترنتت درست جواب نمیده، فیلتره یا دستکاری شده. برای دیباگ شبکه هم خیلی خوبه چون مستقیم میبینی هر دامنه دقیقاً چه رکوردایی برمیگردونه.
doh a google.com
doh mx gmail.com
doh txt example.com
لینک ریپو :
https://github.com/mxssl/doh
#tools
#DevOps
#byteforge
@byteforge_chan 🛸
46 · 2.7K · پیوند
برای نمایش کلیک کنید
برای نمایش کلیک کنید
https://www.linkedin.com/posts/duneglobalsec_cybersecurity-securecoding-smartcontractsecurity-activity-7412208671591436291-6-_B?utm_source=share&utm_medium=member_desktop&rcm=ACoAADUbt_EBynwOWe2DXhZpHV-8f_aycUYje9k
Thanks for your supprot❤️🙏🏻