تحدد المخزن المؤقت الدائري وبعض وظائف الأداة المساعدة لتحضير عينات الصوت المدخلة.
الاحتفاظ بـ 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 | |
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 ()
علنية فراغ تحميل (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 . بالنسبة
إدخال متعدد القنوات، فإن الصفيفة متداخلة.
|
---|