AudioData

पब्लिक क्लास AudioData

इनपुट ऑडियो सैंपल तैयार करने के लिए, रिंग बफ़र और कुछ यूटिलिटी फ़ंक्शन तय करता है.

यह इनपुट ऑडियो डेटा को होल्ड करने के लिए, रिंग बफ़र को बनाए रखता है. क्लाइंट, `load` के तरीकों की मदद से ऑडियो डेटा फ़ीड कर सकते हैं. साथ ही, `getTensorBuffer` तरीके से, एग्रीगेट किए गए ऑडियो सैंपल ऐक्सेस कर सकते हैं.

ध्यान दें कि यह क्लास सिर्फ़ फ़्लोट (AudioFormat.ENCODING_PCM_16BIT में) या शॉर्ट वीडियो (AudioFormat.ENCODING_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)
sampleCounts * format.getNumOfChannels() साइज़ वाले रिंग बफ़र के साथ AudioRecord इंस्टेंस बनाता है.
स्टैटिक AudioData
create(AudioFormat फ़ॉर्मैट, int sampleCounts)
sampleCounts * format.getChannelCount() साइज़ वाले रिंग बफ़र के साथ AudioData इंस्टेंस बनाता है.
float[]
getBuffer()
AudioFormat.ENCODING_PCM_FLOAT में उपलब्ध सभी ऑडियो सैंपल को होल्ड करते हुए, एक फ़्लोट अरे दिखाता है. इसका मतलब है कि
int
AudioData.AudioDataFormat
void
load(short[] src)
यह इनपुट ऑडियो सैंपल src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, उसे रिंग बफ़र में सेव करता है.
void
load(फ़्लोट[] src, int ऑफ़सेटInFloat, intsizeInFloat)
src इनपुट ऑडियो सैंपल को रिंग बफ़र में सेव करता है.
void
load(short[] src, int ऑफ़सेटInShort, intsizeInShort)
यह इनपुट ऑडियो सैंपल src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, उसे रिंग बफ़र में सेव करता है.
int
load(AudioRecord रिकॉर्ड)
यह सुविधा, AudioRecord से मिले नए डेटा को बिना ब्लॉक किए लोड करती है.
void
load(फ़्लोट[] src)
src इनपुट ऑडियो सैंपल को रिंग बफ़र में सेव करता है.

इनहेरिट किए गए तरीके

सार्वजनिक तरीके

सार्वजनिक स्टैटिक AudioData बनाएं (AudioData.AudioDataFormat फ़ॉर्मैट, int sampleCounts)

sampleCounts * format.getNumOfChannels() साइज़ वाले रिंग बफ़र के साथ AudioRecord इंस्टेंस बनाता है.

पैरामीटर
फ़ॉर्मैट इस क्लास में लोड किया गया AudioData.AudioDataFormat ऑडियो डेटा होना चाहिए.
sampleCounts सैंपल की संख्या.

सार्वजनिक स्टैटिक AudioData बनाएं (ऑडियो फ़ॉर्मैट फ़ॉर्मैट, int sampleCounts)

sampleCounts * format.getChannelCount() साइज़ वाले रिंग बफ़र के साथ AudioData इंस्टेंस बनाता है.

पैरामीटर
फ़ॉर्मैट TFLite मॉडल के लिए ज़रूरी AudioFormat. इससे, चैनलों की संख्या और सैंपल रेट के बारे में पता चलता है.
sampleCounts मॉडल में दिए जाने वाले सैंपल की संख्या

सार्वजनिक फ़्लोट[] getBuffer ()

AudioFormat.ENCODING_PCM_FLOAT में उपलब्ध सभी ऑडियो सैंपल को होल्ड करके, फ़्लोट अरे दिखाता है. इसका मतलब है कि वैल्यू [-1, 1] की रेंज में हैं.

Public int getBufferLength ()

सार्वजनिक AudioData.AudioDataFormat getFormat ()

Public void load (short[] src)

यह इनपुट ऑडियो सैंपल src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, उसे रिंग बफ़र में सेव करता है.

पैरामीटर
src AudioFormat.ENCODING_PCM_16BIT में ऑडियो सैंपल डालें. मल्टी-चैनल इनपुट के लिए, अरे को इंटरलीव किया जाता है.

Public void load (float[] src, int ऑफ़सेटInFloat, intsizeInFloat)

src इनपुट ऑडियो सैंपल को रिंग बफ़र में सेव करता है.

पैरामीटर
src AudioFormat.ENCODING_PCM_FLOAT में ऑडियो सैंपल डालें. मल्टी-चैनल इनपुट के लिए, अरे को इंटरलीव किया जाता है.
offsetInFloat src कलेक्शन में शुरुआती पोज़िशन
sizeInFloat कॉपी की जाने वाली फ़्लोट वैल्यू की संख्या
थ्रो
IllegalArgumentException असंगत ऑडियो प्रारूप या गलत इनपुट आकार के लिए

Public void load (short[] src, int ऑफ़सेटInShort, intsizeInShort)

यह इनपुट ऑडियो सैंपल src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, उसे रिंग बफ़र में सेव करता है.

पैरामीटर
src AudioFormat.ENCODING_PCM_16BIT में ऑडियो सैंपल डालें. मल्टी-चैनल इनपुट के लिए, अरे को इंटरलीव किया जाता है.
offsetInShort src कलेक्शन में शुरुआती पोज़िशन
sizeInShort कॉपी की जाने वाली छोटी वैल्यू की संख्या
थ्रो
IllegalArgumentException अगर सोर्स अरे को कॉपी नहीं किया जा सकता

सार्वजनिक int लोड (AudioRecord रिकॉर्ड)

यह सुविधा, AudioRecord से मिले नए डेटा को बिना ब्लॉक किए लोड करती है. यह सिर्फ़ ENCODING_PCM_16BIT और ENCODING_PCM_FLOAT के साथ काम करता है.

पैरामीटर
रिकॉर्ड करना AudioRecord का एक इंस्टेंस
लौटाए गए प्रॉडक्ट
  • कैप्चर किए गए ऐसे ऑडियो वैल्यू की संख्या जिनका साइज़ channelCount * sampleCount है. अगर AudioRecord में कोई नया डेटा नहीं था या कोई गड़बड़ी हुई है, तो यह तरीका 0 दिखाएगा.
थ्रो
IllegalArgumentException काम न करने वाले ऑडियो एन्कोडिंग फ़ॉर्मैट के लिए
IllegalStateException अगर AudioRecord से रीडिंग नहीं ली जा सकी

Public void load (float[] src)

src इनपुट ऑडियो सैंपल को रिंग बफ़र में सेव करता है.

पैरामीटर
src AudioFormat.ENCODING_PCM_FLOAT में ऑडियो सैंपल डालें. मल्टी-चैनल इनपुट के लिए, अरे को इंटरलीव किया जाता है.