Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

กำหนดประเภทของไฟล์เสียงโดยใช้ Python (sndhdr)


โมดูล sndhdr ในไลบรารีมาตรฐานของ Python มีฟังก์ชันยูทิลิตี้ที่อ่านประเภทของข้อมูลเสียงที่อยู่ในไฟล์ ฟังก์ชันส่งคืน namedtuple() ซึ่งมีคุณลักษณะห้าประการ

ประเภทไฟล์ สตริงที่แสดง 'aifc', 'aiff', 'au', 'hcom', 'sndr', 'sndt', 'voc', 'wav', '8svx', 'sb', 'ub' หรือ 'ul'.
อัตราเฟรม Sampling_rate จะเป็นค่าจริงหรือ 0 หากไม่ทราบหรือถอดรหัสยาก
nchannels จำนวนช่องหรือ 0 ถ้ากำหนดไม่ได้หรือค่าที่ถอดรหัสยาก
nframes จำนวนเฟรมหรือ -1
ความกว้าง bits_per_sample จะเป็นขนาดตัวอย่างเป็นบิตหรือ 'A' สำหรับ A-LAW หรือ 'U' สำหรับ u-LAW

ฟังก์ชันในโมดูล sndhdr

sndhdr.what()

ฟังก์ชันนี้กำหนดประเภทของข้อมูลเสียงที่เก็บไว้ในชื่อไฟล์โดยใช้ whathdr() หากสำเร็จ ให้ส่งกลับ namedtuple ตามที่อธิบายไว้ข้างต้น มิฉะนั้น จะไม่มีการส่งคืน

sndhdr.whathdr()

ฟังก์ชันนี้กำหนดประเภทของข้อมูลเสียงที่จัดเก็บไว้ในไฟล์ตามส่วนหัวของไฟล์ ฟังก์ชันนี้ส่งคืน namedtuple ตามที่อธิบายไว้ข้างต้นเกี่ยวกับความสำเร็จหรือไม่มี

ตัวอย่าง

>>> import sndhdr
>>> sndhdr.whathdr("sample.wav")
SndHeaders(filetype = 'wav', framerate = 44100, nchannels = 1, nframes = 99999, sampwidth = 16)
>>> sndhdr.whathdr("sample.aiff")
SndHeaders(filetype = 'aiff', framerate = 8000, nchannels = 1, nframes = 271200, sampwidth = 16)
>>> sndhdr.whathdr("sample.au")
SndHeaders(filetype = 'au', framerate = 8000, nchannels = 1, nframes = 103397.0, sampwidth = 'U')