یک بافر حلقه و برخی از توابع کاربردی را برای آماده سازی نمونه های صوتی ورودی تعریف می کند.
یک بافر حلقه برای نگهداری داده های صوتی ورودی نگهداری می کند. کلاینتها میتوانند دادههای صوتی ورودی را از طریق روشهای «بار» تغذیه کنند و از طریق روش «getTensorBuffer» به نمونههای صوتی انبوه دسترسی داشته باشند.
توجه داشته باشید که این کلاس فقط میتواند صدای ورودی را در Float (در AudioFormat.ENCODING_PCM_16BIT ) یا Short (در AudioFormat.ENCODING_PCM_FLOAT ) کنترل کند. در داخل، تمام نمونه های صوتی را در رمزگذاری PCM Float تبدیل و ذخیره می کند.
استفاده معمولی در Kotlin
val audioData = AudioData.create(format, modelInputLength) audioData.load(newData)
نمونه دیگری از استفاده با AudioRecord
val audioData = AudioData.create(format, modelInputLength)
Timer().scheduleAtFixedRate(delay, period) {
audioData.load(audioRecord)
}
کلاس های تو در تو
| کلاس | AudioData.AudioDataFormat | چند ثابت را در بر می گیرد که فرمت نمونه های صوتی ورودی را توصیف می کند، یعنی تعداد کانال ها و نرخ نمونه. | |
روش های عمومی
| داده های صوتی استاتیک | ایجاد (فرمت AudioData.AudioDataFormat ، int sampleCounts) یک نمونه AudioRecord با بافر حلقه ایجاد می کند که اندازه آن sampleCounts * format.getNumOfChannels() است. |
| داده های صوتی استاتیک | |
| شناور[] | getBuffer () یک آرایه شناور را برمیگرداند که تمام نمونههای صوتی موجود را در AudioFormat.ENCODING_PCM_FLOAT نگه میدارد.ENCODING_PCM_FLOAT. |
| بین المللی | |
| AudioData.AudioDataFormat | getFormat () |
| باطل | بارگذاری (کوتاه[] src) نمونه های صوتی ورودی src را به ENCODING_PCM_FLOAT تبدیل می کند، سپس آن را در بافر حلقه ذخیره می کند. |
| باطل | بار (float[] src، int offsetInFloat، int sizeInFloat) نمونه های صوتی ورودی src در بافر حلقه ذخیره می کند. |
| باطل | بار (کوتاه[] src، int offsetInShort، int sizeInShort) نمونه های صوتی ورودی src را به ENCODING_PCM_FLOAT تبدیل می کند، سپس آن را در بافر حلقه ذخیره می کند. |
| بین المللی | بارگیری (ضبط ضبط صوتی) آخرین داده ها را از AudioRecord به روشی غیر مسدود بارگیری می کند. |
| باطل | بار (float[] src) نمونه های صوتی ورودی src در بافر حلقه ذخیره می کند. |
روش های ارثی
روش های عمومی
ایجاد AudioData استاتیک عمومی (فرمت AudioData.AudioDataFormat ، نمونه شمارش داخلی)
یک نمونه AudioRecord با بافر حلقه ایجاد می کند که اندازه آن sampleCounts * format.getNumOfChannels() است.
پارامترها
| قالب | AudioData.AudioDataFormat مورد انتظار داده های صوتی بارگیری شده در این کلاس. |
|---|---|
| نمونه شمارش | تعداد نمونه ها |
ایجاد AudioData استاتیک عمومی (فرمت AudioFormat، int sampleCounts)
یک نمونه AudioData با بافر حلقه ایجاد می کند که اندازه آن sampleCounts * format.getChannelCount() است.
پارامترها
| قالب | AudioFormat مورد نیاز مدل TFLite. تعداد کانال ها و نرخ نمونه را مشخص می کند. |
|---|---|
| نمونه شمارش | تعداد نمونه هایی که باید به مدل وارد شوند |
عمومی float[] getBuffer ()
یک آرایه شناور را برمیگرداند که تمام نمونههای صوتی موجود را در AudioFormat.ENCODING_PCM_FLOAT نگه میدارد.ENCODING_PCM_FLOAT یعنی مقادیر در محدوده [-1، 1] هستند.
عمومی int getBufferLength ()
بار خالی عمومی (کوتاه[] src)
نمونه های صوتی ورودی src را به ENCODING_PCM_FLOAT تبدیل می کند، سپس آن را در بافر حلقه ذخیره می کند.
پارامترها
| src | نمونه های صوتی را در AudioFormat.ENCODING_PCM_16BIT وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است. |
|---|
بار خالی عمومی (float[] src، int offsetInFloat، int sizeInFloat)
نمونه های صوتی ورودی src در بافر حلقه ذخیره می کند.
پارامترها
| src | نمونه های صوتی را در AudioFormat.ENCODING_PCM_FLOAT وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است. |
|---|---|
| offsetInFloat | موقعیت شروع در آرایه src |
| sizeInFloat | تعداد مقادیر شناور که باید کپی شوند |
پرتاب می کند
| IllegalArgumentException | برای فرمت صوتی ناسازگار یا اندازه ورودی نادرست |
|---|
بار خالی عمومی (short[] src، int offsetInShort، int sizeInShort)
نمونه های صوتی ورودی src را به ENCODING_PCM_FLOAT تبدیل می کند، سپس آن را در بافر حلقه ذخیره می کند.
پارامترها
| src | نمونه های صوتی را در AudioFormat.ENCODING_PCM_16BIT وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است. |
|---|---|
| offsetInShort | موقعیت شروع در آرایه src |
| sizeInShort | تعداد مقادیر کوتاهی که باید کپی شوند |
پرتاب می کند
| IllegalArgumentException | اگر آرایه منبع قابل کپی نباشد |
|---|
بارگذاری عمومی (ضبط ضبط صوتی)
آخرین داده ها را از AudioRecord به روشی غیر مسدود بارگیری می کند. فقط از ENCODING_PCM_16BIT و ENCODING_PCM_FLOAT پشتیبانی می کند.
پارامترها
| رکورد | نمونه ای از AudioRecord |
|---|
برمی گرداند
- تعداد مقادیر صوتی ضبط شده که اندازه آنها
channelCount * sampleCountاست. اگر داده جدیدی در AudioRecord وجود نداشت یا خطایی رخ داد، این روش 0 را برمی گرداند.
پرتاب می کند
| IllegalArgumentException | برای فرمت کدگذاری صوتی پشتیبانی نشده |
|---|---|
| IllegalStateException | اگر خواندن از AudioRecord ناموفق بود |
بار خالی عمومی (float[] src)
نمونه های صوتی ورودی src در بافر حلقه ذخیره می کند.
پارامترها
| src | نمونه های صوتی را در AudioFormat.ENCODING_PCM_FLOAT وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است. |
|---|