De microfoon in mobiele apparaten — een akoestisch-elektrische omzetter die geluidsgolven omzet in een elektrisch signaal voor latere digitalisering en verwerking. In moderne smartphones worden MEMS-microfoons gebruikt met een capacitief werkingsprincipe en ingebouwde ADC. Volgens gegevens van Yole Group, 2025 worden jaarlijks meer dan 6 miljard MEMS-microfoons verzonden, waarvan 35% in smartphones wordt geïnstalleerd — 3–4 microfoons per apparaat.
Belangrijkste punten
Microfoon — een elektro-akoestisch apparaat dat oscillaties van geluidsdruk omzet in een elektrisch signaal. Naar werkingsprincipe worden ze onderverdeeld in dynamisch (spoel in magnetisch veld), capacitief (capaciteitsverandering) en piëzo-elektrisch. In mobiele apparaten vormen capacitieve MEMS-microfoons de absolute meerderheid dankzij hun miniatuurformaat (2.5 × 1.5 mm) en compatibiliteit met oppervlaktemontage (SMD).
Een microfoon bestaat uit een membraan dat trilt onder invloed van geluidsdruk en een vaste elektrode, die samen een condensator vormen. Verandering van de afstand tussen de platen wijzigt de capaciteit, wat de uitgangsspanning moduleert. In MEMS-microfoons wordt het membraan vervaardigd uit polysilicium met behulp van fotolithografie — dit garandeert identieke kenmerken van alle microfoons in een partij.
Het uitgangssignaal van een MEMS-microfoon — PDM (Pulse Density Modulation) — is een éénbitsstroom met een samplefrequentie van 1–4 MHz. De codecs van de smartphone decoderen PDM naar PCM (Pulse Code Modulation) via een digitaal decimatie-filter, waardoor een standaard audioformaat van 16–24 bit met een frequentie van 44.1–96 kHz ontstaat voor verwerking door de app.
Vóór de komst van MEMS in mobiele apparaten werden elektret-condensatormicrofoons (ECM) gebruikt. Hierin had het membraan een permanente elektrische lading (elektret) en creëerden de trillingen van het membraan een variërende spanning. ECM-microfoons zijn groter (4–6 mm) en vereisen een aparte voorversterker, wat het oppervlak op de printplaat vergroot.
| Parameter | MEMS-microfoon | Elektret (ECM) |
|---|---|---|
| Behuizingsgrootte | 2.5 × 1.5 × 1.0 mm | 4 × 2.5 × 1.5 mm |
| Gevoeligheid | −26 ± 1 dB (FS) | −38 ± 3 dB (FS) |
| SNR (typisch) | 64–69 dBA | 58–64 dBA |
| AOP (max. SPL) | 125–135 dB | 115–125 dB |
| Stroomverbruik | 150–300 µA | 300–500 µA |
| Temperatuurbereik | −40…+105 °C | −20…+70 °C |
MEMS-microfoons domineren vanwege hun kleinere afmetingen, stabiele kenmerken en soldeerbaarheid op standaard SMD-lijnen. ECM worden echter nog steeds gebruikt in budgetapparaten vanwege de lagere componentkosten ($0.15–0.30 versus $0.25–0.60 voor MEMS).
Moderne smartphones bevatten 3 tot 4 microfoons, waarvan de plaatsing de opnamekwaliteit en ruisonderdrukking bepaalt. De primaire microfoon (onder) bevindt zich op de onderrand naast de USB-C-poort — hij neemt de stem van de gebruiker op tijdens gesprekken en video-opnames. De frontale (boven) — op de bovenrand voor spraakopdrachten en het tweede kanaal bij stereo-opname.
De achterste microfoon bevindt zich meestal naast de camera op het achterpaneel en wordt uitsluitend gebruikt voor ruisonderdrukking. Zijn signaal wordt niet opgenomen in het audiobestand — het wordt alleen door de digitale processor afgetrokken van het signaal van de primaire microfoon. In sommige vlaggenschepen (iPhone 16 Pro, Samsung Galaxy S25) wordt een vierde microfoon geïnstalleerd in de inkeping van de frontcamera om de opname bij videogesprekken te verbeteren.
Stereo-video-opname wordt gerealiseerd door een combinatie van de onderste en bovenste microfoons. iOS selecteert automatisch het microfoonpaar op basis van de oriëntatie van het apparaat — bij liggende opname wordt het linkerkanaal van de linkerrand genomen, het rechter van de rechterrand. Op Android hangt deze logica af van de implementatie van de OEM-fabrikant en kan verschillen tussen modellen.
val recorder = AudioRecord(
MediaRecorder.AudioSource.CAMCORDER,
44100,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
bufferSize
)
recorder.startRecording()
val buffer = ShortArray(bufferSize)
while (recorder.recordingState == AudioRecord.RECORDSTATE_RECORDING) {
recorder.read(buffer, 0, buffer.size)
// PCM-bufferverwerking
}
AudioSource.CAMCORDER selecteert de optimale microfoon voor video-opname — meestal is dit de onderste primaire microfoon met automatische versterkingsregeling. Voor spraakopname wordt VOICE_RECOGNITION gebruikt — deze bron schakelt alle filters en ruisonderdrukking uit voor een schoon signaal voor spraakherkenning.
Actieve ruisonderdrukking (Active Noise Cancellation, ANC) in smartphones is gebaseerd op de differentiële methode: de tweede microfoon (referentie) neemt voornamelijk achtergrondruis op, en de primaire microfoon — een mix van spraak en ruis. De digitale signaalprocessor (DSP) trekt het referentiesignaal af van het primaire signaal, waardoor alleen zuivere spraak overblijft.
De kwaliteit van ruisonderdrukking hangt af van de afstand tussen de microfoons en hun richtingsgevoeligheid. Typische onderdrukking van uniforme ruis (vliegtuig, ventilator) — 20–35 dB. Voor impulsruis (deurklap, breekgeluid) wordt een extra transient suppression-blok gebruikt dat het vervormde segment vervangt door een benaderd signaal van aangrenzende samples.
De ontwikkelaar kan de ruisonderdrukkingsalgoritmen alleen beïnvloeden via de parameters van de audiosessie: op Android — AudioManager.setParameters("noise_suppression=on/off"), op iOS — AVAudioSession-categorie .playAndRecord met optie .allowBluetoothA2DP. Bij opname voor spraakherkenning wordt ruisonderdrukking meestal uitgeschakeld — STT-algoritmen werken nauwkeuriger met het originele signaal.
AudioRecord (Android) — een low-level API voor directe opname van PCM-gegevens van de microfoon. De app ontvangt buffers met ruwe audiogegevens die in realtime kunnen worden verwerkt: volumeanalyse, frequentieanalyse (FFT), VAD (Voice Activity Detection). De minimale buffer wordt berekend via AudioRecord.getMinBufferSize() — gebruik van een kleinere maat veroorzaakt vertraging of opnamefouten.
AVAudioEngine (iOS) — een modulaire graaf voor audioverwerking, waarbij het invoerknooppunt (AVAudioInputNode) wordt verbonden met de hoofdmixer of rechtstreeks met de tap-handler. De engine maakt realtime analyse mogelijk van RMS (Root Mean Square) — de volumemaat van het signaal — en het frequentiespectrum via AVAudioUnitEQ.
Belangrijkste platformverschillen: op iOS vereist opname verplichte activering van AVAudioSession met categorie .playAndRecord of .record; op Android — toestemming RECORD_AUDIO (runtime-permissie) en een AudioSource-bron. Flutter gebruikt de record-plugin om deze verschillen te abstraheren.
import AVFoundation
let engine = AVAudioEngine()
let inputNode = engine.inputNode
let format = inputNode.outputFormat(forBus: 0)
inputNode.installTap(onBus: 0, bufferSize: 1024,
format: format) { buffer, time in
guard let channelData = buffer.floatChannelData else { return }
let frameLength = Int(buffer.frameLength)
var sumSquares: Float = 0
for i in 0..<frameLength {
sumSquares += channelData[0][i] * channelData[0][i]
}
let rms = sqrt(sumSquares / Float(frameLength))
print("RMS-volume: \(rms)")
}
try engine.start()
De code plaatst een tap op het invoerknooppunt van de AVAudioEngine-motor. Elke audiobuffer bevat float-gegevens van het monofone signaal van de microfoon. RMS wordt berekend als de wortel van het gemiddelde van de kwadraten van de amplitude — de standaard geluidsvolumemaat in het bereik van 0.0 (stilte) tot ongeveer 0.5–1.0 (luide spraak).
Voor het beoordelen van de microfoonkwaliteit worden kernparameters gebruikt. SNR (Signal-to-Noise Ratio) — de verhouding van het signaalniveau tot de eigen ruis van de microfoon, gemeten in dBA. Hoe hoger de SNR, hoe stiller de achtergrondruis in de opname. Voor spraakoproepen is 62–64 dBA voldoende, voor muziekopname — 68+ dBA.
AOP (Acoustic Overload Point) — het maximale geluidsdrukniveau (SPL) dat de microfoon kan omzetten zonder clippen. Voor een typische MEMS-microfoon is AOP = 125 dB. Bij concerten (110–120 dB) is de opname schoon, maar bij 130+ dB (vuurwerk in de buurt) treedt niet-lineaire vervorming op (THD > 10%).
Het frequentiebereik bepaalt welke frequenties de microfoon zonder demping opneemt. Voor spraak is 300–3400 Hz (telefoonstandaard, POTS) voldoende. Voor muziek en video — 20–20000 Hz. MEMS-microfoons in smartphones van de laatste generatie (Knowles SPH9855) bieden een bereik van 30–18000 Hz met een ongelijkmatigheid van ±3 dB.
Veelgestelde vragen
Moderne smartphones bevatten 3 tot 4 microfoons: primair (onderrand, voor gesprekken en video-opname), frontaal (bovenrand, spraakopdrachten), achter (achterpaneel, ruisonderdrukking). Vlaggenschepen (iPhone 16 Pro, Galaxy S25) voegen een vierde microfoon toe bij de frontcamera om de opname bij videogesprekken te verbeteren.
Op Android — vraag runtime-toestemming RECORD_AUDIO en gebruik AudioRecord of MediaRecorder. Op iOS — activeer AVAudioSession met categorie .playAndRecord en gebruik AVAudioEngine of AVAudioRecorder. Beide platforms vereisen expliciete toestemming van de gebruiker via een systeemdialoog.
SNR (Signal-to-Noise Ratio) — de verhouding van het nuttige signaal tot de eigen ruis van de microfoon. Een waarde van 64 dBA betekent dat bij spraakopname het ruisniveau 64 dB lager is dan het spraakniveau. Een SNR van 62–64 dBA wordt als goed beschouwd voor gesprekken en 68+ dBA voor muziekopname.
Typische oorzaken: runtime-toestemming RECORD_AUDIO niet aangevraagd (Android 6+); geen AudioSource opgegeven (bijv. CAMCORDER in plaats van VOICE_RECOGNITION); apparaat heeft geen microfoon (Android TV); een ander proces heeft de microfoon al vastgelegd. Controleer de initialisatiestatus via AudioRecord.getState().
Op Android — verkrijg de PCM-buffer via AudioRecord.read(), bereken RMS als sqrt(sum(samples²) / count). Op iOS — plaats een tap op AVAudioInputNode via installTap(forBus:) en bereken op dezelfde manier RMS uit floatChannelData. RMS is genormaliseerd: 0.0 (stilte) tot ongeveer 1.0 (maximum ADC).
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook