Microphone — モバイルデバイスにおける定義、種類、仕組み

著者: IT Sectr 公開日: 2026-03-24 読了時間: 10 分

モバイルデバイスのマイクは、音波を電気信号に変換してデジタル化および処理を行う音響電気変換器です。最新のスマートフォンは、静電容量式の動作原理と内蔵ADCを備えたMEMSマイクを使用しています。Yole Group、2025によると、年間60億個以上のMEMSマイクが出荷されており、その35%がスマートフォンに搭載されています — 1台あたり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ドル vs MEMSの0.25~0.60ドル)ため、低価格デバイスで引き続き使用されています。

マルチマイク構成:メイン、フロント、リア

最新のスマートフォンには3~4個のマイクが搭載されており、その配置が録音品質とノイズキャンセリングを決定します。メインマイク(下部)はUSB-Cポートの横の下端に配置され、通話やビデオ録画時にユーザーの音声を録音します。フロント(上部)マイクは上端にあり、音声コマンドやステレオ録音の2チャンネル目として使用されます。

リア(背面)マイクは通常、背面パネルのカメラ近くに配置され、ノイズキャンセリング専用に使用されます。その信号はオーディオファイルに録音されず、デジタルプロセッサによってメインマイクの信号から差し引かれるだけです。一部のフラッグシップモデル(iPhone 16 Pro、Samsung Galaxy S25)では、ビデオ通話時の録音品質を向上させるため、フロントカメラのノッチに4つ目のマイクが搭載されています。

ステレオビデオ録画は、下部と上部のマイクの組み合わせで実現されます。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)は差動方式に基づいています:2つ目の(参照)マイクが主に背景ノイズを録音し、メインマイクが音声とノイズの混合をキャプチャします。デジタル信号プロセッサ(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)は、ビデオ通話時の録音品質を向上させるため、フロントカメラの近くに4つ目のマイクを追加しています。

モバイルアプリでマイクにアクセスするには?

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アプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください