آموزش ساخت مترجم صوتی همزمان با هوش مصنوعی با Whisper و پایتون

آموزش ساخت مترجم صوتی همزمان با هوش مصنوعی با Whisper و پایتون

آنچه در مقاله می‌خوانید

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

در حال حاضر ابزارهایی مانند Whisper، مدل‌های Translation و سیستم‌های Text To Speech این امکان را فراهم کرده‌اند که صدای ورودی دریافت شود، به متن تبدیل شود، ترجمه انجام شود و دوباره خروجی صوتی تولید شود.

در این مقاله بررسی می‌کنیم که چگونه می‌توان با استفاده از پایتون و چند مدل هوش مصنوعی، یک سیستم مترجم صوتی همزمان ساخت. همچنین معماری این سیستم، نقش GPU، ابزارهای مورد نیاز و چالش‌های اجرای پروژه را بررسی خواهیم کرد.

مترجم صوتی Real-Time چگونه کار می‌کند؟

سیستم‌های ترجمه صوتی همزمان معمولا از سه بخش اصلی تشکیل می‌شوند. در مرحله اول، صدای کاربر توسط مدل تشخیص گفتار پردازش می‌شود. سپس متن تولیدشده وارد مدل ترجمه می‌شود و در نهایت مدل Text To Speech متن ترجمه‌شده را به صدا تبدیل می‌کند.

جریان کلی این فرآیند به شکل زیر است:

Audio → Speech Recognition → Translation → Text To Speech

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

در چنین معماری‌ای، سرعت پردازش اهمیت بسیار زیادی دارد. اگر هر مرحله چند ثانیه زمان ببرد، خروجی دیگر همزمان محسوب نمی‌شود. به همین دلیل اکثر پروژه‌های مدرن ترجمه صوتی روی سرورهای قدرتمند AI اجرا می‌شوند و معمولا از سرور GPU برای کاهش Latency استفاده می‌کنند.

Whisper چیست و چرا برای ترجمه صوتی اهمیت دارد؟

Whisper یکی از قدرتمندترین مدل‌های متن‌باز در حوزه تشخیص گفتار یا ASR محسوب می‌شود. این مدل توسط OpenAI توسعه داده شده و روی میلیون‌ها ساعت فایل صوتی آموزش دیده است.

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

نسخه Whisper Large-v3 نسبت به نسخه‌های قبلی دقت بالاتری دارد و در زبان‌های مختلف عملکرد بهتری ارائه می‌کند. البته به دلیل مصرف بالای VRAM، اجرای این مدل معمولا روی سرور GPU انجام می‌شود.

نکته مهم این است که Whisper علاوه بر تبدیل گفتار به متن، قابلیت ترجمه مستقیم به انگلیسی را نیز دارد. با این حال در پروژه‌های حرفه‌ای multilingual معمولا از Translation Model جداگانه استفاده می‌شود تا کیفیت ترجمه و کنترل روی زبان مقصد بیشتر باشد.

مدل Translation چه نقشی در سیستم دارد؟

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

در پروژه‌های مدرن معمولا از مدل‌های مبتنی بر Transformer استفاده می‌شود، مدل‌هایی که توانایی درک Context و ساختار جمله را بهتر از سیستم‌های ترجمه سنتی دارند.

مدل‌هایی مانند NLLB، MarianMT و M2M100 برای ترجمه چندزبانه طراحی شده‌اند و می‌توانند متن را با سرعت بالا و کیفیت مناسب ترجمه کنند. این مدل‌ها فقط کلمات را جایگزین نمی‌کنند، بلکه تلاش می‌کنند مفهوم جمله را حفظ کنند تا خروجی طبیعی‌تر باشد.

البته در پروژه‌های Real-Time همیشه باید بین سرعت و دقت تعادل ایجاد شود. مدل‌های بزرگ‌تر معمولا ترجمه دقیق‌تری ارائه می‌دهند اما GPU بیشتری مصرف می‌کنند. به همین دلیل بعضی پروژه‌ها از نسخه‌های سبک‌تر استفاده می‌کنند تا تاخیر سیستم کاهش پیدا کند.

Text To Speech یا TTS چیست؟

بعد از ترجمه متن، مرحله تولید صوت آغاز می‌شود. در این بخش مدل TTS متن ترجمه‌شده را به گفتار تبدیل می‌کند.

برخلاف سیستم‌های قدیمی که صدایی مصنوعی و رباتیک تولید می‌کردند، مدل‌های جدید می‌توانند صدایی طبیعی‌تر و روان‌تر ایجاد کنند. مدل‌هایی مانند XTTS، VITS و Coqui TTS برای تولید صوت کم‌تاخیر طراحی شده‌اند و می‌توانند متن را با سرعت بالا به صدا تبدیل کنند.

این موضوع در پروژه‌های ترجمه همزمان اهمیت زیادی دارد، چون اگر تولید صوت زمان زیادی طول بکشد، تجربه کاربری ضعیف می‌شود.

چرا GPU برای این پروژه اهمیت زیادی دارد؟

اجرای همزمان مدل‌های ASR، Translation و TTS فشار زیادی به سخت‌افزار وارد می‌کند. هر کدام از این مدل‌ها میلیون‌ها یا حتی میلیاردها پارامتر دارند و اجرای آن‌ها روی CPU معمولا کند خواهد بود.

GPU به دلیل معماری موازی خود می‌تواند حجم زیادی از محاسبات را سریع‌تر پردازش کند. به همین دلیل اکثر پروژه‌های AI Real-Time روی سرور GPU اجرا می‌شوند.

در پروژه‌های مبتنی بر Whisper و Translation Model، میزان VRAM اهمیت زیادی دارد. مدل‌های بزرگ‌تر حافظه بیشتری مصرف می‌کنند و اگر GPU حافظه کافی نداشته باشد، سرعت سیستم کاهش پیدا می‌کند یا حتی اجرای مدل ممکن نیست.

البته نسخه‌های سبک‌تر مانند Faster-Whisper یا مدل‌های Quantized را می‌توان روی سرور مجازی یا حتی CPU نیز اجرا کرد، اما برای پردازش Real-Time حرفه‌ای معمولا استفاده از GPU ضروری است.

پایتون چه نقشی در ساخت مترجم صوتی دارد؟

بیشتر پروژه‌های مدرن هوش مصنوعی با پایتون توسعه داده می‌شوند و دلیل آن اکوسیستم گسترده کتابخانه‌های AI و Machine Learning است.

در پروژه ترجمه صوتی همزمان نیز معمولا از پایتون برای مدیریت کل Pipeline استفاده می‌شود. کتابخانه‌هایی مانند Transformers، PyTorch و Gradio فرآیند توسعه را بسیار ساده‌تر می‌کنند.

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

نمونه کد ساخت سیستم ترجمه صوتی با پایتون

برای ساخت چنین سیستمی معمولا از کتابخانه‌هایی مانند Transformers، PyTorch و Gradio استفاده می‌شود.

در مرحله اول باید مدل Whisper برای تشخیص گفتار بارگذاری شود.

from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
import torch
model_id = "openai/whisper-large-v3"
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
model = AutoModelForSpeechSeq2Seq.from_pretrained(
    model_id,
    torch_dtype=torch_dtype,
    low_cpu_mem_usage=True,
    use_safetensors=True,
)
model.to(device)
processor = AutoProcessor.from_pretrained(model_id)
pipe = pipeline(
    "automatic-speech-recognition",
    model=model,
    tokenizer=processor.tokenizer,
    feature_extractor=processor.feature_extractor,
    torch_dtype=torch_dtype,
    device=device,
)

 

کد بالا مدل Whisper را بارگذاری می‌کند و یک Pipeline برای تبدیل گفتار به متن می‌سازد.

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

result = pipe("sample.wav")
print(result["text"])
در مرحله بعد، متن تولیدشده وارد Translation Model می‌شود.
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "facebook/nllb-200-distilled-600M"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model_tr = AutoModelForSeq2SeqLM.from_pretrained(
    model_name,
    device_map="auto"
)
text = "سلام، حال شما چطور است؟"
inputs = tokenizer(text, return_tensors="pt").to(model_tr.device)
outputs = model_tr.generate(**inputs)
translated = tokenizer.decode(
    outputs[0],
    skip_special_tokens=True
)
print(translated)

