সুচিপত্র:

এমপি 3 ডিকোডিংয়ের জন্য আরডুইনো লাইব্রেরি: 4 টি ধাপ
এমপি 3 ডিকোডিংয়ের জন্য আরডুইনো লাইব্রেরি: 4 টি ধাপ

ভিডিও: এমপি 3 ডিকোডিংয়ের জন্য আরডুইনো লাইব্রেরি: 4 টি ধাপ

ভিডিও: এমপি 3 ডিকোডিংয়ের জন্য আরডুইনো লাইব্রেরি: 4 টি ধাপ
ভিডিও: স্বামীর মৃত্যুর খবর নিজেকেই বলতে হচ্ছে ব্রেকিং নিউজে। 2024, নভেম্বর
Anonim
MP3 ডিকোডিং এর জন্য Arduino লাইব্রেরি
MP3 ডিকোডিং এর জন্য Arduino লাইব্রেরি
MP3 ডিকোডিং এর জন্য Arduino লাইব্রেরি
MP3 ডিকোডিং এর জন্য Arduino লাইব্রেরি

ইএসপি 32 এবং এআরএম এম সিরিজের এমপি 3 ডিকোডিংয়ের মতো দ্রুত মাইক্রোকন্ট্রোলারগুলির প্রাদুর্ভাবের কারণে বিশেষজ্ঞ হার্ডওয়্যার দ্বারা আর কাজ করার প্রয়োজন নেই। ডিকোডিং এখন সফটওয়্যারে করা যায়।

Earlephilhower থেকে একটি দুর্দান্ত লাইব্রেরি পাওয়া যায় যা দেখায় কিভাবে বিভিন্ন ধরণের অডিও ফাইল ডিকোড করা যায় এবং ESP মাইক্রোকন্ট্রোলারে সেগুলি চালানো যায়। এর দ্বারা অনুপ্রাণিত হয়ে আমি মাইক্রোকন্ট্রোলারে এমপিথ্রি ফাইল পড়ার মডুলার পদ্ধতি তৈরির জন্য কিছু কোড অ্যাডাপ্ট করেছিলাম।

আমার আশা হল যে এই পদ্ধতিটি যেকোনো দ্রুত যথেষ্ট মাইক্রোকন্ট্রোলার (শুধু একটি ESP32 বোর্ড নয়) ব্যবহারের জন্য যথেষ্ট জেনেরিক হবে কিন্তু এখন পর্যন্ত আমি শুধুমাত্র একটি ESP32 এ পরীক্ষা করেছি।

সরবরাহ

আমি আগেই বলেছি, আমি আশা করি এই পদ্ধতিটি যেকোনো দ্রুত মাইক্রোকন্ট্রোলারের জন্য কাজ করবে, কিন্তু তা নাও হতে পারে। অতএব আমার ফলাফল প্রতিলিপি করতে আপনার প্রয়োজন হবে:

  • একটি ESP32 বোর্ড
  • এসডি ব্রেকআউট বোর্ড
  • এসডি কার্ড
  • জাম্পার তার
  • রুটিবোর্ড
  • মাইক্রো ইউএসবি কেবল (স্কেচ আপলোড করার জন্য)
  • Arduino IDE

ধাপ 1: ব্রেডবোর্ড রাখা

ব্রেডবোর্ড রাখা
ব্রেডবোর্ড রাখা

ব্রেডবোর্ডে ESP32 এবং SD কার্ড ব্রেকআউট রাখুন।

ধাপ 2: এসডি কার্ড ওয়্যারিং

এসডি কার্ড ওয়্যারিং
এসডি কার্ড ওয়্যারিং

এসডি কার্ড সংযোগগুলি (ইএসপি 32 এসডি ব্রেকআউট) নিম্নরূপ:

GND GND

3v3 ভিডিডি

23 ডিআই (মসি)

19 DO (MISO)

18 এসসিএলকে

5 সিএস

দয়া করে মনে রাখবেন যে আপনি যদি অন্য কোন মাইক্রোকন্ট্রোলার ব্যবহার করেন তবে এই সংযোগগুলি ভিন্ন হবে।

ধাপ 3: সফ্টওয়্যার লাইব্রেরি

আপনার যদি ইএসপি-আইডিএফ ইনস্টল না থাকে তবে তাদের ওয়েবসাইটে যান এবং এটি ইনস্টল করুন।

তারপর microdecoder লাইব্রেরি ইনস্টল করুন। আপনি সংগ্রহস্থলটি ডাউনলোড করে এবং আপনার Arduino লাইব্রেরি ফোল্ডারে রেখে এটি করতে পারেন। মাইক্রোডিকোডার লাইব্রেরি বর্তমানে.wav এবং.mp3 ফাইলগুলিকে সমর্থন করে।

বিন্যাস যাই হোক না কেন, প্রতিটি শ্রেণীর সাথে যুক্ত কয়েকটি সাধারণ পদ্ধতি রয়েছে এবং সেগুলি নীচের কোডে অন্তর্ভুক্ত। এর মধ্যে রয়েছে কিছু ফাইল মেটাডেটা পাওয়া এবং সিরিয়াল মনিটরে প্রিন্ট করা।

#"SD.h" // ইনপুট অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত "mp3.h" // ডিকোডার #অন্তর্ভুক্ত "pcm.h" // কাঁচা অডিও ডেটা ধারক mp3 MP3; অকার্যকর সেটআপ () {Serial.begin (115200); // সেটআপ সিরিয়াল SD.begin (); // সেটআপ এসডি সংযোগ ফাইল ফাইল = SD.open ("/cc.mp3"); // একটি MP3 ফাইল MP3.begin (ফাইল) খুলুন; // MP3 ক্লাসে বলুন কোন ফাইলটি MP3.getMetadata () প্রসেস করতে হবে; // মেটাডাটা Serial.print পান ("বিট প্রতি নমুনা:"); Serial.println (MP3.bitsPerSample); // নমুনা সিরিয়াল.প্রিন্ট প্রতি বিট মুদ্রণ ("নমুনা হার:"); Serial.println (MP3. Fs); // এবং নমুনা হার} অকার্যকর লুপ () {}

ধাপ 4: সিরিয়াল মনিটরে MP3 ডেটা প্লট করুন

সিরিয়াল মনিটরে MP3 ডেটা প্লট করুন
সিরিয়াল মনিটরে MP3 ডেটা প্লট করুন

নীচের কোড দিয়ে আপনি সিরিয়াল মনিটরে কিছু অডিও ডেটা প্লট করতে পারেন। এটি খুব ধীর হবে কিন্তু এমপি 3 লাইব্রেরি কিভাবে ব্যবহার করবেন তা দেখাবে। এটি 16 এর একটি ফ্যাক্টর দ্বারা ডেটার নমুনাও দেয় যাতে যখন ডেটা প্লট করা হয় তখন এটি একটি অডিও ওয়েভফর্মের মতো দেখায়। এই কোডটি SPI_MP3_Serial.ino উদাহরণ থেকে নেওয়া হয়েছে যা মাইক্রোডিকোডার লাইব্রেরির সাথে আসে। অবশ্যই, এগিয়ে যাওয়া আপনি এই অডিও ডেটা একরকম চালাতে চাইবেন কিন্তু এটি একটি ভিন্ন নির্দেশের বিষয়।

#"SD.h" // ইনপুট অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত "mp3.h" // ডিকোডার mp3 MP3; // MP3 ক্লাস পিসিএম অডিও; // কাঁচা অডিও ডেটা অকার্যকর সেটআপ () {Serial.begin (115200); // সেটআপ সিরিয়াল SD.begin (); // সেটআপ এসডি সংযোগ ফাইল ফাইল = SD.open ("/cc.mp3"); // একটি MP3 ফাইল MP3.begin (ফাইল) খুলুন; // এমপিথ্রি ক্লাসে ফাইল পাস করুন} অকার্যকর লুপ () {অডিও = MP3.decode (); // পিসিএম ক্লাসে অডিও ডেটা ডিকোড করুন * এটি কার্যকরভাবে 16 এর একটি ফ্যাক্টর দ্বারা ডাটাকে কমিয়ে দেয় (শুধুমাত্র তরঙ্গাকৃতি দেখার জন্য) */ সিরিয়াল.প্রিন্ট (audio.interleaved [0]); // বাম চ্যানেল সিরিয়াল.প্রিন্ট (""); Serial.println (audio.interleaved [1]); // ডান চ্যানেল}

প্রস্তাবিত: