इनपुट ऑडियो के सैंपल तैयार करने के लिए, रिंग बफ़र और कुछ यूटिलिटी फ़ंक्शन के बारे में बताता है.
यह रिंग बफ़र को बनाए रखता है ऑडियो डेटा इनपुट करें. क्लाइंट `लोड` तरीकों का इस्तेमाल करके, ऑडियो डेटा फ़ीड कर सकते हैं. साथ ही, `getTensorBuffer` तरीके से एग्रीगेट किए गए ऑडियो सैंपल.
ध्यान दें कि यह क्लास सिर्फ़ फ़्लोट (AudioFormat.ENCODING_PCM_16BIT में) या शॉर्ट वीडियो (AudioFormat.ENCODING_PCM_FLOAT में) में इनपुट ऑडियो को हैंडल कर सकती है. यह सभी ऑडियो को अंदरूनी तौर पर बदलता है और सेव करता है
PCM फ़्लोट एन्कोडिंग में नमूने.
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(ऑडियो फ़ॉर्मैट फ़ॉर्मैट, int sampleCounts)
यह रिंग बफ़र के साथ
TensorAudio इंस्टेंस बनाता है, जिसका साइज़ sampleCounts * है
format.getChannelCount(). |
| स्टैटिक TensorAudio |
create(TensorAudio.TensorAudioFormat फ़ॉर्मैट, int sampleCounts)
|
| TensorAudio.TensorAudioFormat | |
| TensorBuffer |
getTensorBuffer()
AudioFormat.ENCODING_PCM_FLOAT में मौजूद सभी ऑडियो सैंपल को होल्ड करके वाला फ़्लोट TensorBuffer लौटाता है |
| अमान्य |
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 को रिंग बफ़र में सेव करता है. |
इनहेरिट किए गए तरीके
सार्वजनिक तरीके
सार्वजनिक स्टैटिक TensorAudio बनाएं (ऑडियो फ़ॉर्मैट फ़ॉर्मैट, int sampleCounts)
यह रिंग बफ़र के साथ TensorAudio इंस्टेंस बनाता है, जिसका साइज़ sampleCounts * है
format.getChannelCount().
पैरामीटर
| फ़ॉर्मैट | TFLite मॉडल के लिए ज़रूरी AudioFormat. यह
चैनलों की संख्या और सैंपल रेट. |
|---|---|
| sampleCounts | मॉडल में डाले जाने वाले सैंपल की संख्या |
सार्वजनिक स्टैटिक TensorAudio बनाएं (TensorAudio.TensorAudioFormat फ़ॉर्मैट, int sampleCounts)
रिंग बफ़र के साथ AudioRecord इंस्टेंस बनाता है, जिसका साइज़ sampleCounts * format.getChannels() है.
पैरामीटर
| फ़ॉर्मैट | इस क्लास में लोड किया गया अनुमानित TensorAudio.TensorAudioFormat ऑडियो डेटा. |
|---|---|
| sampleCounts | मॉडल में डाले जाने वाले सैंपल की संख्या |
सार्वजनिक TensorBuffer getTensorBuffer ()
ऐसा फ़्लोट TensorBuffer दिखाता है जिसमें AudioFormat.ENCODING_PCM_FLOAT में उपलब्ध सभी ऑडियो सैंपल होते हैं. इसका मतलब है कि वैल्यू, [-1, 1] की रेंज में होती हैं.
सार्वजनिक अमान्य लोड करें (छोटा[] सोर्स)
यह इनपुट ऑडियो के सैंपल 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 में ऑडियो के सैंपल डालें. इसके लिए
मल्टी-चैनल इनपुट, अरे इंटरलीव किया हुआ है.
|
|---|