মোবাইল ডিভাইসে মাইক্রোফোন একটি অ্যাকোস্টো-ইলেকট্রিক ট্রান্সডিউসার যা শব্দ তরঙ্গকে ডিজিটাইজেশন এবং প্রক্রিয়াকরণের জন্য বৈদ্যুতিক সংকেতে রূপান্তর করে। আধুনিক স্মার্টফোনগুলি ক্যাপাসিটিভ অপারেটিং নীতি এবং বিল্ট-ইন ADC সহ MEMS মাইক্রোফোন ব্যবহার করে। Yole Group, 2025-এর মতে, বার্ষিক ৬ বিলিয়নের বেশি MEMS মাইক্রোফোন পাঠানো হয়, যার 35% স্মার্টফোনে ইনস্টল করা হয় — প্রতি ডিভাইসে ৩-৪টি মাইক্রোফোন।
মূল বিষয়
মাইক্রোফোন একটি ইলেক্ট্রোঅ্যাকোস্টিক ডিভাইস যা শব্দ চাপের দোলনকে বৈদ্যুতিক সংকেতে রূপান্তর করে। অপারেটিং নীতি অনুসারে, এগুলি ডায়নামিক (চৌম্বক ক্ষেত্রে কয়েল), কনডেনসার (ক্যাপাসিট্যান্স পরিবর্তন) এবং পীজোইলেকট্রিকে বিভক্ত। মোবাইল ডিভাইসে, বিশাল সংখ্যাগরিষ্ঠ হল কনডেনসার MEMS মাইক্রোফোন তাদের ক্ষুদ্র আকার (২.৫ × ১.৫ মিমি) এবং সারফেস মাউন্ট প্রযুক্তির (SMD) সাথে সামঞ্জস্যের কারণে।
একটি মাইক্রোফোনে শব্দ চাপের অধীনে কম্পমান একটি ডায়াফ্রাম এবং একটি স্থির ইলেকট্রোড থাকে, যা একটি ক্যাপাসিটর গঠন করে। প্লেটের মধ্যে দূরত্বের পরিবর্তন ক্যাপাসিট্যান্স পরিবর্তন করে, যা আউটপুট ভোল্টেজকে মড্যুলেট করে। MEMS মাইক্রোফোনে, ডায়াফ্রাম ফটোলিথোগ্রাফি পদ্ধতিতে পলিসিলিকন থেকে তৈরি করা হয় — এটি একটি ব্যাচের সমস্ত মাইক্রোফোনের অভিন্ন বৈশিষ্ট্য নিশ্চিত করে।
MEMS মাইক্রোফোনের আউটপুট সংকেত হল PDM (পালস ডেনসিটি মড্যুলেশন) — ১-৪ MHz নমুনা হার সহ একটি এক-বিট স্ট্রিম। স্মার্টফোন কোডেকগুলি ডিজিটাল ডেসিমেশন ফিল্টারের মাধ্যমে PDM কে PCM (পালস কোড মড্যুলেশন) এ ডিকোড করে, অ্যাপ্লিকেশন প্রক্রিয়াকরণের জন্য ৪৪.১-৯৬ kHz এ ১৬-২৪ বিটের স্ট্যান্ডার্ড অডিও ফরম্যাট পায়।
MEMS আসার আগে, মোবাইল ডিভাইসগুলি ইলেকট্রেট কনডেনসার মাইক্রোফোন (ECM) ব্যবহার করত। এগুলিতে, ডায়াফ্রামের একটি স্থায়ী বৈদ্যুতিক চার্জ (ইলেকট্রেট) ছিল এবং ডায়াফ্রাম কম্পনগুলি একটি বিকল্প ভোল্টেজ তৈরি করত। ECM মাইক্রোফোনগুলি বড় (৪-৬ মিমি) এবং একটি পৃথক প্রিঅ্যাম্পলিফায়ার প্রয়োজন, যা PCB-তে এলাকা বাড়ায়।
| প্যারামিটার | MEMS মাইক্রোফোন | ইলেকট্রেট (ECM) |
|---|---|---|
| প্যাকেজ আকার | ২.৫ × ১.৫ × ১.০ মিমি | ৪ × ২.৫ × ১.৫ মিমি |
| সংবেদনশীলতা | −২৬ ± ১ dB (FS) | −৩৮ ± ৩ dB (FS) |
| SNR (সাধারণ) | ৬৪-৬৯ dBA | ৫৮-৬৪ dBA |
| AOP (সর্বোচ্চ SPL) | ১২৫-১৩৫ dB | ১১৫-১২৫ dB |
| কারেন্ট খরচ | ১৫০-৩০০ µA | ৩০০-৫০০ µA |
| তাপমাত্রার রেঞ্জ | −৪০…+১০৫ °C | −২০…+৭০ °C |
MEMS মাইক্রোফোনগুলি ছোট আকার, স্থিতিশীল বৈশিষ্ট্য এবং স্ট্যান্ডার্ড SMD লাইনে সোল্ডারযোগ্যতার কারণে প্রভাবশালী। তবে, কম উপাদান খরচের ($০.১৫-০.৩০ বনাম MEMS-এর জন্য $০.২৫-০.৬০) কারণে ECM বাজেট ডিভাইসে ব্যবহার অব্যাহত রাখে।
আধুনিক স্মার্টফোনে ৩ থেকে ৪টি মাইক্রোফোন থাকে, যার অবস্থান রেকর্ডিং গুণমান এবং নয়েজ ক্যান্সেলেশন নির্ধারণ করে। প্রাথমিক মাইক্রোফোন (নিচে) USB-C পোর্টের পাশে নিচের কিনারায় অবস্থিত — এটি কল এবং ভিডিও রেকর্ডিংয়ের সময় ব্যবহারকারীর ভয়েস রেকর্ড করে। সামনের (উপরের) মাইক্রোফোন ভয়েস কমান্ড এবং স্টেরিও রেকর্ডিংয়ে দ্বিতীয় চ্যানেলের জন্য উপরের কিনারায় থাকে।
পিছনের (ব্যাক) মাইক্রোফোন সাধারণত পিছনের প্যানেলে ক্যামেরার কাছে রাখা হয় এবং একচেটিয়াভাবে নয়েজ ক্যান্সেলেশনের জন্য ব্যবহৃত হয়। এর সংকেত অডিও ফাইলে রেকর্ড করা হয় না — এটি শুধুমাত্র ডিজিটাল প্রসেসর দ্বারা প্রাথমিক মাইক্রোফোন সংকেত থেকে বিয়োগ করা হয়। কিছু ফ্ল্যাগশিপে (iPhone 16 Pro, Samsung Galaxy S25), ভিডিও কলের সময় রেকর্ডিং উন্নত করতে ফ্রন্ট ক্যামেরা নচে চতুর্থ মাইক্রোফোন ইনস্টল করা হয়।
স্টেরিও ভিডিও রেকর্ডিং নিচের এবং উপরের মাইক্রোফোনের সংমিশ্রণের মাধ্যমে বাস্তবায়িত হয়। 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 ব্যবহার করা হয় — এই উৎস স্পিচ রিকগনিশনের জন্য পরিষ্কার সংকেত পেতে সমস্ত ফিল্টার এবং নয়েজ ক্যান্সেলেশন নিষ্ক্রিয় করে।
সক্রিয় নয়েজ ক্যান্সেলেশন (ANC) স্মার্টফোনে ডিফারেনশিয়াল পদ্ধতির উপর ভিত্তি করে: দ্বিতীয় (রেফারেন্স) মাইক্রোফোন প্রধানত ব্যাকগ্রাউন্ড নয়েজ রেকর্ড করে, যখন প্রাথমিক মাইক্রোফোন ভয়েস এবং নয়েজের মিশ্রণ ক্যাপচার করে। একটি ডিজিটাল সিগন্যাল প্রসেসর (DSP) রেফারেন্স সংকেত প্রাথমিক থেকে বিয়োগ করে, শুধুমাত্র পরিষ্কার ভয়েস রেখে।
নয়েজ ক্যান্সেলেশন গুণমান মাইক্রোফোনের মধ্যে দূরত্ব এবং তাদের দিকনির্দেশনামূলকতার উপর নির্ভর করে। সমজাতীয় নয়েজ (বিমান, পাখা) এর সাধারণ দমন ২০-৩৫ dB। ইমপালস নয়েজ (দরজা বন্ধ হওয়া, থালা বাজানো) এর জন্য, একটি অতিরিক্ত ট্রানজিয়েন্ট দমন ব্লক ব্যবহার করা হয় যা বিকৃত অংশটিকে প্রতিবেশী নমুনা থেকে আনুমানিক সংকেত দিয়ে প্রতিস্থাপন করে।
ডেভেলপার শুধুমাত্র অডিও সেশন প্যারামিটারের মাধ্যমে নয়েজ ক্যান্সেলেশন অ্যালগরিদমকে প্রভাবিত করতে পারেন: Android-এ — AudioManager.setParameters("noise_suppression=on/off"), iOS-এ — AVAudioSession শ্রেণী .playAndRecord বিকল্প .allowBluetoothA2DP সহ। রিকগনিশনের জন্য রেকর্ডিং করার সময়, নয়েজ ক্যান্সেলেশন সাধারণত নিষ্ক্রিয় করা হয় — STT অ্যালগরিদম মূল সংকেতের সাথে আরও নির্ভুলভাবে কাজ করে।
AudioRecord (Android) মাইক্রোফোন থেকে সরাসরি PCM ডেটা রেকর্ডিংয়ের জন্য নিম্ন-স্তরের API। অ্যাপ্লিকেশন কাঁচা অডিও ডেটা সহ বাফার পায় যা রিয়েল টাইমে প্রক্রিয়া করা যেতে পারে: ভলিউম বিশ্লেষণ, ফ্রিকোয়েন্সি বিশ্লেষণ (FFT), VAD (ভয়েস অ্যাক্টিভিটি ডিটেকশন)। ন্যূনতম বাফার AudioRecord.getMinBufferSize() এর মাধ্যমে গণনা করা হয় — ছোট আকার ব্যবহার করলে রেকর্ডিং বিলম্ব বা ব্যর্থতা ঘটে।
AVAudioEngine (iOS) অডিও প্রক্রিয়াকরণের জন্য একটি মডুলার গ্রাফ যেখানে ইনপুট নোড (AVAudioInputNode) প্রধান মিক্সার বা সরাসরি ট্যাপ হ্যান্ডলারের সাথে সংযুক্ত হয়। ইঞ্জিন RMS (রুট মিন স্কয়ার) — একটি সংকেত ভলিউম নির্দেশক — এবং AVAudioUnitEQ-এর মাধ্যমে ফ্রিকোয়েন্সি স্পেকট্রামের রিয়েল-টাইম বিশ্লেষণ সক্ষম করে।
মূল প্ল্যাটফর্ম পার্থক্য: iOS-এ, রেকর্ডিংয়ের জন্য .playAndRecord বা .record শ্রেণীর সাথে AVAudioSession-এর বাধ্যতামূলক সক্রিয়করণ প্রয়োজন; Android-এ, RECORD_AUDIO অনুমতি (রানটাইম অনুমতি) এবং একটি মাইক্রোফোন 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()
কোডটি AVAudioEngine-এর ইনপুট নোডে একটি ট্যাপ সেট করে। প্রতিটি অডিও বাফারে মাইক্রোফোন থেকে মনোফোনিক সংকেতের ফ্লোট ডেটা থাকে। RMS প্রশস্ততার মূল গড় বর্গ হিসাবে গণনা করা হয় — ০.০ (নীরবতা) থেকে ~০.৫-১.০ (জোরে ভয়েস) রেঞ্জে শব্দ ভলিউমের একটি মানক সূচক।
মাইক্রোফোন গুণমান মূল্যায়নের জন্য মূল প্যারামিটার ব্যবহার করা হয়। SNR (সিগন্যাল-টু-নয়েজ রেশিও) হল সংকেত স্তরের সাথে মাইক্রোফোনের স্ব-নয়েজের অনুপাত, dBA তে পরিমাপ করা হয়। SNR যত বেশি, রেকর্ডিংয়ে ব্যাকগ্রাউন্ড নয়েজ তত কম। ভয়েস কলের জন্য, ৬২-৬৪ dBA যথেষ্ট; মিউজিক রেকর্ডিংয়ের জন্য, ৬৮+ dBA প্রয়োজন।
AOP (অ্যাকোস্টিক ওভারলোড পয়েন্ট) হল সর্বোচ্চ শব্দ চাপ স্তর (SPL) যা একটি মাইক্রোফোন ক্লিপিং ছাড়া রূপান্তর করতে পারে। সাধারণ MEMS মাইক্রোফোনের জন্য, AOP = ১২৫ dB। কনসার্টে (১১০-১২০ dB), রেকর্ডিং পরিষ্কার হবে, কিন্তু ১৩০+ dB (পাশে আতশবাজি) তে ননলিনিয়ার ডিসটর্শন দেখা যাবে (THD > ১০%)।
ফ্রিকোয়েন্সি রেঞ্জ নির্ধারণ করে কোন ফ্রিকোয়েন্সি মাইক্রোফোন ক্ষীণকরণ ছাড়া রেকর্ড করে। ভয়েসের জন্য, ৩০০-৩৪০০ Hz (টেলিফোন মান, POTS) যথেষ্ট। মিউজিক এবং ভিডিওর জন্য — ২০-২০০০০ Hz। সর্বশেষ প্রজন্মের স্মার্টফোনে (Knowles SPH9855) MEMS মাইক্রোফোন ±৩ dB সমতলতা সহ ৩০-১৮০০০ Hz এর রেঞ্জ প্রদান করে।
সচরাচর জিজ্ঞাসা
আধুনিক স্মার্টফোনে ৩ থেকে ৪টি মাইক্রোফোন থাকে: প্রাথমিক (নিচের কিনারা, কল এবং ভিডিও রেকর্ডিংয়ের জন্য), সামনে (উপরের কিনারা, ভয়েস কমান্ড), পিছনে (পিছনের প্যানেল, নয়েজ ক্যান্সেলেশন)। ফ্ল্যাগশিপগুলি (iPhone 16 Pro, Galaxy S25) ভিডিও কলের সময় রেকর্ডিং উন্নত করতে ফ্রন্ট ক্যামেরার কাছে চতুর্থ মাইক্রোফোন যোগ করে।
Android-এ — RECORD_AUDIO রানটাইম অনুমতি অনুরোধ করুন এবং AudioRecord বা MediaRecorder ব্যবহার করুন। iOS-এ — .playAndRecord শ্রেণী সহ AVAudioSession সক্রিয় করুন এবং AVAudioEngine বা AVAudioRecorder ব্যবহার করুন। উভয় প্ল্যাটফর্মেরই সিস্টেম ডায়ালগের মাধ্যমে স্পষ্ট ব্যবহারকারী সম্মতি প্রয়োজন।
SNR (সিগন্যাল-টু-নয়েজ রেশিও) হল উপযোগী সংকেত এবং মাইক্রোফোনের স্ব-নয়েজের অনুপাত। ৬৪ dBA মানে হল ভয়েস রেকর্ড করার সময় নয়েজ স্তর ভয়েস স্তর থেকে ৬৪ dB নিচে থাকবে। কলের জন্য SNR ৬২-৬৪ dBA এবং মিউজিক রেকর্ডিংয়ের জন্য ৬৮+ dBA ভালো বলে বিবেচিত হয়।
সাধারণ কারণ: RECORD_AUDIO রানটাইম অনুমতি অনুরোধ করা হয়নি (Android ৬+); AudioSource নির্দিষ্ট করা হয়নি (যেমন, VOICE_RECOGNITION-এর পরিবর্তে CAMCORDER); ডিভাইসে মাইক্রোফোন নেই (Android TV); অন্য একটি প্রক্রিয়া ইতিমধ্যে মাইক্রোফোন ক্যাপচার করেছে। AudioRecord.getState() এর মাধ্যমে আরম্ভ অবস্থা পরীক্ষা করুন।
Android-এ — AudioRecord.read() এর মাধ্যমে PCM বাফার পান, RMS গণনা করুন sqrt(sum(নমুনা²) / count) হিসাবে। iOS-এ — installTap(forBus:) এর মাধ্যমে AVAudioInputNode-এ ট্যাপ সেট করুন এবং floatChannelData থেকে একইভাবে RMS গণনা করুন। RMS স্বাভাবিক করা হয়েছে: ০.০ (নীরবতা) থেকে প্রায় ১.০ (ADC সর্বোচ্চ)।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন