Микрофонът в мобилните устройства — акустико-електрически преобразувател, който превръща звуковите вълни в електрически сигнал за последващо цифрово преобразуване и обработка. В съвременните смартфони се използват 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 (разрешение по време на изпълнение) и източник 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 — поискайте разрешение по време на изпълнение RECORD_AUDIO и използвайте AudioRecord или MediaRecorder. На iOS — активирайте AVAudioSession с категория .playAndRecord и използвайте AVAudioEngine или AVAudioRecorder. И двете платформи изискват изрично съгласие на потребителя чрез системен диалог.
SNR (Signal-to-Noise Ratio) — отношение на полезния сигнал към собствения шум на микрофона. Стойност от 64 dBA означава, че при запис на глас нивото на шум ще бъде с 64 dB по-ниско от нивото на гласа. SNR 62–64 dBA се счита за добро за разговори, а 68+ dBA за запис на музика.
Типични причини: не е поискано разрешение по време на изпълнение 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 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също