در مرحله آخر، مدل TTS متن ترجمه‌شده را به فایل صوتی تبدیل می‌کند.

from TTS.api import TTS
tts = TTS(model_name="tts_models/multilingual/multi-dataset/xtts_v2")
tts.tts_to_file(
    text="Hello World",
    file_path="out.wav"
)

Gradio چگونه رابط کاربری پروژه را ساده می‌کند؟

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

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

نمونه ساده ساخت رابط کاربری با Gradio:

import gradio as gr
with gr.Blocks() as demo:
    gr.Markdown("# Real-Time Speech Translation")
    inp = gr.Audio(label="Input Audio")
    out_audio = gr.Audio(label="Translated Audio")
    out_text = gr.Textbox(label="Translated Text")
    btn = gr.Button("Run")
    btn.click(
        fn=tts_translate,
        inputs=inp,
        outputs=[out_audio, out_text]
    )
demo.launch()

این رابط کاربری امکان آپلود فایل صوتی و مشاهده خروجی ترجمه را فراهم می‌کند و برای ساخت نسخه دمو یا تست اولیه پروژه بسیار کاربردی است.

تفاوت Real-Time واقعی با پردازش عادی چیست؟

بسیاری از پروژه‌ها فقط فایل صوتی را دریافت کرده و بعد از پایان پردازش خروجی را نمایش می‌دهند، اما سیستم Real-Time واقعی باید بتواند صدا را به‌صورت لحظه‌ای پردازش کند.

در پروژه‌های حرفه‌ای معمولا از تکنیک‌هایی مانند:

  • Streaming Audio
  • Voice Activity Detection (VAD)
  • Async Processing
  • WebSocket Communication
  • Incremental Decoding

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

این معماری معمولا روی سرور اختصاصی یا سرور GPU پیاده‌سازی می‌شود تا منابع پردازشی به‌صورت کامل در اختیار مدل‌های AI قرار بگیرند.

چالش‌های ساخت سیستم ترجمه صوتی همزمان

با وجود پیشرفت مدل‌های هوش مصنوعی، ساخت سیستم ترجمه همزمان هنوز بدون چالش نیست.

یکی از مهم‌ترین مشکلات، Latency یا تاخیر است. اگر هر مرحله چند ثانیه زمان ببرد، کل سیستم دیگر Real-Time نخواهد بود.

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

مصرف GPU نیز یکی دیگر از مشکلات مهم این حوزه محسوب می‌شود. مدل‌های بزرگ به VRAM زیادی نیاز دارند و اجرای آن‌ها روی سرورهای ضعیف دشوار است.

علاوه بر این، کیفیت فایل صوتی ورودی تاثیر مستقیمی روی عملکرد سیستم دارد. نویز محیط، میکروفون ضعیف یا قطع و وصل شدن صدا می‌تواند دقت تشخیص گفتار را کاهش دهد.

جمع‌بندی

ترجمه صوتی همزمان دیگر فقط یک ایده علمی‌تخیلی نیست و حالا با ترکیب مدل‌هایی مانند Whisper، Translation Model و TTS می‌توان چنین سیستمی را با ابزارهای متن‌باز پیاده‌سازی کرد.

در این معماری، Whisper گفتار را به متن تبدیل می‌کند، Translation Model متن را ترجمه می‌کند و مدل TTS خروجی صوتی تولید می‌کند. اگر این Pipeline روی زیرساخت مناسب و سرور GPU اجرا شود، کل فرآیند می‌تواند در زمان بسیار کوتاهی انجام شود.

پیشرفت سریع مدل‌های هوش مصنوعی نشان می‌دهد که در آینده نزدیک، سیستم‌های ترجمه صوتی Real-Time به بخشی عادی از نرم‌افزارها، تماس‌های آنلاین و سرویس‌های ارتباطی تبدیل خواهند شد.

امتیاز شما به این مطلب
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هجده − 2 =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
خدمات مبین هاست