Um microfone em dispositivos móveis é um transdutor acústico-elétrico que converte ondas sonoras em um sinal elétrico para posterior digitalização e processamento. Os smartphones modernos usam microfones MEMS com princípio de funcionamento capacitivo e ADC integrado. De acordo com Yole Group, 2025, mais de 6 bilhões de microfones MEMS são enviados anualmente, dos quais 35% são instalados em smartphones — 3–4 microfones por dispositivo.
Principais conclusões
Microfone é um dispositivo eletroacústico que converte oscilações de pressão sonora em um sinal elétrico. Pelo princípio de funcionamento, dividem-se em dinâmicos (bobina em campo magnético), condensador (mudança de capacitância) e piezoelétricos. Em dispositivos móveis, a grande maioria são microfones MEMS de condensador devido ao seu tamanho miniatura (2.5 × 1.5 mm) e compatibilidade com montagem superficial (SMD).
Um microfone consiste em um diafragma que vibra sob pressão sonora e um eletrodo fixo, formando um capacitor. A mudança na distância entre as placas altera a capacitância, o que modula a tensão de saída. Em microfones MEMS, o diafragma é feito de polissilício por fotolitografia — isso garante características idênticas de todos os microfones em um lote.
O sinal de saída de um microfone MEMS é PDM (Pulse Density Modulation) — um fluxo de um bit com taxa de amostragem de 1–4 MHz. Os codecs do smartphone decodificam PDM em PCM (Pulse Code Modulation) através de um filtro digital de decimação, obtendo um formato de áudio padrão de 16–24 bits a 44.1–96 kHz para processamento pela aplicação.
Antes do advento do MEMS, os dispositivos móveis usavam microfones condensadores electret (ECM). Neles, o diafragma tinha uma carga elétrica permanente (electret), e as vibrações do diafragma criavam uma tensão alternada. Os microfones ECM são maiores (4–6 mm) e requerem um pré-amplificador separado, aumentando a área na placa.
| Parâmetro | Microfone MEMS | Electret (ECM) |
|---|---|---|
| Tamanho do pacote | 2.5 × 1.5 × 1.0 mm | 4 × 2.5 × 1.5 mm |
| Sensibilidade | −26 ± 1 dB (FS) | −38 ± 3 dB (FS) |
| SNR (típico) | 64–69 dBA | 58–64 dBA |
| AOP (SPL máx.) | 125–135 dB | 115–125 dB |
| Consumo de corrente | 150–300 µA | 300–500 µA |
| Faixa de temperatura | −40…+105 °C | −20…+70 °C |
Os microfones MEMS dominam devido ao menor tamanho, características estáveis e soldabilidade em linhas SMD padrão. No entanto, os ECM continuam sendo usados em dispositivos econômicos devido ao menor custo do componente ($0.15–0.30 contra $0.25–0.60 para MEMS).
Smartphones modernos contêm de 3 a 4 microfones, cuja localização determina a qualidade da gravação e o cancelamento de ruído. O microfone principal (inferior) está localizado na borda inferior ao lado da porta USB-C — ele grava a voz do usuário durante chamadas e gravação de vídeo. O microfone frontal (superior) está na borda superior para comandos de voz e um segundo canal em gravação estéreo.
O microfone traseiro (posterior) é geralmente colocado perto da câmera no painel traseiro e usado exclusivamente para cancelamento de ruído. Seu sinal não é gravado no arquivo de áudio — ele é apenas subtraído pelo processador digital do sinal do microfone principal. Em alguns flagships (iPhone 16 Pro, Samsung Galaxy S25), um quarto microfone é instalado — no entalhe da câmera frontal para melhorar a gravação durante videochamadas.
A gravação de vídeo estéreo é implementada através de uma combinação dos microfones inferior e superior. O iOS seleciona automaticamente o par de microfones dependendo da orientação do dispositivo — no modo paisagem, o canal esquerdo vem da borda esquerda, o direito da borda direita. No Android, essa lógica depende da implementação do fabricante OEM e pode diferir entre modelos.
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)
// Processamento de buffer PCM
}
AudioSource.CAMCORDER seleciona o microfone ideal para gravação de vídeo — geralmente o microfone principal inferior com controle automático de ganho. Para gravação de voz, usa-se VOICE_RECOGNITION — esta fonte desativa todos os filtros e cancelamento de ruído para um sinal limpo para reconhecimento de fala.
Cancelamento ativo de ruído (ANC) em smartphones é baseado no método diferencial: um segundo microfone (de referência) grava principalmente o ruído de fundo, enquanto o microfone principal captura uma mistura de voz e ruído. Um processador digital de sinais (DSP) subtrai o sinal de referência do principal, deixando apenas a voz limpa.
A qualidade do cancelamento de ruído depende da distância entre os microfones e sua diretividade. A supressão típica de ruído uniforme (avião, ventilador) é de 20–35 dB. Para ruídos impulsivos (batida de porta, choque de louça), é usado um bloco adicional de supressão de transientes que substitui o segmento distorcido por um sinal aproximado de amostras vizinhas.
Os desenvolvedores podem influenciar os algoritmos de cancelamento de ruído apenas através dos parâmetros da sessão de áudio: no Android — AudioManager.setParameters("noise_suppression=on/off"), no iOS — categoria AVAudioSession .playAndRecord com opção .allowBluetoothA2DP. Ao gravar para reconhecimento, o cancelamento de ruído geralmente é desativado — os algoritmos STT funcionam com mais precisão com o sinal original.
AudioRecord (Android) é uma API de baixo nível para gravação direta de dados PCM do microfone. A aplicação recebe buffers com dados de áudio brutos que podem ser processados em tempo real: análise de volume, análise de frequência (FFT), VAD (Voice Activity Detection). O buffer mínimo é calculado através de AudioRecord.getMinBufferSize() — usar um tamanho menor causa atraso ou falha na gravação.
AVAudioEngine (iOS) é um grafo modular de processamento de áudio onde o nó de entrada (AVAudioInputNode) se conecta ao mixer principal ou diretamente a um manipulador tap. O motor permite análise em tempo real de RMS (Root Mean Square) — um indicador de volume de sinal — e espectro de frequência através de AVAudioUnitEQ.
Principais diferenças entre plataformas: no iOS, a gravação requer ativação obrigatória do AVAudioSession com categoria .playAndRecord ou .record; no Android, é necessária a permissão RECORD_AUDIO (permissão em tempo de execução) e um AudioSource de microfone. Flutter usa o plugin record para abstrair essas diferenças.
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("Volume RMS: \(rms)")
}
try engine.start()
O código define um tap no nó de entrada do AVAudioEngine. Cada buffer de áudio contém dados float do sinal monofônico do microfone. O RMS é calculado como a raiz quadrada média da amplitude — um indicador padrão do volume de som na faixa de 0.0 (silêncio) a ~0.5–1.0 (voz alta).
Parâmetros-chave são usados para avaliar a qualidade do microfone. SNR (Signal-to-Noise Ratio) é a relação entre o nível do sinal e o ruído próprio do microfone, medida em dBA. Quanto maior o SNR, mais silencioso é o ruído de fundo na gravação. Para chamadas de voz, 62–64 dBA é suficiente; para gravação de música, 68+ dBA é necessário.
AOP (Acoustic Overload Point) é o nível máximo de pressão sonora (SPL) que um microfone pode converter sem clipping. Para um microfone MEMS típico, AOP = 125 dB. Em concertos (110–120 dB), a gravação será limpa, mas a 130+ dB (fogos de artifício próximos), aparecerá distorção não linear (THD > 10%).
A faixa de frequência determina quais frequências o microfone grava sem atenuação. Para voz, 300–3400 Hz (padrão telefônico, POTS) é suficiente. Para música e vídeo — 20–20000 Hz. Microfones MEMS em smartphones de última geração (Knowles SPH9855) fornecem uma faixa de 30–18000 Hz com planicidade de ±3 dB.
Perguntas frequentes
Smartphones modernos contêm de 3 a 4 microfones: principal (borda inferior, para chamadas e gravação de vídeo), frontal (borda superior, comandos de voz), traseiro (painel traseiro, cancelamento de ruído). Os flagships (iPhone 16 Pro, Galaxy S25) adicionam um quarto microfone perto da câmera frontal para melhorar a gravação durante videochamadas.
No Android — solicitar a permissão de tempo de execução RECORD_AUDIO e usar AudioRecord ou MediaRecorder. No iOS — ativar AVAudioSession com categoria .playAndRecord e usar AVAudioEngine ou AVAudioRecorder. Ambas as plataformas exigem consentimento explícito do usuário através de um diálogo do sistema.
SNR (Signal-to-Noise Ratio) é a relação entre o sinal útil e o ruído próprio do microfone. Um valor de 64 dBA significa que ao gravar voz, o nível de ruído estará 64 dB abaixo do nível de voz. SNR de 62–64 dBA é considerado bom para chamadas e 68+ dBA para gravação de música.
Razões típicas: a permissão de tempo de execução RECORD_AUDIO não foi solicitada (Android 6+); o AudioSource não foi especificado (por exemplo, CAMCORDER em vez de VOICE_RECOGNITION); o dispositivo não tem microfone (Android TV); outro processo já capturou o microfone. Verifique o status de inicialização através de AudioRecord.getState().
No Android — obter um buffer PCM via AudioRecord.read(), calcular RMS como sqrt(sum(amostras²) / count). No iOS — definir um tap no AVAudioInputNode via installTap(forBus:) e calcular RMS similarmente a partir de floatChannelData. O RMS é normalizado: 0.0 (silêncio) a aproximadamente 1.0 (máximo ADC).
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também