aifc মডিউলের বিভিন্ন ফাংশন AIFF (অডিও ইন্টারচেঞ্জ ফাইল ফরম্যাট) এবং AIFF-C ফাইলগুলি পড়া এবং লেখার জন্য সমর্থন প্রদান করে। AIFF ফরম্যাট হল একটি ফাইলে ডিজিটাল অডিও নমুনা সংরক্ষণ করার জন্য। এর নতুন সংস্করণ AIFF-C-এ অডিও ডেটা সংকুচিত করার ক্ষমতা রয়েছে
অডিও ফাইলে অডিও ডেটা বর্ণনা করার পরামিতিগুলির সংখ্যা রয়েছে৷
-
স্যাম্পলিং রেট বা ফ্রেম রেট:প্রতি সেকেন্ডে কতবার শব্দের নমুনা নেওয়া হয়েছে।
-
চ্যানেলের সংখ্যা:অডিওটি মনো, স্টেরিও বা কোয়াড্রো কিনা তা নির্দেশ করে৷
৷ -
ফ্রেম:প্রতি চ্যানেলে একটি নমুনা থাকে।
-
নমুনার আকার:প্রতিটি নমুনার বাইটে আকার।
এইভাবে একটি ফ্রেমে চ্যানেল * স্যাম্পল সাইজ বাইট থাকে। 1 সেকেন্ডের অডিও ডেটা হল চ্যানেল * নমুনা আকার * ফ্রেমরেট বাইট।
নিম্নলিখিত ফাংশনগুলি aifc মডিউলে সংজ্ঞায়িত করা হয়েছে:
aifc.open()
এই ফাংশনটি একটি AIFF বা AIFF-C ফাইল খোলে এবং মোডের উপর নির্ভর করে অডিও ডেটা পড়ার/লেখার জন্য একটি অবজেক্ট ইন্সট্যান্স ফেরত দেয়৷ ফাইলটি পড়ার জন্য খোলা থাকলে এটি অবশ্যই 'r' বা 'rb' হতে হবে৷ লেখার জন্য ফাইলটি খোলার সময় এটি 'w' বা 'wb' হওয়া উচিত।
রাইট মোড সহ অবজেক্ট নিম্নলিখিত ফাংশন ব্যবহার করে
aiff() | একটি AIFF ফাইল তৈরি করুন। |
aifc() | একটি AIFF-C ফাইল তৈরি করুন। |
setchannels() | অডিও ফাইলে চ্যানেলের সংখ্যা উল্লেখ করুন। |
setsampwidth() | অডিও নমুনার বাইটে আকার নির্দিষ্ট করুন। |
সেটফ্রেমরেট() | প্রতি সেকেন্ডে ফ্রেমে স্যাম্পলিং ফ্রিকোয়েন্সি নির্দিষ্ট করুন। |
setnframes() | অডিও ফাইলে যে ফ্রেমের সংখ্যা লিখতে হবে তা নির্দিষ্ট করুন। |
setcomptype() | কম্প্রেশন প্রকার উল্লেখ করুন। AIFF ফাইলের জন্য কম্প্রেশন সম্ভব নয়। কম্প্রেশন প্রকার সমর্থিত - b'NONE', b'ULAW', b'ALAW', b'G722'। |
setparams() | একবারে উপরের সমস্ত প্যারামিটার সেট করুন। যুক্তি হল একটি টিপল যা বিভিন্ন পরামিতি নিয়ে গঠিত। |
লেখার ফ্রেম() | আউটপুট ফাইলে ডেটা লিখুন। টি |
writeframesraw() | যেমন writeframes(), অডিও ফাইলের হেডার আপডেট করা হয় না। |
অনুসরণ করা প্রোগ্রাম একটি AIFF ফাইল তৈরি করে
import aifc, struct sampleRate = 44100.0 # hertz duration = 1.0 # seconds frequency = 440.0 # hertz obj = aifc.open('sound.aiff','w') obj.setnchannels(1) # mono obj.setsampwidth(2) obj.setframerate(sampleRate) for i in range(99999): value = random.randint(-32767, 32767) data = struct.pack('<h', value) obj.writeframesraw( data ) obj.close()
aiff বা aiff-c রিড অবজেক্ট নিম্নলিখিত ফাংশন ব্যবহার করে
getchannels() | অডিও চ্যানেলের সংখ্যা ফেরত দিন (মনোর জন্য 1, স্টেরিওর জন্য 2)। |
getsampwidth() | স্বতন্ত্র নমুনার বাইটে আকার ফেরত দিন। |
getframerate() | স্যাম্পলিং রেট ফেরত দিন (প্রতি সেকেন্ডে অডিও ফ্রেমের সংখ্যা)। |
getnframes() | ফাইলটিতে অডিও ফ্রেমের সংখ্যা ফেরত দিন। |
getcomptype() | অডিও ফাইলে ব্যবহৃত কম্প্রেশনের ধরন বর্ণনা করে দৈর্ঘ্য 4 এর একটি বাইট অ্যারে ফেরত দিন। |
getparams() | একটি nametuple() প্রদান করে (channels, sampwidth, framerate, nframes, comptype, compname) |
রিডফ্রেম() | অডিও ফাইল থেকে পরবর্তী nframes ফ্রেমগুলি পড়ুন এবং ফেরত দিন। |
সেটপোস(পোস) | নির্দিষ্ট ফ্রেম নম্বরটি সন্ধান করুন৷ |
এই ফাংশনগুলি পঠনযোগ্য এবং লেখার যোগ্য aiff অবজেক্টের জন্য উপলব্ধ:
রিওয়াইন্ড() | পড়া পয়েন্টার রিওয়াইন্ড করুন। পরবর্তী readframes() শুরু থেকে শুরু হবে. |
বলো() | বর্তমান ফ্রেম নম্বরটি ফেরত দিন। |
বন্ধ() | AIFF ফাইল বন্ধ করুন। এই পদ্ধতিতে কল করার পরে, বস্তুটি আর ব্যবহার করা যাবে না। |
উদাহরণ
অনুসরণ করা প্রোগ্রাম aiff ফাইলের বৈশিষ্ট্যগুলি পড়ে
import aifc obj = aifc.open('sound.aiff','r') print( "Number of channels",obj.getnchannels()) print ( "Sample width",obj.getsampwidth()) print ( "Frame rate.",obj.getframerate()) print ("Number of frames",obj.getnframes()) print ( "parameters:",obj.getparams()) obj.close()
আউটপুট
Number of channels 1 Sample width 2 Frame rate. 44100 Number of frames 99999 parameters: _aifc_params(nchannels=1, sampwidth=2, framerate=44100, nframes=99999, comptype=b'NONE', compname=b'not compressed')