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 resetInFloat, int sizeInFloat)
שמירת דגימות האודיו של הקלט src במאגר הצלצולים הזמני.
void
load(short[] src, int resetInShort, int sizeInShort)
ממירה את דגימות האודיו המשמשות בקלט src ל-ENCODING_PCM_FLOAT, ואז מאחסנת אותן במאגר הנתונים הזמני.
int
load(הקלטת אודיו)
טוען את הנתונים האחרונים מ-AudioRecord בדרך ללא חסימה.
void
load(float[] src)
שמירת דגימות האודיו של הקלט src במאגר הצלצולים הזמני.

שיטות שעברו בירושה

שיטות ציבוריות

ציבורי סטטי TensorAudio יצירה (פורמט AudioFormat, int sampleCounts)

יצירת מכונה של TensorAudio עם מאגר נתונים זמני של טבעות שהגודל שלו הוא sampleCounts * format.getChannelCount().

פרמטרים
פורמט AudioFormat שנדרש על ידי מודל TFLite. הוא מגדיר את מספר הערוצים ואת קצב הדגימה.
sampleCounts את מספר הדגימות שצריך להזין למודל

ציבורי סטטי 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].

Public void load (short[] src)

ממירה את דגימות האודיו המשמשות בקלט src ל-ENCODING_PCM_FLOAT, ואז מאחסנת אותן במאגר הנתונים הזמני.

פרמטרים
src קלט אודיו בAudioFormat.ENCODING_PCM_16BIT. בקלט מרובה-ערוצים, המערך משולב.

Public void load (float[] src, int resetInFloat, int sizeInFloat)

שמירת דגימות האודיו של הקלט src במאגר הצלצולים הזמני.

פרמטרים
src קלט אודיו בAudioFormat.ENCODING_PCM_FLOAT. בקלט מרובה-ערוצים, המערך משולב.
offsetInFloat נקודת ההתחלה במערך src
sizeInFloat מספר הערכים הצפים להעתקה
קליעות
IllegalArgumentException בגלל פורמט אודיו לא תואם או גודל קלט שגוי

Public void load (short[] src, int resetInShort, int sizeInShort)

ממירה את דגימות האודיו המשמשות בקלט src ל-ENCODING_PCM_FLOAT, ואז מאחסנת אותן במאגר הנתונים הזמני.

פרמטרים
src קלט אודיו בAudioFormat.ENCODING_PCM_16BIT. בקלט מרובה-ערוצים, המערך משולב.
offsetInShort נקודת ההתחלה במערך src
sizeInShort מספר הערכים הקצרים שיש להעתיק
קליעות
IllegalArgumentException אם אי אפשר להעתיק את מערך המקור

Public int load (הקלטת אודיו)

טוען את הנתונים האחרונים מ-AudioRecord בדרך ללא חסימה. תמיכה ב-ENCODING_PCM_16BIT וב-ENCODING_PCM_FLOAT בלבד.

פרמטרים
הקלטה מופע של AudioRecord
החזרות
  • מספר ערכי האודיו שהוקלטו שהגודל שלהם הוא channelCount * sampleCount. אם לא היו נתונים חדשים בהקלטת האודיו או שאירעה שגיאה, השיטה הזו תחזיר את הערך 0.
קליעות
IllegalArgumentException לפורמט קידוד אודיו שאינו נתמך
IllegalStateException אם הקריאה מהקלטה נכשלה

public void load (float[] src)

שמירת דגימות האודיו של הקלט src במאגר הצלצולים הזמני.

פרמטרים
src קלט אודיו בAudioFormat.ENCODING_PCM_FLOAT. בקלט מרובה-ערוצים, המערך משולב.