কম্পিউটার

পাইথন (aifc) ব্যবহার করে AIFF এবং AIFC ফাইলগুলি পড়ুন এবং লিখুন


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')

  1. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি করুন এবং লিখুন

  2. পাইথন openpyxl মডিউল ব্যবহার করে একটি এক্সেল ফাইল পড়ুন এবং লিখুন

  3. পাইথন দিয়ে কীভাবে একটি ফাইল রিড অ্যান্ড রাইট মোডে খুলবেন?

  4. পাইথন রিড রাইট CSV ফাইল