AudioData

صف علني AudioData

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

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

يُرجى العِلم أنّ هذه الفئة يمكنها فقط التعامل مع إدخال الصوت في تنسيق Float (بالتنسيق AudioFormat.ENCODING_PCM_16BIT) أو Shorts (باللغة 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
create(تنسيق AudioData.AudioDataFormat، int sampleCounts)
تنشئ هذه الدالة AudioRecord مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getNumOfChannels().
ثابت AudioData
create(تنسيق AudioFormat, int sampleCounts)
تنشئ هذه الدالة AudioData مثيلاً مع مخزن رنين احتياطي بحجم sampleCounts * format.getChannelCount().
float[]
getBuffer()
عرض مصفوفة عائمة تتضمن كل العينات الصوتية المتاحة في AudioFormat.ENCODING_PCM_FLOAT، أي
int
AudioData.AudioDataFormat
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 AudioData إنشاء (تنسيقAudioData.AudioDataFormat ، int sampleCounts)

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

المَعلمات
التنسيق القيمة المتوقّعة للسمة AudioData.AudioDataFormat للبيانات الصوتية التي يتم تحميلها في هذه الفئة.
sampleCounts عدد العينات.

public static AudioData إنشاء (تنسيق AudioFormat، عدد int sampleCounts)

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

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

public float[] getBuffer ()

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

public int getBufferLength ()

متاح للجميع AudioData.AudioDataFormat getFormat ()

متاح للجميع إلغاء تحميل (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. بالنسبة إلى الإدخال المتعدد القنوات، تكون الصفيفة متداخلة.