AI noise cancellation for calls in mobile app

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
AI noise cancellation for calls in mobile app
Complex
~1-2 weeks
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    761
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    649
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1071
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    884
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    466

AI Noise Cancellation for Calls in Mobile Apps

When you open a microphone via AVAudioSession on iOS or AudioRecord on Android, you get raw PCM stream—everything around the user. Construction work outside, coffee machine, children—all goes into the call. Standard Acoustic Echo Cancellation (AEC) from WebRTC removes echo but not background noise. ML-based noise suppression model is needed here.

How AI Noise Cancellation Differs from Standard DSP

Classical approach—spectral subtraction or Wiener filter: noise model estimated during speech pauses, then subtracted from spectrum. Works for stationary noise (fan hum), fails on non-stationary (voice in subway, keyboard next to you).

AI approach—neural network trained on "clean speech + noisy speech" pairs predicts a mask for each spectrogram frame. Models like RNNoise, DTLN, or DistilledRNNoise run real-time, processing 10–20 ms frames with latency under one frame.

RNNoise: Quick Start on Both Platforms

RNNoise from Mozilla—C library, 90 KB, ~2 MFLOPS per frame. Compiles to static library for iOS (xcframework) and Android (AAR with native part via NDK).

// Initialize
DenoiseState *st = rnnoise_create(NULL);

// Process frame (480 samples = 10 ms at 48 kHz)
float frame[480];
// ... fill from microphone buffer
float vad_prob = rnnoise_process_frame(st, frame, frame);
// frame now contains denoised signal
// vad_prob > 0.5—likely speech

iOS integration: AVAudioEngine with custom AVAudioSinkNode or tap on input node. Format—Float32, 48 kHz, mono. AVAudioSession should be configured with mode: .voiceChat and explicitly disable system processing, otherwise iOS applies its own noise reduction on top of yours.

let inputNode = audioEngine.inputNode
let format = inputNode.outputFormat(forBus: 0)

inputNode.installTap(onBus: 0, bufferSize: 480, format: format) { [weak self] buffer, _ in
    guard let self = self else { return }
    let channelData = buffer.floatChannelData![0]
    // Pass to rnnoise_process_frame via C-bridge
    self.rnnoiseProcessor.process(channelData, frameLength: Int(buffer.frameLength))
}

On Android—AudioRecord with AudioFormat.ENCODING_PCM_FLOAT, buffer size 480 samples, processing in separate thread with Process.THREAD_PRIORITY_URGENT_AUDIO. Call the same C library via JNI.

DTLN and Heavier Models

If RNNoise insufficient (complex multi-component noise, multiple sources), use DTLN—dual-stage LSTM model. Converts to TFLite (Android) or Core ML (iOS).

In practice: DTLN at 16 kHz takes 8–14 ms per frame on iPhone 12, fits in real-time. Android Snapdragon 778G—similarly. On budget Helio G85—25–35 ms, creating cumulative latency.

For mobile, sample rate choice matters: 16 kHz instead of 48 kHz reduces computational load 4x, and for speech, bandwidth up to 8 kHz is sufficient for intelligibility.

Integration in WebRTC

WebRTC SDKs (LiveKit, Agora, Daily) provide AudioProcessingModule or hook before encoding. In native WebRTC for iOS—custom RTCAudioProcessingModule:

// Register custom processing
let config = RTCConfiguration()
// Create RTCPeerConnectionFactory with custom AudioDeviceModule
// or use AudioProcessingConfig for WebRTC built-in replacement

Important nuance: WebRTC already contains AECM and NS (Noise Suppression). When enabling your own AI noise cancellation, disable built-in NS via AudioProcessingConfig, otherwise double processing creates artifacts—"metallic" sound, clipped consonants.

Process

Audit app's audio pipeline, choose model per requirements (latency vs quality), compile native library for target architectures (arm64, x86_64 for simulator), integrate into existing audio stack, test on real noise.

Timeline Estimates

RNNoise integration into existing WebRTC stack takes 1–2 weeks. Implementation with DTLN/TFLite, VAD tuning, both platform support requires 3–5 weeks.