ইনপুট অডিও নমুনা প্রস্তুত করতে একটি রিং বাফার এবং কিছু ইউটিলিটি ফাংশন সংজ্ঞায়িত করে।
এটি ইনপুট অডিও ডেটা রাখার জন্য একটি রিং বাফার বজায় রাখে। ক্লায়েন্টরা `লোড` পদ্ধতির মাধ্যমে ইনপুট অডিও ডেটা ফিড করতে পারে এবং `getTensorBuffer` পদ্ধতির মাধ্যমে সমষ্টিগত অডিও নমুনাগুলি অ্যাক্সেস করতে পারে।
মনে রাখবেন যে এই ক্লাসটি শুধুমাত্র ফ্লোটে ইনপুট অডিও পরিচালনা করতে পারে ( AudioFormat.ENCODING_PCM_16BIT এ) বা ছোট ( AudioFormat.ENCODING_PCM_FLOAT এ)। অভ্যন্তরীণভাবে এটি PCM ফ্লোট এনকোডিং-এ সমস্ত অডিও নমুনা রূপান্তরিত করে এবং সঞ্চয় করে।
কোটলিনে সাধারণ ব্যবহার
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.AudioDataFormat ফরম্যাট, int samplecounts) একটি রিং বাফারের সাথে একটি AudioRecord উদাহরণ তৈরি করে যার আকার হল sampleCounts * format.getNumOfChannels() । |
| স্ট্যাটিক অডিও ডেটা | |
| ভাসা [] | getBuffer () AudioFormat.ENCODING_PCM_FLOAT অর্থাৎ সমস্ত উপলব্ধ অডিও নমুনা ধারণ করে একটি ফ্লোট অ্যারে প্রদান করে |
| int | |
| AudioData.AudioDataFormat | getFormat () |
| অকার্যকর | লোড (সংক্ষিপ্ত [] src) ইনপুট অডিও নমুনা src কে ENCODING_PCM_FLOAT এ রূপান্তর করে, তারপর রিং বাফারে সংরক্ষণ করে। |
| অকার্যকর | লোড (float[] src, int offsetInFloat, int sizeInFloat) রিং বাফারে ইনপুট অডিও নমুনা src সংরক্ষণ করে। |
| অকার্যকর | লোড (ছোট[] src, int offsetInShort, int sizeInShort) ইনপুট অডিও নমুনা src কে ENCODING_PCM_FLOAT এ রূপান্তর করে, তারপর রিং বাফারে সংরক্ষণ করে। |
| int | লোড (অডিও রেকর্ড রেকর্ড) একটি নন-ব্লকিং উপায়ে AudioRecord থেকে সর্বশেষ ডেটা লোড করে। |
| অকার্যকর | লোড (ফ্লোট[] src) রিং বাফারে ইনপুট অডিও নমুনা src সংরক্ষণ করে। |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি
পাবলিক পদ্ধতি
পাবলিক স্ট্যাটিক অডিওডেটা তৈরি ( AudioData.AudioDataFormat ফরম্যাট, int samplecounts)
একটি রিং বাফারের সাথে একটি AudioRecord উদাহরণ তৈরি করে যার আকার হল sampleCounts * format.getNumOfChannels() ।
পরামিতি
| বিন্যাস | এই ক্লাসে লোড করা অডিও ডেটার প্রত্যাশিত AudioData.AudioDataFormat । |
|---|---|
| নমুনা গণনা | নমুনার সংখ্যা। |
পাবলিক স্ট্যাটিক অডিওডেটা তৈরি করুন (অডিও ফরম্যাট ফরম্যাট, int স্যাম্পল কাউন্ট)
একটি রিং বাফারের সাথে একটি AudioData উদাহরণ তৈরি করে যার আকার হল sampleCounts * format.getChannelCount() ।
পরামিতি
| বিন্যাস | TFLite মডেলের জন্য প্রয়োজনীয় AudioFormat । এটি চ্যানেলের সংখ্যা এবং নমুনা হার সংজ্ঞায়িত করে। |
|---|---|
| নমুনা গণনা | মডেলের মধ্যে খাওয়ানোর নমুনার সংখ্যা |
পাবলিক ফ্লোট[] getBuffer ()
AudioFormat.ENCODING_PCM_FLOAT এ সমস্ত উপলব্ধ অডিও নমুনা ধারণ করে একটি ফ্লোট অ্যারে প্রদান করে।
পাবলিক int getBufferLength ()
সর্বজনীন অকার্যকর লোড (সংক্ষিপ্ত [] src)
ইনপুট অডিও নমুনা src কে ENCODING_PCM_FLOAT এ রূপান্তর করে, তারপর রিং বাফারে সংরক্ষণ করে।
পরামিতি
| src | AudioFormat.ENCODING_PCM_16BIT এ অডিও নমুনা ইনপুট করুন। মাল্টি-চ্যানেল ইনপুটের জন্য, অ্যারেটি ইন্টারলিভ করা হয়। |
|---|
সর্বজনীন অকার্যকর লোড (float[] src, int offsetInFloat, int sizeInFloat)
রিং বাফারে ইনপুট অডিও নমুনা src সংরক্ষণ করে।
পরামিতি
| src | AudioFormat.ENCODING_PCM_FLOAT এ অডিও নমুনা ইনপুট করুন। মাল্টি-চ্যানেল ইনপুটের জন্য, অ্যারেটি ইন্টারলিভ করা হয়। |
|---|---|
| offsetInFloat | src অ্যারেতে শুরুর অবস্থান |
| সাইজইনফ্লোট | কপি করা ফ্লোট মান সংখ্যা |
নিক্ষেপ করে
| অবৈধ আর্গুমেন্ট ব্যতিক্রম | অসঙ্গত অডিও বিন্যাস বা ভুল ইনপুট আকারের জন্য |
|---|
সর্বজনীন অকার্যকর লোড (সংক্ষিপ্ত [] src, int offsetInShort, int sizeInShort)
ইনপুট অডিও নমুনা src কে ENCODING_PCM_FLOAT এ রূপান্তর করে, তারপর রিং বাফারে সংরক্ষণ করে।
পরামিতি
| src | AudioFormat.ENCODING_PCM_16BIT এ অডিও নমুনা ইনপুট করুন। মাল্টি-চ্যানেল ইনপুটের জন্য, অ্যারেটি ইন্টারলিভ করা হয়। |
|---|---|
| offsetInShort | src অ্যারেতে শুরুর অবস্থান |
| সাইজ ইনশর্ট | কপি করা ছোট মান সংখ্যা |
নিক্ষেপ করে
| অবৈধ আর্গুমেন্ট ব্যতিক্রম | যদি উৎস অ্যারে অনুলিপি করা যাবে না |
|---|
পাবলিক int লোড (অডিও রেকর্ড রেকর্ড)
একটি নন-ব্লকিং উপায়ে AudioRecord থেকে সর্বশেষ ডেটা লোড করে। শুধুমাত্র ENCODING_PCM_16BIT এবং ENCODING_PCM_FLOAT সমর্থন করে৷
পরামিতি
| রেকর্ড | AudioRecord এর একটি উদাহরণ |
|---|
রিটার্নস
- ক্যাপচার করা অডিও মানগুলির সংখ্যা যার আকার হল
channelCount * sampleCount। অডিও রেকর্ডে কোনো নতুন ডেটা না থাকলে বা কোনো ত্রুটি দেখা দিলে, এই পদ্ধতিটি 0 ফেরত দেবে।
নিক্ষেপ করে
| অবৈধ আর্গুমেন্ট ব্যতিক্রম | অসমর্থিত অডিও এনকোডিং বিন্যাসের জন্য |
|---|---|
| অবৈধ রাজ্য ব্যতিক্রম | যদি AudioRecord থেকে পড়া ব্যর্থ হয় |
পাবলিক ভয়েড লোড (ফ্লোট[] src)
রিং বাফারে ইনপুট অডিও নমুনা src সংরক্ষণ করে।
পরামিতি
| src | AudioFormat.ENCODING_PCM_FLOAT এ অডিও নমুনা ইনপুট করুন। মাল্টি-চ্যানেল ইনপুটের জন্য, অ্যারেটি ইন্টারলিভ করা হয়। |
|---|