Micro trong thiết bị di động là bộ chuyển đổi âm thanh-điện, biến sóng âm thành tín hiệu điện để số hóa và xử lý sau đó. Điện thoại thông minh hiện đại sử dụng micro MEMS với nguyên lý hoạt động điện dung và ADC tích hợp. Theo Yole Group, 2025, hơn 6 tỷ micro MEMS được xuất xưởng hàng năm, trong đó 35% được lắp trong điện thoại thông minh — 3–4 micro mỗi thiết bị.
Những điểm chính
Micro là thiết bị điện âm chuyển đổi dao động áp suất âm thanh thành tín hiệu điện. Theo nguyên lý hoạt động, chúng được chia thành động (cuộn dây trong từ trường), tụ điện (thay đổi điện dung) và áp điện. Trong thiết bị di động, đại đa số là micro MEMS tụ điện nhờ kích thước nhỏ gọn (2.5 × 1.5 mm) và tương thích với công nghệ gắn bề mặt (SMD).
Micro bao gồm màng rung động dưới áp suất âm thanh và điện cực cố định, tạo thành tụ điện. Sự thay đổi khoảng cách giữa các bản cực làm thay đổi điện dung, điều chế điện áp đầu ra. Trong micro MEMS, màng được chế tạo từ polysilicon bằng phương pháp quang khắc — điều này đảm bảo đặc tính giống hệt nhau của tất cả micro trong một lô.
Tín hiệu đầu ra của micro MEMS là PDM (Pulse Density Modulation) — luồng một bit với tần số lấy mẫu 1–4 MHz. Bộ giải mã của điện thoại thông minh giải mã PDM thành PCM (Pulse Code Modulation) qua bộ lọc giảm mẫu kỹ thuật số, thu được định dạng âm thanh tiêu chuẩn 16–24 bit ở 44.1–96 kHz để xử lý bởi ứng dụng.
Trước khi MEMS ra đời, thiết bị di động sử dụng micro tụ điện electret (ECM). Trong đó, màng có điện tích vĩnh viễn (electret), và rung động của màng tạo ra điện áp xoay chiều. Micro ECM lớn hơn (4–6 mm) và cần bộ tiền khuếch đại riêng, làm tăng diện tích trên bo mạch.
| Thông số | Micro MEMS | Electret (ECM) |
|---|---|---|
| Kích thước vỏ | 2.5 × 1.5 × 1.0 mm | 4 × 2.5 × 1.5 mm |
| Độ nhạy | −26 ± 1 dB (FS) | −38 ± 3 dB (FS) |
| SNR (điển hình) | 64–69 dBA | 58–64 dBA |
| AOP (SPL tối đa) | 125–135 dB | 115–125 dB |
| Dòng tiêu thụ | 150–300 µA | 300–500 µA |
| Dải nhiệt độ | −40…+105 °C | −20…+70 °C |
Micro MEMS chiếm ưu thế nhờ kích thước nhỏ hơn, đặc tính ổn định và khả năng hàn trên dây chuyền SMD tiêu chuẩn. Tuy nhiên, ECM vẫn được sử dụng trong thiết bị giá rẻ do chi phí linh kiện thấp hơn ($0.15–0.30 so với $0.25–0.60 cho MEMS).
Điện thoại thông minh hiện đại có 3 đến 4 micro, vị trí của chúng quyết định chất lượng ghi âm và khử tiếng ồn. Micro chính (dưới) nằm ở cạnh dưới bên cạnh cổng USB-C — nó ghi âm giọng nói của người dùng trong cuộc gọi và quay video. Micro trước (trên) nằm ở cạnh trên cho lệnh thoại và kênh thứ hai trong ghi âm stereo.
Micro sau (back) thường được đặt gần camera ở mặt sau và được sử dụng riêng cho khử tiếng ồn. Tín hiệu của nó không được ghi vào tệp âm thanh — nó chỉ được bộ xử lý kỹ thuật số trừ khỏi tín hiệu micro chính. Trong một số flagship (iPhone 16 Pro, Samsung Galaxy S25), micro thứ tư được lắp ở notch camera trước để cải thiện ghi âm khi gọi video.
Quay video stereo được thực hiện thông qua kết hợp micro dưới và trên. iOS tự động chọn cặp micro tùy theo hướng thiết bị — ở chế độ ngang, kênh trái lấy từ cạnh trái, kênh phải từ cạnh phải. Trên Android, logic này phụ thuộc vào cách triển khai của nhà sản xuất OEM và có thể khác nhau giữa các model.
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)
// Xử lý bộ đệm PCM
}
AudioSource.CAMCORDER chọn micro tối ưu cho quay video — thường là micro chính dưới với điều khiển gain tự động. Để ghi âm giọng nói, sử dụng VOICE_RECOGNITION — nguồn này tắt tất cả bộ lọc và khử tiếng ồn để có tín hiệu sạch cho nhận dạng giọng nói.
Khử tiếng ồn chủ động (ANC) trong điện thoại thông minh dựa trên phương pháp vi sai: micro thứ hai (tham chiếu) ghi chủ yếu tiếng ồn nền, trong khi micro chính thu hỗn hợp giọng nói và tiếng ồn. Bộ xử lý tín hiệu kỹ thuật số (DSP) trừ tín hiệu tham chiếu khỏi tín hiệu chính, chỉ để lại giọng nói sạch.
Chất lượng khử tiếng ồn phụ thuộc vào khoảng cách giữa các micro và hướng tính của chúng. Mức khử tiếng ồn đều (máy bay, quạt) điển hình là 20–35 dB. Đối với tiếng ồn xung (đóng sầm cửa, va chạm bát đĩa), một khối triệt thoáng qua bổ sung được sử dụng để thay thế đoạn bị méo bằng tín hiệu xấp xỉ từ các mẫu lân cận.
Nhà phát triển có thể ảnh hưởng đến thuật toán khử tiếng ồn chỉ thông qua tham số phiên âm thanh: trên Android — AudioManager.setParameters("noise_suppression=on/off"), trên iOS — danh mục AVAudioSession .playAndRecord với tùy chọn .allowBluetoothA2DP. Khi ghi âm để nhận dạng, khử tiếng ồn thường bị tắt — thuật toán STT hoạt động chính xác hơn với tín hiệu gốc.
AudioRecord (Android) là API cấp thấp để ghi trực tiếp dữ liệu PCM từ micro. Ứng dụng nhận bộ đệm với dữ liệu âm thanh thô có thể xử lý theo thời gian thực: phân tích âm lượng, phân tích tần số (FFT), VAD (Phát hiện hoạt động giọng nói). Bộ đệm tối thiểu được tính qua AudioRecord.getMinBufferSize() — sử dụng kích thước nhỏ hơn gây trễ hoặc lỗi ghi âm.
AVAudioEngine (iOS) là đồ thị xử lý âm thanh mô-đun, nơi nút đầu vào (AVAudioInputNode) kết nối với bộ trộn chính hoặc trực tiếp với trình xử lý tap. Engine cho phép phân tích thời gian thực RMS (Root Mean Square) — chỉ báo âm lượng tín hiệu — và phổ tần số qua AVAudioUnitEQ.
Sự khác biệt chính giữa các nền tảng: trên iOS, ghi âm yêu cầu kích hoạt bắt buộc AVAudioSession với danh mục .playAndRecord hoặc .record; trên Android, cần quyền RECORD_AUDIO (quyền runtime) và nguồn âm thanh micro. Flutter sử dụng plugin record để trừu tượng hóa những khác biệt này.
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 âm lượng: \(rms)")
}
try engine.start()
Mã thiết lập một tap trên nút đầu vào của AVAudioEngine. Mỗi bộ đệm âm thanh chứa dữ liệu float của tín hiệu đơn âm từ micro. RMS được tính là căn bậc hai trung bình của biên độ — chỉ báo tiêu chuẩn của âm lượng trong khoảng từ 0.0 (im lặng) đến ~0.5–1.0 (giọng nói to).
Các thông số chính được sử dụng để đánh giá chất lượng micro. SNR (Signal-to-Noise Ratio) là tỷ lệ giữa mức tín hiệu và tiếng ồn nội tại của micro, đo bằng dBA. SNR càng cao, tiếng ồn nền trong bản ghi càng thấp. Cho cuộc gọi thoại, 62–64 dBA là đủ; cho ghi âm nhạc, cần 68+ dBA.
AOP (Acoustic Overload Point) là mức áp suất âm thanh tối đa (SPL) mà micro có thể chuyển đổi mà không bị cắt. Đối với micro MEMS điển hình, AOP = 125 dB. Tại buổi hòa nhạc (110–120 dB), bản ghi sẽ sạch, nhưng ở 130+ dB (pháo hoa gần đó), sẽ xuất hiện méo phi tuyến (THD > 10%).
Dải tần xác định tần số nào micro ghi lại mà không bị suy giảm. Cho giọng nói, 300–3400 Hz (tiêu chuẩn điện thoại, POTS) là đủ. Cho nhạc và video — 20–20000 Hz. Micro MEMS trong điện thoại thông minh thế hệ mới nhất (Knowles SPH9855) cung cấp dải 30–18000 Hz với độ phẳng ±3 dB.
Câu hỏi thường gặp
Điện thoại thông minh hiện đại có 3 đến 4 micro: chính (cạnh dưới, cho cuộc gọi và quay video), trước (cạnh trên, lệnh thoại), sau (mặt sau, khử tiếng ồn). Các flagship (iPhone 16 Pro, Galaxy S25) thêm micro thứ tư gần camera trước để cải thiện ghi âm khi gọi video.
Trên Android — yêu cầu quyền runtime RECORD_AUDIO và sử dụng AudioRecord hoặc MediaRecorder. Trên iOS — kích hoạt AVAudioSession với danh mục .playAndRecord và sử dụng AVAudioEngine hoặc AVAudioRecorder. Cả hai nền tảng đều yêu cầu sự đồng ý rõ ràng của người dùng qua hộp thoại hệ thống.
SNR (Signal-to-Noise Ratio) là tỷ lệ giữa tín hiệu hữu ích và tiếng ồn nội tại của micro. Giá trị 64 dBA có nghĩa là khi ghi âm giọng nói, mức tiếng ồn sẽ thấp hơn mức giọng nói 64 dB. SNR 62–64 dBA được coi là tốt cho cuộc gọi và 68+ dBA cho ghi âm nhạc.
Nguyên nhân điển hình: quyền runtime RECORD_AUDIO chưa được yêu cầu (Android 6+); chưa chỉ định AudioSource (ví dụ: CAMCORDER thay vì VOICE_RECOGNITION); thiết bị không có micro (Android TV); tiến trình khác đã chiếm micro. Kiểm tra trạng thái khởi tạo qua AudioRecord.getState().
Trên Android — lấy bộ đệm PCM qua AudioRecord.read(), tính RMS là sqrt(sum(mẫu²) / count). Trên iOS — đặt tap trên AVAudioInputNode qua installTap(forBus:) và tính RMS tương tự từ floatChannelData. RMS được chuẩn hóa: 0.0 (im lặng) đến khoảng 1.0 (ADC tối đa).
Tổng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm