Microphone — 모바일 기기에서의 정의, 유형 및 작동 방식

저자: IT Sectr 게시일: 2026-03-24 읽는 시간: 10 분

모바일 기기의 마이크는 음파를 전기 신호로 변환하여 디지털화 및 처리를 수행하는 음향-전기 변환기입니다. 최신 스마트폰은 정전식 작동 원리와 내장 ADC를 갖춘 MEMS 마이크를 사용합니다. Yole Group, 2025에 따르면, 연간 60억 개 이상의 MEMS 마이크가 출하되며, 그중 35%가 스마트폰에 설치됩니다 — 기기당 3~4개의 마이크입니다.

주요 내용

  • MEMS 마이크 — 스마트폰의 주요 마이크 유형: 실리콘 멤브레인이 음압에 따라 정전용량을 변화시키고, 신호가 내장 ADC(PDM 출력)로 디지털화됨
  • 일반 구성 — 최신 스마트폰에는 3~4개의 마이크가 있음: 기본(하단), 전면(상단), 후면(노이즈 캔슬레이션용)
  • 노이즈 캔슬레이션(ANC) — 기본 마이크가 음성을 녹음하고 보조 마이크가 배경 소음을 캡처한 후 디지털 프로세서가 신호를 차감하는 차동 방식
  • AudioRecord(Android) 및 AVAudioEngine(iOS) — 모바일 앱에서 마이크로 오디오 스트림을 캡처하는 주요 API
  • 샘플링 레이트 44.1kHz 및 16비트 — 모바일 앱에서 음성 및 음악 녹음을 위한 최소 품질 표준

마이크란 무엇인가?

마이크는 음압 진동을 전기 신호로 변환하는 전기음향 장치입니다. 작동 원리에 따라 다이내믹(자기장 내 코일), 콘덴서(정전용량 변화), 압전 방식으로 나뉩니다. 모바일 기기에서는 소형 크기(2.5×1.5mm)와 표면 실장 기술(SMD) 호환성으로 인해 압도적으로 콘덴서 MEMS 마이크가 사용됩니다.

마이크는 음압에 따라 진동하는 다이어프램과 고정 전극으로 구성되어 커패시터를 형성합니다. 플레이트 사이의 거리 변화가 정전용량을 변경하여 출력 전압을 변조합니다. MEMS 마이크에서 다이어프램은 포토리소그래피를 통해 폴리실리콘으로 제조됩니다 — 이를 통해 배치 내 모든 마이크의 특성이 동일하게 보장됩니다.

MEMS 마이크의 출력 신호는 PDM(펄스 밀도 변조) — 샘플링 레이트 1~4MHz의 1비트 스트림입니다. 스마트폰 코덱은 디지털 데시메이션 필터를 통해 PDM을 PCM(펄스 코드 변조)으로 디코딩하여 애플리케이션 처리용으로 44.1~96kHz, 16~24비트의 표준 오디오 형식을 얻습니다.

MEMS vs 일렉트릿 마이크

MEMS 등장 이전에는 모바일 기기에서 일렉트릿 콘덴서 마이크(ECM)가 사용되었습니다. 여기서 다이어프램은 영구 전하(일렉트릿)를 가지고 있었고, 다이어프램 진동이 교류 전압을 생성했습니다. ECM 마이크는 더 크고(4~6mm), 별도의 프리앰프가 필요하여 PCB 면적이 증가합니다.

파라미터MEMS 마이크일렉트릿(ECM)
패키지 크기2.5×1.5×1.0mm4×2.5×1.5mm
감도−26±1dB (FS)−38±3dB (FS)
SNR(일반)64~69dBA58~64dBA
AOP(최대 SPL)125~135dB115~125dB
전류 소비150~300µA300~500µA
온도 범위−40~+105°C−20~+70°C

MEMS 마이크는 작은 크기, 안정적인 특성, 표준 SMD 라인 납땜 가능성으로 인해 지배적입니다. 그러나 ECM은 부품 비용이 저렴($0.15~0.30 대 MEMS의 $0.25~0.60)하여 저가형 기기에서 계속 사용됩니다.

다중 마이크 구성: 기본, 전면, 후면

최신 스마트폰에는 3~4개의 마이크가 있으며, 그 위치가 녹음 품질과 노이즈 캔슬레이션을 결정합니다. 기본 마이크(하단)는 USB-C 포트 옆 하단 가장자리에 위치하며 통화 및 비디오 녹화 시 사용자의 음성을 녹음합니다. 전면(상단) 마이크는 음성 명령 및 스테레오 녹음의 두 번째 채널을 위해 상단 가장자리에 있습니다.

후면(뒤) 마이크는 일반적으로 후면 패널의 카메라 근처에 배치되며 노이즈 캔슬레이션 전용으로 사용됩니다. 그 신호는 오디오 파일에 녹음되지 않고 디지털 프로세서에 의해 기본 마이크 신호에서 차감만 됩니다. 일부 플래그십 모델(iPhone 16 Pro, Samsung Galaxy S25)에서는 화상 통화 시 녹음 품질을 개선하기 위해 전면 카메라 노치에 네 번째 마이크가 설치됩니다.

스테레오 비디오 녹화는 하단과 상단 마이크의 조합으로 구현됩니다. iOS는 기기 방향에 따라 자동으로 마이크 쌍을 선택합니다 — 가로 모드에서는 왼쪽 채널이 왼쪽 가장자리에서, 오른쪽 채널이 오른쪽 가장자리에서 가져옵니다. Android에서는 이 로직이 OEM 제조업체의 구현에 따라 달라지며 모델 간에 다를 수 있습니다.

Kotlin(Android)에서 오디오 소스 선택 예제

kotlin
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이 사용됩니다 — 이 소스는 음성 인식을 위한 깨끗한 신호를 위해 모든 필터와 노이즈 캔슬레이션을 비활성화합니다.

스마트폰에서 노이즈 캔슬레이션의 작동 방식

스마트폰의 액티브 노이즈 캔슬레이션(ANC)은 차동 방식을 기반으로 합니다: 두 번째(참조) 마이크가 주로 배경 소음을 녹음하고, 기본 마이크가 음성과 소음의 혼합을 캡처합니다. 디지털 신호 프로세서(DSP)가 참조 신호를 기본 신호에서 차감하여 깨끗한 음성만 남깁니다.

노이즈 캔슬레이션 품질은 마이크 간 거리와 지향성에 따라 달라집니다. 균일한 소음(비행기, 팬)의 일반적인 억제는 20~35dB입니다. 충격성 소음(문 닫힘, 그릇 부딪힘)에는 추가 과도 억제 블록이 사용되어 왜곡된 세그먼트를 인접 샘플에서 근사화된 신호로 대체합니다.

개발자는 오디오 세션 매개변수를 통해서만 노이즈 캔슬레이션 알고리즘에 영향을 줄 수 있습니다: Android에서는 AudioManager.setParameters("noise_suppression=on/off"), iOS에서는 .allowBluetoothA2DP 옵션이 있는 .playAndRecord 카테고리의 AVAudioSession입니다. 인식용 녹음 시에는 일반적으로 노이즈 캔슬레이션이 비활성화됩니다 — STT 알고리즘은 원본 신호로 더 정확하게 작동합니다.

오디오 캡처: Android AudioRecord 및 iOS AVAudioEngine

AudioRecord(Android)는 마이크에서 PCM 데이터를 직접 녹음하기 위한 저수준 API입니다. 애플리케이션은 실시간으로 처리할 수 있는 원시 오디오 데이터가 포함된 버퍼를 받습니다: 볼륨 분석, 주파수 분석(FFT), VAD(음성 활동 감지). 최소 버퍼 크기는 AudioRecord.getMinBufferSize()로 계산되며, 더 작은 크기를 사용하면 녹음 지연이나 실패가 발생합니다.

AVAudioEngine(iOS)은 입력 노드(AVAudioInputNode)가 메인 믹서 또는 탭 핸들러에 직접 연결되는 모듈식 오디오 처리 그래프입니다. 엔진은 RMS(제곱 평균 제곱근) — 신호 볼륨 표시기 — 및 AVAudioUnitEQ를 통한 주파수 스펙트럼의 실시간 분석을 가능하게 합니다.

주요 플랫폼 차이점: iOS에서는 .playAndRecord 또는 .record 카테고리로 AVAudioSession을 필수 활성화해야 합니다. Android에서는 RECORD_AUDIO 권한(런타임 권한)과 마이크 AudioSource가 필요합니다. Flutter는 record 플러그인을 사용하여 이러한 차이점을 추상화합니다.

Swift(iOS)에서 오디오 캡처 예제

swift
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()

코드는 AVAudioEngine의 입력 노드에 탭을 설정합니다. 각 오디오 버퍼에는 마이크의 모노포닉 신호 float 데이터가 포함됩니다. RMS는 진폭의 제곱 평균 제곱근으로 계산되며, 0.0(무음)에서 ~0.5~1.0(큰 소리) 범위의 음량 표준 지표입니다.

마이크 특성: SNR, AOP, 주파수 범위

마이크 품질 평가에는 주요 매개변수가 사용됩니다. SNR(신호 대 잡음비)은 신호 레벨과 마이크 자체 잡음의 비율로, dBA로 측정됩니다. SNR이 높을수록 녹음의 배경 잡음이 더 조용합니다. 음성 통화에는 62~64dBA로 충분하며, 음악 녹음에는 68+dBA가 필요합니다.

AOP(음향 과부하 지점)는 마이크가 클리핑 없이 변환할 수 있는 최대 음압 레벨(SPL)입니다. 일반적인 MEMS 마이크의 경우 AOP = 125dB입니다. 콘서트(110~120dB)에서는 녹음이 깨끗하지만, 130+dB(근접 불꽃놀이)에서는 비선형 왜곡이 발생합니다(THD > 10%).

주파수 범위는 마이크가 감쇠 없이 녹음할 수 있는 주파수를 결정합니다. 음성의 경우 300~3400Hz(전화 표준, POTS)로 충분합니다. 음악 및 비디오의 경우 20~20000Hz가 필요합니다. 최신 세대 스마트폰(Knowles SPH9855)의 MEMS 마이크는 ±3dB의 평탄도로 30~18000Hz 범위를 제공합니다.

자주 묻는 질문

최신 스마트폰에는 몇 개의 마이크가 있나요?

최신 스마트폰에는 3~4개의 마이크가 있습니다: 기본(하단 가장자리, 통화 및 비디오 녹화용), 전면(상단 가장자리, 음성 명령), 후면(후면 패널, 노이즈 캔슬레이션). 플래그십(iPhone 16 Pro, Galaxy S25)은 화상 통화 시 녹음 품질을 개선하기 위해 전면 카메라 근처에 네 번째 마이크를 추가합니다.

모바일 앱에서 마이크에 액세스하려면 어떻게 해야 하나요?

Android에서는 — RECORD_AUDIO 런타임 권한을 요청하고 AudioRecord 또는 MediaRecorder를 사용합니다. iOS에서는 — .playAndRecord 카테고리로 AVAudioSession을 활성화하고 AVAudioEngine 또는 AVAudioRecorder를 사용합니다. 두 플랫폼 모두 시스템 대화 상자를 통한 명시적인 사용자 동의가 필요합니다.

마이크 SNR이란 무엇이며 어떤 값이 좋은가요?

SNR(신호 대 잡음비)은 유용한 신호와 마이크 자체 잡음의 비율입니다. 64dBA 값은 음성 녹음 시 잡음 레벨이 음성 레벨보다 64dB 낮다는 것을 의미합니다. 통화에는 SNR 62~64dBA, 음악 녹음에는 68+dBA가 좋은 것으로 간주됩니다.

Android에서 앱이 마이크에서 소리를 받지 못하는 이유는 무엇인가요?

일반적인 원인: RECORD_AUDIO 런타임 권한이 요청되지 않음(Android 6+); AudioSource가 지정되지 않음(예: VOICE_RECOGNITION 대신 CAMCORDER); 기기에 마이크가 없음(Android TV); 다른 프로세스가 이미 마이크를 캡처함. AudioRecord.getState()로 초기화 상태를 확인하세요.

실시간으로 마이크에서 소리 볼륨을 측정하려면 어떻게 해야 하나요?

Android에서는 — AudioRecord.read()로 PCM 버퍼를 가져오고, RMS를 sqrt(sum(샘플²) / count)로 계산합니다. iOS에서는 — installTap(forBus:)로 AVAudioInputNode에 탭을 설정하고 floatChannelData에서 유사하게 RMS를 계산합니다. RMS는 정규화됩니다: 0.0(무음)에서 약 1.0(ADC 최대)까지입니다.

요약

  • MEMS 마이크 — 실리콘 다이어프램, PDM 출력, 2.5×1.5mm 크기의 스마트폰 지배적 유형
  • 스마트폰에는 스테레오 녹음, 음성 명령, 액티브 노이즈 캔슬레이션을 위한 3~4개의 마이크가 있음
  • 노이즈 캔슬레이션은 차동 방식으로 구현 — DSP가 참조 마이크 신호를 기본 신호에서 차감하여 20~35dB 소음 억제
  • Android AudioSource.CAMCORDER는 비디오에 최적의 마이크 선택, VOICE_RECOGNITION은 STT용 필터 비활성화
  • 44.1kHz / 16비트 — 음성과 음악에 충분한 최소 품질 표준
  • SNR 64+dBA는 눈에 띄는 마이크 잡음 없이 깨끗한 음성 녹음 제공
  • AOP는 큰 소리 이벤트 녹음에 중요 — 일반 MEMS의 125dB는 콘서트 및 거리 촬영에 충분

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기