پاسخ کوتاه: برای حذف صدای تایپ، فن و صحبت همکاران در تماسهای VoIP از RNNoise استفاده کنید؛ یک حذفکننده نویز متنباز مبتنی بر شبکه عصبی. اگر اپراتورها با MicroSIP روی ویندوز کار میکنند، RNNoise را با Equalizer APO روی میکروفون هدست نصب کنید (حدود ۱۵ دقیقه برای هر سیستم). اگر وبفون مبتنی بر مرورگر (WebRTC) دارید، دو راه دارید: حذف نویز داخلی مرورگر را روشن کنید، یا RNNoise را داخل کد خود وبفون بگذارید تا بدون نصب روی سیستم اپراتورها، برای همه کار کند. RNNoise چیست و چرا برای مرکز تماس مناسب است؟ RNNoise کتابخانهای متنباز از بنیاد Xiph.org (سازندگان کدک Opus) است که با یک شبکه عصبی کوچک، صدای انسان را از نویز جدا میکند و روی پردازنده معمولی، بدون کارت گرافیک اجرا میشود. حذفکنندههای قدیمی فقط نویز ثابت مثل صدای فن را کم میکنند. RNNoise همراه با «تشخیص صدا» (VAD) در فاصله بین جملههای اپراتور میکروفون را کاملاً ساکت میکند؛ یعنی صدای تایپ و حتی صحبت همکار بغلدستی هم به مشتری نمیرسد. کدام روش برای شما مناسب است؟ روش کجا اجرا میشود نصب روی سیستم اپراتور کیفیت حذف نویز مناسب برای --- --- --- --- --- Equalizer APO و RNNoise ویندوز، روی میکروفون بله، یک بار برای هر سیستم بالا MicroSIP و هر برنامه دیگر روی همان سیستم حذف نویز داخلی مرورگر مرورگر (WebRTC) ندارد متوسط؛ صحبت اطرافیان را حذف نمیکند وبفون، راه سریع RNNoise داخل کد وبفون مرورگر (WebAssembly) ندارد بالا وبفون، وقتی سیستم اپراتورها در اختیار شما نیست لینک دانلود ابزارها Equalizer APO (نسخه 1.4.2، ویندوز ۶۴ بیتی): صفحه دانلود در SourceForge، فایل EqualizerAPO-x64-1.4.2.exe پلاگین RNNoise برای ویندوز (پروژه noise-suppression-for-voice): صفحه Releases در GitHub، فایل win-rnnoise.zip MicroSIP: microsip.org/downloads کتابخانه حذف نویز برای وبفون: web-noise-suppressor در GitHub (نصب با npm) روش ۱: ویندوز و MicroSIP با Equalizer APO Equalizer APO صدای میکروفون را در سطح خود ویندوز پردازش میکند. پس MicroSIP و هر برنامه دیگری، حتی وبفون داخل کروم، صدای تمیزشده را میگیرد و داخل MicroSIP چیزی نصب نمیشود. پیشنیاز: ویندوز ۱۰ یا ۱۱ (۶۴ بیتی) با دسترسی ادمین و یک هدست USB یا سیمی. هدفون بلوتوثی برای این کار مناسب نیست (توضیح در بخش اشتباهات رایج). گام ۱: پلاگین را در مسیر درست باز کنید 1. روی win-rnnoise.zip راستکلیک کنید و Extract All را بزنید. 2. مسیر را C:\rnnoise بگذارید تا فایل اینجا باشد: C:\rnnoise\win-rnnoise\vst\rnnoise_mono.dll 3. فایل را در Downloads یا Desktop نگذارید؛ سرویس صدای ویندوز اجازه خواندن پوشههای کاربر را ندارد. گام ۲: میکروفون را روی 48000 هرتز بگذارید 1. کلید ویندوز را بزنید، mmsys.cpl را تایپ کنید و Enter بزنید. 2. در تب Recording روی میکروفون هدست دو بار کلیک کنید. 3. در تب Advanced فرمتی را انتخاب کنید که به 48000 Hz ختم میشود. RNNoise فقط با این نرخ نمونهبرداری درست کار میکند. گام ۳: Equalizer APO را فقط روی میکروفون نصب کنید 1. MicroSIP را کامل ببندید (روی آیکونش کنار ساعت راستکلیک و Exit). 2. فایل نصب را اجرا کنید. در پایان پنجره Device Selector باز میشود. در نسخههای قدیمی اسمش Configurator بود و بعداً از مسیر C:\Program Files\EqualizerAPO\DeviceSelector.exe هم باز میشود. 3. در بخش Capture devices میکروفون هدست را تیک بزنید. 4. در بخش Playback devices بلندگوی هدست را تیک نزنید؛ وگرنه فیلتر روی صدای مشتری هم اجرا میشود و ممکن است کلمههایش را قطع کند. 5. OK بزنید و سیستم را یک بار ریاستارت کنید. گام ۴: پلاگین RNNoise را اضافه کنید 1. Configuration Editor را باز کنید (منوی استارت، پوشه Equalizer APO، یا فایل Editor.exe در همان پوشه نصب). 2. دکمه + سبز، سپس Plugins و VST plugin را بزنید و فایل rnnoise_mono.dll را انتخاب کنید. 3. دکمه پاور همان ردیف باید روشن باشد. اگر خودش و دکمه Open panel خاکستریاند، پلاگین خاموش است. 4. روی Open panel بزنید و این مقادیر را بگذارید: VAD Threshold روی 90%، VAD Grace Period روی 20 و Retroactive VAD Grace روی 0. 5. Preamplification را از -6 به 0 دسیبل برسانید و با Ctrl+S ذخیره کنید. گام ۵: تست کنید و MicroSIP را تنظیم کنید 1. با برنامه Sound Recorder ده ثانیه ضبط کنید: حرف بزنید، بعد ساکت بمانید و تایپ کنید. در پخش، صدای شما باید واضح و صدای تایپ حذف یا خیلی ضعیف باشد. 2. در MicroSIP از منوی Settings، میکروفون و بلندگو را روی هدست بگذارید و ذخیره کنید. 3. با موبایل یک همکار تماس بگیرید و از کسی بخواهید کنار شما بلند صحبت کند. طرف مقابل باید فقط صدای شما را بشنود. بعد از این، فیلتر با هر بار روشنشدن ویندوز خودکار اجرا میشود. در تست ما Equalizer APO مصرف پردازنده آن را حدود ۲ درصد یک هسته تخمین زد. روش ۲: حذف نویز در وبفون (WebRTC) اگر اپراتورها از داخل مرورگر تماس میگیرند، دو راه دارید. اگر Equalizer APO روی سیستم اپراتور نصب باشد، وبفون هم صدای تمیز را میگیرد؛ این دو راه برای وقتی است که نمیخواهید یا نمیتوانید روی سیستمها چیزی نصب کنید. راه اول: حذف نویز داخلی مرورگر مرورگرها یک حذفکننده نویز ساده در WebRTC دارند که با گزینههای getUserMedia روشن میشود. در کروم این گزینهها بهطور پیشفرض روشناند، ولی بهتر است صریح بنویسید تا تنظیم دیگری خاموششان نکند: ``js const stream = await navigator.mediaDevices.getUserMedia({ audio: { noiseSuppression: true, echoCancellation: true, autoGainControl: true, }, }); ` این روش صدای فن و همهمه ثابت را کم میکند، اما صحبت همکاران را تقریباً حذف نمیکند، چون آن را هم صدای انسان تشخیص میدهد. راه دوم: RNNoise داخل کد وبفون با کتابخانه @sapphi-red/web-noise-suppressor میتوانید RNNoise را بهصورت WebAssembly داخل خود صفحه اجرا کنید. صدای میکروفون از فیلتر رد میشود و همان جریان تمیز برای تماس فرستاده میشود. روی سیستم اپراتورها چیزی نصب نمیشود و تغییر برای همه یکجا اعمال میشود. `bash npm i @sapphi-red/web-noise-suppressor ` `js import { RnnoiseWorkletNode, loadRnnoise } from "@sapphi-red/web-noise-suppressor"; // Vite syntax; with other bundlers serve these three files as static assets import rnnoiseWorkletPath from "@sapphi-red/web-noise-suppressor/rnnoiseWorklet.js?url"; import rnnoiseWasmPath from "@sapphi-red/web-noise-suppressor/rnnoise.wasm?url"; import rnnoiseSimdWasmPath from "@sapphi-red/web-noise-suppressor/rnnoise_simd.wasm?url"; const ctx = new AudioContext({ sampleRate: 48000 }); const wasmBinary = await loadRnnoise({ url: rnnoiseWasmPath, simdUrl: rnnoiseSimdWasmPath }); await ctx.audioWorklet.addModule(rnnoiseWorkletPath); const mic = await navigator.mediaDevices.getUserMedia({ audio: { noiseSuppression: false, echoCancellation: true, autoGainControl: true }, }); const source = ctx.createMediaStreamSource(mic); const rnnoise = new RnnoiseWorkletNode(ctx, { wasmBinary, maxChannels: 1 }); const output = ctx.createMediaStreamDestination(); source.connect(rnnoise); rnnoise.connect(output); // output.stream = the cleaned microphone ` سپس بهجای میکروفون خام، output.stream را به کتابخانه SIP بدهید. برای نمونه در JsSIP: `js ua.call("sip:1001@example.com", { mediaStream: output.stream }); ` اگر از کتابخانه دیگری استفاده میکنید، در مستندات آن دنبال گزینهای بگردید که یک MediaStream آماده بگیرد. چند نکته برای این روش: مرورگرها AudioContext را فقط بعد از تعامل کاربر فعال میکنند؛ این کد را در رویداد کلیک دکمه تماس اجرا کنید یا ctx.resume() را صدا بزنید. در کد بالا حذف نویز داخلی مرورگر خاموش شده تا دو فیلتر روی هم کار نکنند. اگر صدا طبیعیتر شد، میتوانید آن را روشن هم امتحان کنید. AudioWorklet در نسخههای جدید کروم، اج، فایرفاکس و سافاری پشتیبانی میشود. اشتباهات رایجی که در تست واقعی دیدیم این راهاندازی را برای یک تیم فروش تلفنی انجام دادیم و این اشتباهها بارها تکرار شد: مشکل علامت راهحل --- --- --- انتخاب بلندگو بهجای میکروفون صدا هیچ تغییری نمیکند در Device Selector فقط میکروفون هدست تیک بخورد فایل پلاگین در Downloads پیام زرد The library is not readable by the audio service فایل را به C:\rnnoise ببرید و دوباره انتخاب کنید ردیف VST خاموش دکمه پاور و Open panel خاکستریاند روی دکمه پاور همان ردیف کلیک کنید پیدا نکردن Configurator در منوی استارت نیست در نسخه 1.4.2 اسمش DeviceSelector است هدفون بلوتوثی فیلتر کار نمیکند یا صدا بیکیفیت است هدست USB یا سیمی؛ میکروفون بلوتوث هنگام تماس با نرخ پایین (معمولاً 16 کیلوهرتز) کار میکند Preamplification روی -6` صدای اپراتور آرامتر به مشتری میرسد آن را روی 0 بگذارید لیست Device خالی است میکروفون در Editor دیده نمیشود Editor را کامل ببندید (از Task Manager) و دوباره باز کنید چطور تنظیمات را دقیقتر کنیم؟ همه این تغییرها از Open panel انجام میشود و با Ctrl+S فوراً اعمال میشود: کلمه اول قطع میشود: VAD Grace Period را 30 تا 50 کنید. صدا رباتی یا بریدهبریده است: VAD Threshold را 80% کنید. صحبت اطرافیان هنوز شنیده میشود: VAD Threshold را 95% کنید. صدای نفس شنیده میشود: میکروفون هدست را کنار گوشه لب بگذارید، نه جلوی دهان و بینی. جمعبندی برای مرکز تماسی که با MicroSIP کار میکند، Equalizer APO و RNNoise ارزانترین و مؤثرترین راه است: رایگان، متنباز و یک بار برای همیشه. برای وبفون، اگر به سیستم اپراتورها دسترسی ندارید، RNNoise را داخل کد بگذارید تا همه اپراتورها بدون نصب، صدای تمیز داشته باشند. اگر برای راهاندازی VoIP یا مرکز تماس خود کمک میخواهید، مشاوره بگیرید یا جلسه رزرو کنید. پرسشهای پرتکرار آیا Equalizer APO روی وبفون داخل کروم هم اثر دارد؟ بله. Equalizer APO صدای میکروفون را در خود ویندوز پردازش میکند، پس هر برنامهای که از آن میکروفون استفاده کند، از جمله مرورگر، صدای تمیز را میگیرد. آیا با هدفون بلوتوثی کار میکند؟ عملاً نه. ویندوز هنگام تماس، میکروفون بلوتوث را با پروفایل Hands-Free و نرخ پایین اجرا میکند، در حالی که RNNoise به 48000 هرتز نیاز دارد. از هدست USB یا سیمی استفاده کنید. آیا بعد از هر تغییر باید سیستم را ریاستارت کنیم؟ نه. ریاستارت فقط بعد از نصب یا تیکزدن دستگاه جدید در Device Selector لازم است. تغییرات Configuration Editor با ذخیره فوراً اعمال میشود. کدام روش برای وبفون بهتر است؟ اگر سیستم اپراتورها در اختیار شماست، Equalizer APO سادهترین است. اگر اپراتورها دورکار هستند و نصب روی سیستمشان سخت است، RNNoise داخل کد وبفون بهترین نتیجه را بدون نصب میدهد.