पायथन के मानक पुस्तकालय में तरंग मॉड्यूल ऑडियो WAV प्रारूप के लिए एक आसान इंटरफ़ेस है। इस मॉड्यूल में फ़ंक्शन कच्चे प्रारूप में ऑडियो डेटा को ऑब्जेक्ट जैसी फ़ाइल में लिख सकते हैं और WAV फ़ाइल की विशेषताओं को पढ़ सकते हैं।
फ़ाइल को 'राइट' या रीड मोड में खोला जाता है जैसे कि बिल्ट-इन ओपन () फ़ंक्शन के साथ, लेकिन वेव मॉड्यूल में ओपन () फ़ंक्शन के साथ
wave.open()
यह फ़ंक्शन ऑडियो डेटा को पढ़ने/लिखने के लिए एक फ़ाइल खोलता है। फ़ंक्शन को दो मापदंडों की आवश्यकता होती है - पहला फ़ाइल नाम और दूसरा मोड। ऑडियो डेटा लिखने के लिए मोड 'wb' या पढ़ने के लिए 'rb' हो सकता है।
obj = wave.open('sound.wav','wb') 'आरबी' का एक मोड एक Wave_read ऑब्जेक्ट देता है, जबकि 'wb' का एक मोड Wave_write ऑब्जेक्ट देता है।
Wave_write ऑब्जेक्ट में निम्नलिखित तरीके हैं
| बंद करें () | अगर फ़ाइल वेव द्वारा खोली गई है तो उसे बंद कर दें। |
| सेटनचैनल्स() | चैनलों की संख्या निर्धारित करें। स्टीरियो चैनलों के लिए मोनो 2 के लिए 1 |
| setsampwidth() | नमूना चौड़ाई को n बाइट्स पर सेट करें। |
| सेटफ्रेमरेट () | फ़्रेम दर को n पर सेट करें। |
| सेटनफ्रेम () | फ़्रेम की संख्या को n पर सेट करें। |
| setcomptype() | संपीड़न प्रकार और विवरण सेट करें। फिलहाल, केवल संपीड़न प्रकार NONE समर्थित है, जिसका अर्थ है कोई संपीड़न नहीं। |
| सेटपरम्स () | पैरामीटर टपल को स्वीकार करता है (nचैनल्स, सैम्पविड्थ, फ्रैमरेट, nframes, comptype, compname) |
| बताएं () | फ़ाइल में वर्तमान स्थिति प्राप्त करता है |
| राइटफ्रेम रॉ () | ऑडियो फ़्रेम लिखें, बिना सुधारे। |
| लेखन फ्रेम () | ऑडियो फ़्रेम लिखें और सुनिश्चित करें कि वे सही हैं। |
निम्नलिखित कोड 99999 सेकंड की अवधि के यादृच्छिक लघु पूर्णांक बाइट्स के साथ एक WAV फ़ाइल बनाता है।
import wave, struct, math, random
sampleRate = 44100.0 # hertz
duration = 1.0 # seconds
frequency = 440.0 # hertz
obj = wave.open('sound.wav','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() Wave_read ऑब्जेक्ट विधियां
| बंद करें () | वेव मॉड्यूल द्वारा खोले जाने पर स्ट्रीम को बंद कर दें। |
| getnchannels() | ऑडियो चैनलों की संख्या लौटाता है (मोनो के लिए 1, स्टीरियो के लिए 2)। |
| getsampwidth() | नमूना चौड़ाई बाइट्स में लौटाता है। |
| getframerate() | नमूना आवृत्ति लौटाता है। |
| getnframes() | ऑडियो फ़्रेम की संख्या लौटाता है। |
| getcomptype() | संपीड़न प्रकार लौटाता है ('कोई नहीं' एकमात्र समर्थित प्रकार है)। |
| getparams() | एक नेमटुपल () (nchannels, sampwidth, framerate, nframes, comptype, compname) देता है, जो get*() मेथड्स के आउटपुट के बराबर होता है। |
| रीडफ्रेम(n) | बाइट्स ऑब्जेक्ट के रूप में ऑडियो के अधिकतम n फ़्रेमों को पढ़ता और लौटाता है। |
| रिवाइंड () | फ़ाइल पॉइंटर को ऑडियो स्ट्रीम की शुरुआत में रिवाइंड करें। |
निम्नलिखित कोड WAV फ़ाइल के कुछ मापदंडों को पढ़ता है।
import wave
obj = wave.open('sound.wav','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: _wave_params(nchannels=1, sampwidth=2, framerate=44100, nframes=99999, comptype='NONE', compname='not compressed')