TensorAudio

حصة عامة TensorAudio

تحدد هذه الدالة المخزن المؤقت للرنين وبعض وظائفها لإعداد عيّنات الصوت المدخلة.

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

يُرجى العِلم أنّ هذه الفئة يمكنها فقط التعامل مع إدخال الصوت في تنسيق Float (بالتنسيق 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(تنسيق AudioFormat, int sampleCounts)
تنشئ هذه الدالة TensorAudio مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getChannelCount().
ثابت TensorAudio
create(تنسيق TensorAudio.TensorAudioFormat، int sampleCounts)
تنشئ هذه الدالة AudioRecord مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getChannels().
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer()
عرض عدد عائم TensorBuffer يتضمّن جميع العينات الصوتية المتاحة في AudioFormat.ENCODING_PCM_FLOAT، أي
void
load(short[] src)
لتحويل نماذج الإدخال الصوتية src إلى ENCODING_PCM_FLOAT، ثم تخزينه في المخزن المؤقت للرنين.
void
load(float[] src, int offsetInFloat, int sizeInFloat)
تخزين عيّنات الصوت التي تم إدخالها src في المخزن المؤقت للرنين
void
load(short[] src, int offsetInShort, int sizeInShort)
لتحويل نماذج الإدخال الصوتية src إلى ENCODING_PCM_FLOAT، ثم تخزينه في المخزن المؤقت للرنين.
int
load(تسجيل الصوت)
تعمل هذه السياسة على تحميل أحدث البيانات من AudioRecord بطريقة لا تؤدي إلى الحظر.
void
load(float[] src)
تخزين عيّنات الصوت التي تم إدخالها src في المخزن المؤقت للرنين

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

الطرق العامة

public static TensorAudio إنشاء (تنسيق تنسيق الصوت، عدد العينات الصحيحة)

تنشئ هذه الدالة TensorAudio مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getChannelCount().

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

public static TensorAudio إنشاء (تنسيق TensorAudio.TensorAudioFormat، int sampleCounts)

تنشئ هذه الدالة AudioRecord مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getChannels().

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

متاح للجميع TensorAudio.TensorAudioFormat getFormat ()

public 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 إذا تعذر نسخ الصفيفة المصدر

public int load (SoundRecord (تسجيل الصوت))

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

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

متاح للجميع إلغاء تحميل (float[] src)

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

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