Микрофон у мобилним уређајима — акустичко-електрични претварач који претвара звучне таласе у електрични сигнал за каснију дигитализацију и обраду. У савременим паметним телефонима користе се MEMS микрофони са капацитивним принципом рада и уграђеним АЦП. Према подацима Yole Group, 2025, годишње се испоручи преко 6 милијарди MEMS микрофона, од којих се 35% уграђује у паметне телефоне — по 3–4 микрофона по уређају.
Главно
Микрофон — електроакустички уређај који претвара осцилације звучног притиска у електрични сигнал. По принципу рада деле се на динамичке (калем у магнетном пољу), кондензаторске (промена капацитивности) и пиезоелектричне. У мобилним уређајима апсолутна већина су кондензаторски MEMS микрофони захваљујући минијатурним димензијама (2.5 × 1.5 mm) и компатибилности са површинском монтажом (SMD).
Микрофон се састоји од мембране која осцилује под дејством звучног притиска и непокретне електроде, које формирају кондензатор. Промена растојања између плоча мења капацитивност, што модулише излазни напон. У MEMS микрофонима мембрана се израђује од полисилицијума методом фотолитографије — то обезбеђује идентичност карактеристика свих микрофона у серији.
Излазни сигнал MEMS микрофона — PDM (Pulse Density Modulation) — једнобитни ток са фреквенцијом одабирања 1–4 MHz. Кодеци паметног телефона декодују PDM у PCM (Pulse Code Modulation) кроз дигитални филтер-дециматор, добијајући стандардни аудио формат 16–24 бита са фреквенцијом 44.1–96 kHz за обраду од стране апликације.
Пре доласка MEMS-а у мобилне уређаје користили су се електретски кондензаторски микрофони (ECM). Код њих је мембрана имала стално електрично наелектрисање (електрет), а осцилације мембране стварале су променљиви напон. ECM микрофони су већи (4–6 mm) и захтевају засебно претпојачало, што повећава површину на плочи.
| Параметар | MEMS микрофон | Електретски (ECM) |
|---|---|---|
| Величина кућишта | 2.5 × 1.5 × 1.0 mm | 4 × 2.5 × 1.5 mm |
| Осетљивост | −26 ± 1 dB (FS) | −38 ± 3 dB (FS) |
| SNR (типични) | 64–69 dBA | 58–64 dBA |
| AOP (макс. SPL) | 125–135 dB | 115–125 dB |
| Потрошња струје | 150–300 µA | 300–500 µA |
| Температурни опсег | −40…+105 °C | −20…+70 °C |
MEMS микрофони доминирају захваљујући мањим димензијама, стабилности карактеристика и могућности лемљења на стандардним SMD линијама. Међутим, ECM се и даље користе у буџетским уређајима због ниже цене компоненте ($0.15–0.30 наспрам $0.25–0.60 за MEMS).
Савремени паметни телефони садрже од 3 до 4 микрофона, чији положај одређује квалитет снимања и поништавања буке. Основни микрофон (доњи) налази се на доњој ивици поред USB-C порта — снима глас корисника током разговора и видео снимања. Предњи (горњи) — на горњој ивици за гласовне команде и други канал при стерео снимању.
Задњи микрофон се обично налази поред камере на задњем панелу и користи се искључиво за поништавање буке. Његов сигнал се не снима у аудио датотеку — само се одузима дигиталним процесором од сигнала основног микрофона. У неким водећим моделима (iPhone 16 Pro, Samsung Galaxy S25) уграђује се четврти микрофон — у зарезу предње камере за побољшање снимања током видео позива.
Стерео снимање видеа реализује се комбинацијом доњег и горњег микрофона. iOS аутоматски бира пар микрофона у зависности од оријентације уређаја — при хоризонталном снимању леви канал се узима са леве ивице, десни — са десне. На Android-у ова логика зависи од имплементације OEM произвођача и може се разликовати између модела.
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 бафера
}
AudioSource.CAMCORDER бира микрофон оптималан за видео снимање — обично је то доњи основни микрофон са аутоматском регулацијом појачања. За гласовно снимање користи се VOICE_RECOGNITION — овај извор искључује све филтере и поништавање буке за чист сигнал намењен препознавању говора.
Активно поништавање буке (Active Noise Cancellation, ANC) у паметним телефонима заснива се на диференцијалној методи: други микрофон (референтни) снима углавном позадинску буку, а основни (примарни) — мешавину гласа и буке. Дигитални процесор сигнала (DSP) одузима референтни сигнал од примарног, остављајући само чист глас.
Квалитет поништавања буке зависи од растојања између микрофона и њихове усмерености. Типично потискивање равномерне буке (авион, вентилатор) — 20–35 dB. За импулсне буке (лупање вратима, ударац посуђа) користи се додатни блок за сузбијање транзијената, који замењује изобличени део апроксимираним сигналом суседних одбирака.
Програмер може утицати на алгоритме поништавања буке само кроз параметре аудио сесије: на Android-у — AudioManager.setParameters("noise_suppression=on/off"), на iOS-у — категорија AVAudioSession .playAndRecord са опцијом .allowBluetoothA2DP. При снимању за препознавање, поништавање буке се обично искључује — STT алгоритми раде прецизније са оригиналним сигналом.
AudioRecord (Android) — нисконвојски API за директно снимање PCM података са микрофона. Апликација прима бафере са сировим аудио подацима који се могу обрађивати у реалном времену: анализа јачине, фреквентна анализа (FFT), VAD (Voice Activity Detection). Минимални бафер се израчунава преко AudioRecord.getMinBufferSize() — коришћење мање величине изазива кашњење или грешку снимања.
AVAudioEngine (iOS) — модуларни граф за аудио обраду, где се улазни чвор (AVAudioInputNode) повезује са главним миксером или директно на tap-обрађивач. Engine омогућава анализу у реалном времену RMS (Root Mean Square) — показатеља јачине сигнала — и фреквентног спектра кроз AVAudioUnitEQ.
Кључне разлике платформи: на iOS-у снимање захтева обавезну активацију AVAudioSession са категоријом .playAndRecord или .record; на Android-у — дозволу RECORD_AUDIO (runtime дозвола) и извор AudioSource. Flutter користи прикључак record за апстракцију ових разлика.
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 громкость: \(rms)")
}
try engine.start()
Код поставља tap на улазни чвор мотора AVAudioEngine. Сваки аудио бафер садржи float податке монофоничног сигнала са микрофона. RMS се израчунава као средња квадратна вредност амплитуде — стандардни показатељ јачине звука у опсегу од 0.0 (тишина) до приближно 0.5–1.0 (гласан глас).
За оцену квалитета микрофона користе се кључни параметри. SNR (Signal-to-Noise Ratio) — однос нивоа сигнала и сопствене буке микрофона, мери се у dBA. Што је SNR већи, то је позадинска бука у снимку тиша. За гласовне позиве довољно је 62–64 dBA, за снимање музике — 68+ dBA.
AOP (Acoustic Overload Point) — максимални ниво звучног притиска (SPL) који микрофон може да претвори без клиповања. За типични MEMS микрофон AOP = 125 dB. На концертима (110–120 dB) снимак ће бити чист, али при 130+ dB (ватромет у близини) појавиће се нелинеарно изобличење (THD > 10%).
Фреквентни опсег одређује које фреквенције микрофон снима без слабљења. За глас је довољно 300–3400 Hz (телефонски стандард, POTS). За музику и видео — 20–20000 Hz. MEMS микрофони у паметним телефонима последње генерације (Knowles SPH9855) обезбеђују опсег 30–18000 Hz са неравномерношћу ±3 dB.
Често постављана питања
Савремени паметни телефони садрже од 3 до 4 микрофона: основни (доња ивица, за позиве и видео снимање), предњи (горња ивица, гласовне команде), задњи (задњи панел, поништавање буке). Водећи модели (iPhone 16 Pro, Galaxy S25) додају четврти микрофон поред предње камере за побољшање снимања током видео позива.
На Android-у — затражити runtime дозволу RECORD_AUDIO и користити AudioRecord или MediaRecorder. На iOS-у — активирати AVAudioSession са категоријом .playAndRecord и користити AVAudioEngine или AVAudioRecorder. Обе платформе захтевају експлицитну сагласност корисника кроз системски дијалог.
SNR (Signal-to-Noise Ratio) — однос корисног сигнала и сопствене буке микрофона. Вредност од 64 dBA значи да ће при снимању гласа ниво буке бити 64 dB нижи од нивоа гласа. Добрим се сматра SNR 62–64 dBA за позиве и 68+ dBA за снимање музике.
Типични разлози: није затражена runtime дозвола RECORD_AUDIO (Android 6+); није наведен AudioSource (нпр. CAMCORDER уместо VOICE_RECOGNITION); уређај нема микрофон (Android TV); други процес је већ заузео микрофон. Проверите статус иницијализације кроз AudioRecord.getState().
На Android-у — добити PCM бафер кроз AudioRecord.read(), израчунати RMS као sqrt(sum(samples²) / count). На iOS-у — поставити tap на AVAudioInputNode кроз installTap(forBus:) и слично израчунати RMS из floatChannelData. RMS је нормализован: 0.0 (тишина) до приближно 1.0 (максимум ADC).
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође