इनपुट ऑडियो सैंपल तैयार करने के लिए, रिंग बफ़र और कुछ यूटिलिटी फ़ंक्शन तय करता है.
यह इनपुट ऑडियो डेटा को होल्ड करने के लिए, रिंग बफ़र को बनाए रखता है. क्लाइंट, `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)
|
स्टैटिक 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 ()
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 में ऑडियो सैंपल डालें. मल्टी-चैनल इनपुट के लिए, अरे को इंटरलीव किया जाता है.
|
---|