TensorAudio

حصة علنية TensorAudio

تحدد المخزن المؤقت الدائري وبعض وظائف الأداة المساعدة لتحضير عينات الصوت المدخلة.

الاحتفاظ بـ Ring Buffer للحفاظ على إدخال البيانات الصوتية يمكن للعملاء إدخال البيانات الصوتية عبر طرق "التحميل" والوصول إلى لعينات صوتية مجمّعة باستخدام طريقة getTensorBuffer.

يُرجى العلم أنّ هذه الفئة يمكنها فقط معالجة صوت الإدخال في الوضع العائم (في AudioFormat.ENCODING_PCM_16BIT) أو Shorts (باللغة 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 تلفّ بعض الثوابت التي تصف تنسيق العيّنات الصوتية الواردة، أي عدد القنوات ومعدل العينة.

الطرق العامة

ثابتة TensorAudio
create(تنسيق تنسيق الصوت، عدد نماذج عدد صحيح)
يتم إنشاء مثيل TensorAudio مع مخزن مؤقت للرنين يبلغ حجمه sampleCounts * format.getChannelCount()
ثابتة TensorAudio
create(تنسيق TensorAudio.TensorAudioFormat، عدد صحيح ضمن عينات)
تنشئ هذه الدالة مثيل AudioRecord مع مخزن مؤقت للرنين يبلغ حجمه sampleCounts × format.getChannels().
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer()
تعرض قيمة عائمة TensorBuffer تحتوي على جميع العيّنات الصوتية المتاحة في AudioFormat.ENCODING_PCM_FLOAT، أي.
فراغ
load(short[] src)
تحويل عيّنات الإدخال الصوتي src إلى ENCODING_PCM_FLOAT، ثم تخزينها في الحلقة المورد الاحتياطي.
فراغ
load(float[] src, int offsetInFloat, int sizeInFloat)
تخزين عيّنات صوت الإدخال src في المخزن المؤقت للحلقة
فراغ
load(short[] src, int offsetInShorts, int sizeInShort)
تحويل عيّنات الإدخال الصوتي src إلى ENCODING_PCM_FLOAT، ثم تخزينها في الحلقة المورد الاحتياطي.
int
load(سجلّ AudioRecord)
يتم تحميل أحدث البيانات من "AudioRecord" بطريقة لا تؤدي إلى الحظر.
فراغ
load(float[] src)
تخزين عيّنات صوت الإدخال src في المخزن المؤقت للحلقة

الطرق المكتسبة

الطرق العامة

علنية ثابتة TensorAudio إنشاء (تنسيق الصوت، عدد عينات البيانات)

يتم إنشاء مثيل TensorAudio مع مخزن مؤقت للرنين يبلغ حجمه sampleCounts * format.getChannelCount()

المعلمات
التنسيق AudioFormat الذي يتطلبه نموذج TFLite. وهي تحدد عدد القنوات ومعدل العينة.
sampleCounts عدد العينات التي سيتم إطعامها في النموذج

علنية ثابتة TensorAudio إنشاء (تنسيق TensorAudio.TensorAudioFormat، عدد صحيح عيّنات)

تنشئ هذه الدالة مثيل AudioRecord مع مخزن مؤقت للرنين يبلغ حجمه sampleCounts × format.getChannels().

المعلمات
التنسيق القيمة المتوقّعة لـ TensorAudio.TensorAudioFormat من البيانات الصوتية التي تم تحميلها في هذه الفئة.
sampleCounts عدد العينات التي سيتم إطعامها في النموذج

علنية TensorAudio.TensorAudioFormat getFormat ()

علنية TensorBuffer getTensorBuffer ()

تعرض قيمة عائمة TensorBuffer تحتوي على جميع العيّنات الصوتية المتوفّرة في AudioFormat.ENCODING_PCM_FLOAT، أي أنّ القيم تقع في النطاق [ -1, 1].

علنية فراغ تحميل (short[] 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)

يتم تحميل أحدث البيانات من "AudioRecord" بطريقة لا تؤدي إلى الحظر. فقط التوافق مع ENCODING_PCM_16BIT وENCODING_PCM_FLOAT

المعلمات
تسجيل مثال على AudioRecord
المرتجعات
  • عدد قيم الصوت التي تم التقاطها والتي يبلغ حجمها channelCount * sampleCount في حال حذف لم تكن هناك بيانات جديدة في AudioRecord أو حدث خطأ، ستعرض هذه الطريقة القيمة 0.
الرميات
IllegalArgumentException لتنسيق ترميز الصوت غير متوافق
IllegalStateException في حال تعذّر القراءة من AudioRecord

علنية فراغ تحميل (float[] src)

تخزين عيّنات صوت الإدخال src في المخزن المؤقت للحلقة

المعلمات
src يُرجى إدخال عيّنات صوتية في AudioFormat.ENCODING_PCM_FLOAT. بالنسبة إدخال متعدد القنوات، فإن الصفيفة متداخلة.