TensorAudio

کلاس عمومی TensorAudio

یک بافر حلقه و برخی از توابع کاربردی را برای آماده سازی نمونه های صوتی ورودی تعریف می کند.

یک بافر حلقه برای نگهداری داده های صوتی ورودی نگهداری می کند. کلاینت‌ها می‌توانند داده‌های صوتی ورودی را از طریق روش‌های «بار» تغذیه کنند و از طریق روش «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
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 مورد انتظار داده های صوتی بارگیری شده در این کلاس.
تعداد نمونه تعداد نمونه هایی که باید به مدل وارد شوند

عمومی TensorAudio.TensorAudioFormat getFormat ()

عمومی 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 وارد کنید. برای ورودی چند کاناله، آرایه به هم پیوسته است.