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

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

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

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

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

sndhdr.what()

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

sndhdr.whathdr()

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

ตัวอย่าง

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