Микрофон в мобильных устройствах — акустико-электрический преобразователь, который превращает звуковые волны в электрический сигнал для последующей оцифровки и обработки. В современных смартфонах используются MEMS-микрофоны с ёмкостным принципом работы и встроенным АЦП. По данным Yole Group, 2025, ежегодно отгружается более 6 миллиардов MEMS-микрофонов, из которых 35% устанавливается в смартфоны — по 3–4 микрофона на устройство.
Главное
Микрофон — электроакустическое устройство, преобразующее колебания звукового давления в электрический сигнал. По принципу действия делятся на динамические (катушка в магнитном поле), конденсаторные (изменение ёмкости) и пьезоэлектрические. В мобильных устройствах абсолютное большинство — конденсаторные MEMS-микрофоны благодаря миниатюрным размерам (2.5 × 1.5 мм) и совместимости с поверхностным монтажом (SMD).
Микрофон состоит из мембраны, колеблющейся под действием звукового давления, и неподвижного электрода, образующих конденсатор. Изменение расстояния между обкладками меняет ёмкость, что модулирует напряжение на выходе. В MEMS-микрофонах мембрана изготавливается из поликремния методом фотолитографии — это обеспечивает идентичность характеристик всех микрофонов в партии.
Выходной сигнал MEMS-микрофона — PDM (Pulse Density Modulation) — однобитный поток с частотой дискретизации 1–4 МГц. Кодеки смартфона декодируют PDM в PCM (Pulse Code Modulation) через цифровой фильтр-дециматор, получая стандартный аудиоформат 16–24 бит с частотой 44.1–96 кГц для обработки приложением.
До прихода MEMS в мобильных устройствах использовались электретные конденсаторные микрофоны (ECM). В них мембрана имела постоянный электрический заряд (электрет), а колебания мембраны создавали переменное напряжение. ECM-микрофоны крупнее (4–6 мм) и требуют отдельного предусилителя, что увеличивает площадь на плате.
| Параметр | MEMS-микрофон | Электретный (ECM) |
|---|---|---|
| Размер корпуса | 2.5 × 1.5 × 1.0 мм | 4 × 2.5 × 1.5 мм |
| Чувствительность | −26 ± 1 дБ (FS) | −38 ± 3 дБ (FS) |
| SNR (типовой) | 64–69 дБА | 58–64 дБА |
| AOP (макс. SPL) | 125–135 дБ | 115–125 дБ |
| Ток потребления | 150–300 мкА | 300–500 мкА |
| Температурный диапазон | −40…+105 °C | −20…+70 °C |
MEMS-микрофоны доминируют благодаря меньшим габаритам, стабильности характеристик и паяемости на стандартных SMD-линиях. Однако ECM продолжают использоваться в бюджетных устройствах из-за более низкой стоимости компонента ($0.15–0.30 против $0.25–0.60 для MEMS).
Современные смартфоны содержат от 3 до 4 микрофонов, расположение которых определяет качество записи и шумоподавления. Основной микрофон (bottom) расположен на нижнем торце рядом с портом USB-C — он записывает голос пользователя при разговоре и видеосъёмке. Фронтальный (top) — на верхнем торце для голосовых команд и второго канала при стереозаписи.
Тыловой (back) микрофон обычно размещается рядом с камерой на задней панели и используется исключительно для шумоподавления. Его сигнал не записывается в аудиофайл — только вычитается цифровым процессором из сигнала основного микрофона. В некоторых флагманах (iPhone 16 Pro, Samsung Galaxy S25) устанавливается четвёртый микрофон — front camera notch для улучшения записи при видеозвонках.
Стереозапись видео реализуется через комбинацию нижнего и верхнего микрофонов. 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) в смартфонах основано на дифференциальном методе: второй микрофон (reference) записывает преимущественно фоновый шум, а основной (primary) — смесь голоса и шума. Цифровой сигнальный процессор (DSP) вычитает сигнал reference из primary, оставляя только чистый голос.
Качество шумоподавления зависит от расстояния между микрофонами и их направленности. Типовое подавление равномерного шума (самолёт, вентилятор) — 20–35 дБ. Для импульсных шумов (хлопок дверью, удар посуды) используется дополнительный блок transient suppression, который заменяет искажённый участок на аппроксимированный сигнал соседних сэмплов.
Разработчик может влиять на алгоритмы шумоподавления только через параметры аудиосессии: на 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 permission) и микрофонный 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) — отношение уровня сигнала к собственному шуму микрофона, измеряется в дБА. Чем выше SNR, тем тише фоновый шум в записи. Для голосовых вызовов достаточно 62–64 дБА, для музыкальной записи — 68+ дБА.
AOP (Acoustic Overload Point) — максимальный уровень звукового давления (SPL), который микрофон может преобразовать без клиппирования. Для типового MEMS-микрофона AOP = 125 дБ. На концертах (110–120 дБ) запись будет чистой, но при 130+ дБ (фейерверк рядом) появится нелинейное искажение (THD > 10%).
Частотный диапазон определяет, какие частоты микрофон записывает без затухания. Для голоса достаточно 300–3400 Гц (телефонный стандарт, POTS). Для музыки и видео — 20–20000 Гц. MEMS-микрофоны в смартфонах последнего поколения (Knowles SPH9855) обеспечивают диапазон 30–18000 Гц с неравномерностью ±3 дБ.
Часто задаваемые вопросы
Современные смартфоны содержат от 3 до 4 микрофонов: основной (нижний торец, для звонков и видеозаписи), фронтальный (верхний торец, голосовые команды), тыловой (задняя панель, шумоподавление). Флагманы (iPhone 16 Pro, Galaxy S25) добавляют четвёртый микрофон возле фронтальной камеры для улучшения записи при видеозвонках.
На Android — запросить runtime-разрешение RECORD_AUDIO и использовать AudioRecord или MediaRecorder. На iOS — активировать AVAudioSession с категорией .playAndRecord и использовать AVAudioEngine или AVAudioRecorder. Обе платформы требуют явного согласия пользователя через системный диалог.
SNR (Signal-to-Noise Ratio) — отношение полезного сигнала к собственному шуму микрофона. Значение 64 дБА означает, что при записи голоса уровень шума будет на 64 дБ ниже уровня голоса. Хорошим считается SNR 62–64 дБА для звонков и 68+ дБА для музыкальной записи.
Типичные причины: не запрошено 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 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также