AudioData

حصة علنية AudioData

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

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

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

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

الطرق العامة

علنية ثابتة AudioData إنشاء (تنسيق AudioData.AudioDataFormat (العدد صحيح للعينات)

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

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

علنية ثابتة AudioData إنشاء (تنسيق AudioFormat، int sampleCounts)

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

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

علنية float[] getBuffer ()

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

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

علنية تدخُّل دفاعي تحميل (سجلّ AudioRecord)

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

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

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

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

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