یک بافر حلقه و برخی از توابع کاربردی را برای آماده سازی نمونه های صوتی ورودی تعریف می کند.
یک بافر حلقه برای نگهداری داده های صوتی ورودی نگهداری می کند. کلاینتها میتوانند دادههای صوتی ورودی را از طریق روشهای «بار» تغذیه کنند و از طریق روش «getTensorBuffer» به نمونههای صوتی انبوه دسترسی داشته باشند.
توجه داشته باشید که این کلاس فقط میتواند صدای ورودی را در Float (در AudioFormat.ENCODING_PCM_16BIT
) یا Short (در AudioFormat.ENCODING_PCM_FLOAT
) کنترل کند. در داخل، تمام نمونه های صوتی را در رمزگذاری PCM Float تبدیل و ذخیره می کند.
استفاده معمولی در Kotlin
val tensor = TensorAudio.create(format, modelInputLength) tensor.load(newData) interpreter.run(tensor.getTensorBuffer(), outputBuffer);
نمونه دیگری از استفاده با AudioRecord
val tensor = TensorAudio.create(format, modelInputLength) Timer().scheduleAtFixedRate(delay, period) { tensor.load(audioRecord) interpreter.run(tensor.getTensorBuffer(), outputBuffer) }
کلاس های تو در تو
کلاس | TensorAudio.TensorAudioFormat | چند ثابت را در بر می گیرد که فرمت نمونه های صوتی ورودی را توصیف می کند، یعنی تعداد کانال ها و نرخ نمونه. |
روش های عمومی
تنسور صوتی استاتیک | ایجاد (فرمت AudioFormat، int sampleCounts) یک نمونه TensorAudio با بافر حلقه ایجاد می کند که اندازه آن sampleCounts * format.getChannelCount() است. |
تنسور صوتی استاتیک | ایجاد (قالب TensorAudio.TensorAudioFormat ، int sampleCounts) یک نمونه AudioRecord با بافر حلقه ایجاد می کند که اندازه آن sampleCounts * format.getChannels() است. |
TensorAudio.TensorAudioFormat | getFormat () |
TensorBuffer | getTensorBuffer () یک TensorBuffer شناور را برمیگرداند که تمام نمونههای صوتی موجود را در AudioFormat.ENCODING_PCM_FLOAT نگه میدارد.ENCODING_PCM_FLOAT. |
خالی | بارگذاری (کوتاه[] 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 در بافر حلقه ذخیره می کند. |
روش های ارثی
روش های عمومی
ایجاد عمومی Static TensorAudio (فرمت AudioFormat، int sampleCounts)
یک نمونه TensorAudio
با بافر حلقه ایجاد می کند که اندازه آن sampleCounts
* format.getChannelCount()
است.
مولفه های
قالب | AudioFormat مورد نیاز مدل TFLite. تعداد کانال ها و نرخ نمونه را مشخص می کند. |
---|---|
تعداد نمونه | تعداد نمونه هایی که باید به مدل وارد شوند |
ایجاد TensorAudio ایستا عمومی (قالب TensorAudio.TensorAudioFormat ، نمونه شمارش داخلی)
یک نمونه AudioRecord
با بافر حلقه ایجاد می کند که اندازه آن sampleCounts
* format.getChannels()
است.
مولفه های
قالب | فرمت TensorAudio.TensorAudioFormat مورد انتظار داده های صوتی بارگیری شده در این کلاس. |
---|---|
تعداد نمونه | تعداد نمونه هایی که باید به مدل وارد شوند |
عمومی TensorBuffer getTensorBuffer ()
یک TensorBuffer
شناور را برمیگرداند که تمام نمونههای صوتی موجود را در AudioFormat.ENCODING_PCM_FLOAT
نگه میدارد.ENCODING_PCM_FLOAT یعنی مقادیر در محدوده [-1، 1] هستند.
بار خالی عمومی (کوتاه[] 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 وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است. |
---|