Dengan perkembangan teknologi digital yang berterusan, pemprosesan audio telah menjadi keperluan biasa, sama ada dalam industri muzik, pengecaman pertuturan, pembesar suara pintar atau bidang lain. Dalam Python, banyak tugas pemprosesan audio boleh dicapai dengan mudah menggunakan ungkapan biasa, seperti mengekstrak maklumat audio tertentu atau mengubah suai format fail audio. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pemprosesan audio.
Apabila menggunakan ungkapan biasa Python untuk memproses audio, anda perlu menggunakan beberapa perpustakaan tertentu. Antaranya, perpustakaan yang paling biasa digunakan ialah perpustakaan re, os dan wave. Pustaka semula digunakan untuk pemprosesan ungkapan biasa, perpustakaan os boleh digunakan untuk operasi laluan fail, dan perpustakaan gelombang ialah perpustakaan standard dalam Python untuk membaca dan menulis fail audio format .wav.
import semula
import os
gelombang import
Kadangkala, anda perlu mengekstrak maklumat khusus daripada fail audio Maklumat seperti kadar sampel, bilangan saluran, kedalaman bit, dsb. Maklumat ini boleh diperolehi dengan membaca maklumat pengepala fail audio. Berikut ialah contoh kod yang boleh digunakan untuk membaca maklumat pengepala fail .wav:
dengan wave.open('audio.wav', 'rb') sebagai f:
frames = f.readframes(-1) sample_rate = f.getframerate() num_channels = f.getnchannels() sample_width = f.getsampwidth() print("采样率: {} Hz".format(sample_rate)) print("通道数: {}".format(num_channels)) print("位深度: {} bytes".format(sample_width))
Apabila memproses audio, kadangkala anda perlu mengubah suai format fail audio, seperti menukar fail .mp3 kepada .wav. Ini boleh dicapai menggunakan kelas AudioSegment dalam pustaka pydub. Berikut ialah sekeping kod untuk menukar fail .mp3 kepada fail format .wav:
daripada pydub import AudioSegment
bunyi = AudioSegment.from_mp3("audio.mp3")
sound.export("audio.wav", format="wav")
Kadangkala, anda perlu menulis atur cara untuk Cari fail audio tertentu. Pada masa ini, anda perlu menggunakan ungkapan biasa untuk padanan rentetan. Berikut ialah sekeping kod yang mencari fail dengan sambungan .wav dalam direktori yang ditentukan:
path = r"C:Usersusernamemusic"
pattern = re.compile(r".*.wav ")
untuk nama fail dalam os.listdir(path):
if pattern.match(filename): print(filename)
Jika anda perlu mencari dan menggantikan dalam audio nama fail Untuk menggantikan rentetan tertentu, anda juga boleh menggunakan ungkapan biasa. Berikut ialah sekeping kod yang mencari nama fail audio yang mengandungi rentetan "rock" dalam folder tertentu dan menggantikannya dengan rentetan "pop":
path = r"C:Usersusernamemusic"
untuk nama fail dalam os.listdir(path):
if re.search(r"rock", filename): new_filename = re.sub(r"rock", "pop", filename) os.rename(os.path.join(path, filename), os.path.join(path, new_filename))
Ringkasan
Di atas ialah beberapa kaedah biasa menggunakan ungkapan biasa Python untuk pemprosesan audio. Melalui penggunaan ekspresi biasa yang fleksibel, banyak operasi automatik boleh dilaksanakan dalam pemprosesan audio untuk meningkatkan kecekapan kerja. Perlu diingat bahawa apabila melakukan pemprosesan audio, undang-undang dan peraturan yang berkaitan harus dipatuhi untuk mengelakkan pelanggaran hak cipta dan hak lain orang lain.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pemprosesan audio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!