इनपुट ऑडियो के सैंपल तैयार करने के लिए, रिंग बफ़र और कुछ यूटिलिटी फ़ंक्शन के बारे में बताता है.
यह रिंग बफ़र को बनाए रखता है ऑडियो डेटा इनपुट करें. क्लाइंट `लोड` तरीकों का इस्तेमाल करके, ऑडियो डेटा फ़ीड कर सकते हैं. साथ ही, `getTensorBuffer` तरीके से एग्रीगेट किए गए ऑडियो सैंपल.
ध्यान दें कि यह क्लास सिर्फ़ फ़्लोट (AudioFormat.ENCODING_PCM_16BIT
में) या शॉर्ट वीडियो (AudioFormat.ENCODING_PCM_FLOAT
में) में इनपुट ऑडियो को हैंडल कर सकती है. यह सभी ऑडियो को अंदरूनी तौर पर कन्वर्ट करता है और सेव करता है
PCM फ़्लोट एन्कोडिंग में नमूने.
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 |
बनाएं(AudioData.AudioDataFormat फ़ॉर्मैट, int sampleCounts)
रिंग बफ़र के साथ
AudioRecord इंस्टेंस बनाता है, जिसका साइज़ sampleCounts * format.getNumOfChannels() है. |
स्टैटिक AudioData | |
float[] |
getBuffer()
ऐसा फ़्लोट अरे दिखाता है जिसमें
AudioFormat.ENCODING_PCM_FLOAT में सभी उपलब्ध ऑडियो सैंपल होते हैं. |
int | |
AudioData.AudioDataFormat | |
अमान्य |
load(short[] src)
यह इनपुट ऑडियो के सैंपल
src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, इसे रिंग में सेव करता है
बफ़र. |
अमान्य |
load(float[] src, intsettingInFloat, intsizeInFloat)
इनपुट ऑडियो के सैंपल
src को रिंग बफ़र में सेव करता है. |
अमान्य |
load(short[] src, int ऑफ़सेटInShort, intsizeInShort)
यह इनपुट ऑडियो के सैंपल
src को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, इसे रिंग में सेव करता है
बफ़र. |
int |
load(AudioRecord रिकॉर्ड)
ब्लॉक न करने वाले तरीके से,
AudioRecord से नया डेटा लोड करता है. |
अमान्य |
load(float[] src)
इनपुट ऑडियो के सैंपल
src को रिंग बफ़र में सेव करता है. |
इनहेरिट किए गए तरीके
सार्वजनिक तरीके
सार्वजनिक स्टैटिक AudioData बनाएं (AudioData.AudioDataFormat फ़ॉर्मैट, int sampleCounts)
रिंग बफ़र के साथ AudioRecord
इंस्टेंस बनाता है, जिसका साइज़ sampleCounts
* format.getNumOfChannels()
है.
पैरामीटर
फ़ॉर्मैट | इस क्लास में लोड किया गया अनुमानित AudioData.AudioDataFormat ऑडियो डेटा. |
---|---|
sampleCounts | सैंपल की संख्या. |
सार्वजनिक स्टैटिक AudioData बनाएं (ऑडियो फ़ॉर्मैट फ़ॉर्मैट, int sampleCounts)
यह रिंग बफ़र के साथ AudioData
इंस्टेंस बनाता है, जिसका साइज़ sampleCounts
* है
format.getChannelCount()
.
पैरामीटर
फ़ॉर्मैट | TFLite मॉडल के लिए ज़रूरी AudioFormat . यह
चैनलों की संख्या और सैंपल रेट. |
---|---|
sampleCounts | मॉडल में डाले जाने वाले सैंपल की संख्या |
सार्वजनिक float[] getBuffer ()
ऐसा फ़्लोट अरे दिखाता है जिसमें AudioFormat.ENCODING_PCM_FLOAT
में उपलब्ध सभी ऑडियो सैंपल होते हैं. इसका मतलब है कि वैल्यू, [-1, 1] की रेंज में होती हैं.
सार्वजनिक आईएनटी getBufferLength ()
सार्वजनिक अमान्य लोड करें (छोटा[] सोर्स)
यह इनपुट ऑडियो के सैंपल src
को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, इसे रिंग में सेव करता है
बफ़र.
पैरामीटर
स्रोत | AudioFormat.ENCODING_PCM_16BIT में ऑडियो के सैंपल डालें. इसके लिए
मल्टी-चैनल इनपुट, अरे इंटरलीव किया हुआ है.
|
---|
सार्वजनिक अमान्य लोड करें (float[] src, int ऑफ़सेटInFloat, intsizeInFloat)
इनपुट ऑडियो के सैंपल src
को रिंग बफ़र में सेव करता है.
पैरामीटर
स्रोत | AudioFormat.ENCODING_PCM_FLOAT में ऑडियो के सैंपल डालें. इसके लिए
मल्टी-चैनल इनपुट, अरे इंटरलीव किया हुआ है. |
---|---|
offsetInFloat | src कलेक्शन में शुरुआती पोज़िशन |
sizeInFloat | कॉपी की जाने वाली फ़्लोट वैल्यू की संख्या |
थ्रो
IllegalArgumentException | असंगत ऑडियो प्रारूप या ग़लत इनपुट आकार के लिए |
---|
सार्वजनिक अमान्य लोड करें (short[] src, int ऑफ़सेटInShort, intsizeInShort)
यह इनपुट ऑडियो के सैंपल src
को ENCODING_PCM_FLOAT में बदलता है. इसके बाद, इसे रिंग में सेव करता है
बफ़र.
पैरामीटर
स्रोत | AudioFormat.ENCODING_PCM_16BIT में ऑडियो के सैंपल डालें. इसके लिए
मल्टी-चैनल इनपुट, अरे इंटरलीव किया हुआ है. |
---|---|
offsetInShort | src अरे में शुरुआती स्थिति |
sizeInShort | कॉपी की जाने वाली छोटी वैल्यू की संख्या |
थ्रो
IllegalArgumentException | अगर सोर्स कलेक्शन को कॉपी नहीं किया जा सकता |
---|
सार्वजनिक आईएनटी लोड करें (ऑडियो रिकॉर्ड रिकॉर्ड)
ब्लॉक न करने वाले तरीके से, AudioRecord
से नया डेटा लोड करता है. सिर्फ़
ENCODING_PCM_16BIT और ENCODING_PCM_FLOAT का समर्थन करता है.
पैरामीटर
रिकॉर्ड | AudioRecord का एक इंस्टेंस |
---|
रिटर्न
- कैप्चर किए गए ऑडियो की संख्या जिनका साइज़
channelCount * sampleCount
है. अगर आपने AudioRecord में कोई नया डेटा नहीं था या कोई गड़बड़ी हुई, इसलिए इस तरीके से वैल्यू 0 दिखेगी.
थ्रो
IllegalArgumentException | काम न करने वाले ऑडियो एन्कोडिंग फ़ॉर्मैट के लिए |
---|---|
IllegalStateException | अगर AudioRecord से पढ़ना विफल रहा हो |
सार्वजनिक अमान्य लोड करें (फ़्लोट[] src)
इनपुट ऑडियो के सैंपल src
को रिंग बफ़र में सेव करता है.
पैरामीटर
स्रोत | AudioFormat.ENCODING_PCM_FLOAT में ऑडियो के सैंपल डालें. इसके लिए
मल्टी-चैनल इनपुट, अरे इंटरलीव किया हुआ है.
|
---|