کتابخانه PCMFlow722 منتشر شد؛ برقراری تماس صوتی HD دوطرفه و Real-time روی پروتکل ESP-NOW با کدک G.722

two way HD
51 بازدید
۱۴۰۵-۰۳-۱۱
3 دقیقه
  • نویسنده: 0x7a657573
  • درباره نویسنده: من اون دیوونه‌ام که وقتی بورد روشن نمی‌شه، ذوق می‌کنم؛ یعنی یه شب تا صبح قراره با منبع تغذیه و لاجیک آنالایزر عشق کنم! آدما قهوه می‌خورن که بیدار بمونن، ولی من بیدار می‌مونم تا بفهمم این بورد چرا باهام قهر کرده! زندگی من یه لوپ بی‌نهایته بین باگ و دیباگ... با چاشنی یه کم امید و یه عالمه دیوونگی!

به گفته: CNX Software – Embedded Systems News

کتابخانه PCMFlow722 با بهره‌گیری از کدک G.722، امکان انتقال صدای دوطرفه با کیفیت HD را بر بستر پروتکل ESP-NOW در تراشه‌های ESP32 فراهم کرده است. این راهکار بهینه، با حفظ نرخ انتقال ۶۴ کیلوبیت بر ثانیه، پهنای باند صوتی را نسبت به روش‌های سنتی دو برابر کرده و تعادلی ایده‌آل میان کیفیت صدا و مصرف جزیی منابع سخت‌افزاری ایجاد می‌کند.

کتابخانه PCMFlow722 برای انتقال صدای HD دوطرفه بر بستر ESP-NOW

کتابخانه PCMFlow722 که توسط Tanaka Masayuki توسعه یافته است، امکان انتقال صدای HD دوطرفه (به صورت نیمه‌دوطرفه یا Half-Duplex) را به‌صورت بلادرنگ (Real-time) بر روی پروتکل ESP-NOW فراهم می‌کند. این پلتفرم نرم‌افزاری برای بردهای ESP32 مجهز به اسپیکر و میکروفون طراحی شده است و عملاً آن‌ها را به یک دستگاه واکی‌تاکی دیجیتال تبدیل می‌نماید.

این کتابخانه، افزونه‌ی کدک پهن‌باند G.722 را برای کتابخانه پایه PCMFlow پیاده‌سازی می‌کند. PCMFlow یک ابزار سبک‌وزن برای رمزگشایی صوتی و جریان داده‌های PCM در محیط آردوینو است که پیش از این از کدک‌های صوتی فشرده‌نشده PCM، MP3 و FLAC پشتیبانی می‌کرد. از آنجا که فرمت‌های PCM و FLAC پهنای باند بسیار زیادی را در پروتکل ESP-NOW اشغال می‌کنند و فرمت MP3 نیز برای انتقال صوت بلادرنگ (به دلیل تأخیر بالا) مناسب نیست، کدک استاندارد و قدیمی G.722 به عنوان بهترین جایگزین انتخاب شده است.

کلیدواژه اصلی در این پروژه «صدای HD» است؛ چرا که انتقال صوت دوطرفه بر بستر پروتکل بی‌سیم ESP-NOW پیش از این نیز در پروژه‌هایی مانند esp32-walkie-talkie (توسط Atomic14 در سال ۲۰۱۹) و اخیراً در پروژه مستندسازی‌شده Adafruit ESP-NOW Walkie-Talkie پیاده‌سازی شده بود، اما آن راهکارها معمولاً بر پایه کدک کیفیت پایین‌تر G.711 یا صوت فشرده‌نشده کار می‌کردند.

کتابخانه PCMFlow722 و کدک G.722 امکان تجربه صدای HD را با «صوت ۷ کیلوهرتز در نرخ نمونه‌برداری ۱۶ کیلوهرتز، با استفاده از همان پهنای باند ۶۴ کیلوبیت بر ثانیه‌ای کدک G.711 (اندازه بسته مشابه، اما با دو برابر پهنای باند صوتی)» فراهم می‌کنند، همان‌طور که Tanaka توضیح داده است. جدول زیر کدک‌ها و کتابخانه‌های G.711، G.722 و Opus را با هم مقایسه می‌کند.

PCMFlowG711 PCMFlowG722 (this lib) PCMFlowOpus
Audio band narrowband (8 kHz / ≤ 3.4 kHz) wideband (16 kHz / ≤ 7 kHz) narrow / wide / fullband (8–48 kHz)
Bitrate (voice) 64 kbps fixed 64 kbps fixed (Mode 1) 16–32 kbps typical
Compression vs raw 16-bit PCM 10–15×
Codec flash footprint < 4 KB ~10 KB ~150–180 KB
Codec CPU negligible low non-trivial on M0/M3-class MCUs
Patent / license complexity none (1972 standard, expired) none (1988 standard, expired); core is Public Domain royalty-free patent grant, BSD-3-Clause source
Quality toll-grade telephony HD voice (wideband telephony) wideband / fullband, far better

اگرچه کدک Opus پهنای باند کمتر و کیفیت صوتی تمام‌باند (Full-band) را ارائه می‌دهد، اما کدک صوتی G.722 پیچیدگی ریاضی بسیار کمتری داشته و به منابع سخت‌افزاری جزیی‌تری (از نظر حافظه فلش و مگاهرتز پردازنده) نیاز دارد. این ویژگی‌ها، G.722 را برای پروتکل ESP-NOW ایده‌آل می‌کند؛ زیرا این پروتکل بارهای داده (Payloads) را حداکثر تا ۲۵۰ بایت حمل می‌کند. یک فریم صوتی ۲۰ میلی‌ثانیه‌ای G.722 در فرکانس ۱۶ کیلوهرتز، دقیقاً ۱۶۰ بایت داده تولید می‌کند که با حجم دیتای G.711 برابر است اما کیفیتی دو برابر دارد؛ این در حالی است که فرمت خام PCM تک‌کاناله ۱۶ بیتی با فرکانس ۱۶ کیلوهرتز به ۶۴۰ بایت فضا نیاز دارد (کدک G.722 فشرده‌سازی ۴ برابری انجام می‌دهد).

EspNowTransceiver

این کتابخانه یک انکودر G.722 (برای فشرده‌سازی دیتای PCM ۱۶ کیلوهرتز به G.722) و یک دیکودر (برای بازگرداندن داده‌ها به PCM) را ارائه می‌دهد. اگر می‌خواهید این قابلیت را روی سخت‌افزار خود آزمایش کنید، نمونه کد (اسکچ آردوینو) EspNowTransceiver.ino بهترین گزینه برای شروع است. این کد یک فرستنده-گیرنده صدای HD نیمه‌دوطرفه بر بستر ESP-NOW را ایجاد می‌کند که در آن، یک فریمور واحد به صورت هم‌زمان هم در نقش فرستنده و هم در نقش گیرنده عمل می‌کند.

این پروژه بر روی برد مدل M5Stack Core2 مجهز به SoC ESP32، هشت مگابایت PSRAM و ۱۶ مگابایت SPI flash، به همراه یک نمایشگر کوچک ۲ اینچی برای نمایش کانال ESP-NOW، یک اسپیکر ۱ وات (1W-0928) و یک میکروفون SPM4123 تست شده است. تا زمانی که دکمه A نگه داشته شود، صدا از طریق ESP-NOW برای یک یا چند دستگاه Core2 پخش می‌شود و در سایر مواقع، دستگاه‌ها در حالت گیرنده صوتی قرار دارند.

این پروژه به‌طور موفقیت‌آمیز روی برد توسعه M5Stack Core2 تست شده است که از مشخصات زیر بهره می‌برد:

  • تراشه اصلی: SoC ESP32
  • حافظه: ۸ مگابایت حافظه PSRAM و ۱۶ مگابایت SPI Flash
  • رابط کاربری: نمایشگر کوچک ۲ اینچی (برای نمایش کانال فرکانسی ESP-NOW)
  • تجهیزات صوتی: یک عدد اسپیکر ۱ وات (مدل 1W-0928) و یک عدد میکروفون اختصاصی SPM4123

در سناریوی عملی، تا زمانی که کاربر دکمه A را روی برد فشرده نگه دارد، سیگنال صوتی از طریق پروتکل ESP-NOW برای یک یا چند دستگاه Core2 دیگر پخش می‌شود؛ در سایر مواقع، تمامی دستگاه‌ها به صورت خودکار در حالت گیرنده (شنونده) صوتی قرار می‌گیرند.

اطلاعات
51
1
1
اشتراک و حمایت
profile نویسنده: 0x7a657573 متخصص الکترونیک

من اون دیوونه‌ام که وقتی بورد روشن نمی‌شه، ذوق می‌کنم؛ یعنی یه شب تا صبح قراره با منبع تغذیه و لاجیک آنالایزر عشق کنم! آدما قهوه می‌خورن که بیدار بمونن، ولی من بیدار می‌مونم تا بفهمم این بورد چرا باهام قهر کرده! زندگی من یه لوپ بی‌نهایته بین باگ و دیباگ... با چاشنی یه کم امید و یه عالمه دیوونگی!


مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

profile
مهدی یوسفی گفت :
۱۴۰۵-۰۳-۱۳ ۰۹:۱۴

SPM1423 درسته

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله