Rumah pembangunan bahagian belakang Tutorial Python Panduan untuk menggunakan perpustakaan pemprosesan audio Python

Panduan untuk menggunakan perpustakaan pemprosesan audio Python

Jan 22, 2024 am 11:30 AM
pengekodan audio perpustakaan pemprosesan audio python Pemprosesan bentuk gelombang audio

Panduan untuk menggunakan perpustakaan pemprosesan audio Python

Pemprosesan audio merupakan cabang penting dalam bidang multimedia Selain industri muzik, ia juga merupakan kemahiran penting dalam kecerdasan buatan, interaksi manusia-komputer dan bidang lain. Dalam Python, perpustakaan pemprosesan audio agak biasa digunakan, dan ia boleh membantu kami mengumpul, memproses dan menganalisis audio. Artikel ini akan memperkenalkan beberapa perpustakaan pemprosesan audio Python yang biasa digunakan dan cara menggunakannya.

1. PyAudio

PyAudio ialah modul Python yang boleh membantu kami melaksanakan fungsi pengumpulan audio dan main balik dalam Python. Ia menyokong berbilang sistem pengendalian dan boleh digunakan bukan sahaja pada sistem Windows, tetapi juga pada Linux dan Mac OS X. Menggunakan PyAudio, kami boleh membaca dan menulis fail audio dengan mudah, serta merakam dan memainkan audio dalam masa nyata.

Pemasangan PyAudio sangat mudah, anda hanya perlu memasangnya melalui arahan pip:

pip install pyaudio
Salin selepas log masuk

Berikut ialah contoh mudah yang menunjukkan cara menggunakan PyAudio untuk membaca fail audio:

import pyaudio
import wave

# 打开 wav 文件
wave_file = wave.open('test.wav', 'rb')

# 初始化 PyAudio
p = pyaudio.PyAudio()

# 打开音频流
stream = p.open(format=p.get_format_from_width(wave_file.getsampwidth()),
                channels=wave_file.getnchannels(),
                rate=wave_file.getframerate(),
                output=True)

# 读取数据并播放
data = wave_file.readframes(1024)
while data != b'':
    stream.write(data)
    data = wave_file.readframes(1024)

# 停止音频流和 PyAudio
stream.stop_stream()
stream.close()
p.terminate()

# 关闭 wav 文件
wave_file.close()
Salin selepas log masuk

Kod di atas mula-mula menggunakan gelombang modul untuk membuka fail audio Kemudian gunakan modul PyAudio untuk membuka strim audio, membaca data dalam fail audio dan menulisnya ke strim audio. Akhir sekali, tutup strim audio dan PyAudio apabila anda selesai memainkan audio.

2. SciPy

SciPy ialah perpustakaan Python untuk pengkomputeran saintifik, ia menyokong pelbagai aplikasi saintifik, termasuk pemprosesan isyarat, pemprosesan imej, pengoptimuman, dll. Dalam pemprosesan audio, kami biasanya menggunakan modul isyarat dalam SciPy untuk melaksanakan operasi pemprosesan isyarat seperti penapisan.

Pemasangan SciPy juga sangat mudah, hanya gunakan arahan pip untuk memasangnya:

pip install scipy
Salin selepas log masuk

Berikut ialah contoh mudah yang menunjukkan cara menggunakan SciPy untuk menapis data audio:

import scipy.signal as signal
import scipy.io.wavfile as wav

# 读取音频文件
rate, data = wav.read("test.wav")

# 构造滤波器
nyq_rate = rate / 2.0
cutoff_freq = 2000.0
normal_cutoff = cutoff_freq / nyq_rate
b, a = signal.butter(4, normal_cutoff, btype='lowpass')

# 滤波处理
filtered_data = signal.lfilter(b, a, data)

# 写入输出文件
wav.write("filtered_test.wav", rate, filtered_data.astype(data.dtype))
Salin selepas log masuk

Dalam kod di atas, modul wav digunakan untuk membaca data audio Asal, kemudian bina penapis laluan rendah dan gunakan fungsi signal.lfilter untuk menapis data asal. Akhir sekali, gunakan modul wav untuk menulis data audio yang diproses ke fail output.

3. LibROSA

LibROSA ialah perpustakaan Python untuk analisis muzik dan audio. Ia menyokong berbilang format fail audio dan menyediakan banyak fungsi untuk memproses data audio. Menggunakan LibROSA, kami boleh melakukan operasi dengan mudah seperti pengekstrakan ciri audio, pemprosesan isyarat audio dan analisis. Selain itu, LibROSA juga merangkum algoritma pengekstrakan ciri yang biasa digunakan, seperti domain masa audio dan analisis domain frekuensi, bank penapis frekuensi Mel, Mel cepstrum, MFCC, dsb.

Kaedah pemasangan LibROSA:

pip install librosa
Salin selepas log masuk

Berikut ialah contoh mudah yang menunjukkan cara menggunakan LibROSA untuk analisis audio:

import librosa

# 读取音频文件
y, sr = librosa.load("test.wav")

# 提取音频特征
# STFT
D = librosa.stft(y)

# 梅尔频率滤波器组 (melspectrogram)
S = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=128,
                                    fmax=8000)

# 梅尔倒谱系数 (MFCCs)
mfcc = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)

# 显示特征提取结果
import matplotlib.pyplot as plt
librosa.display.specshow(librosa.power_to_db(S, ref=np.max),
                            y_axis='mel', fmax=8000,
                            x_axis='time')

plt.colorbar(format='%+2.0f dB')
plt.title('Mel spectrogram')
plt.tight_layout()
plt.show()
Salin selepas log masuk

Dalam kod di atas, gunakan fungsi librosa.load untuk membaca data audio, dan kemudian gunakan librosa.stft, librosa.feature. Fungsi seperti melspectrogram dan librosa.feature.mfcc mengekstrak ciri daripada audio dan memaparkan peta ciri audio yang diproses.

Ringkasan

Artikel ini memperkenalkan tiga perpustakaan pemprosesan audio Python yang biasa digunakan, termasuk PyAudio, SciPy dan LibROSA, dan menunjukkan penggunaannya. Perpustakaan ini boleh melaksanakan fungsi seperti pengumpulan, pemprosesan dan analisis audio dengan mudah, saya harap mereka dapat memberikan sedikit bantuan kepada pembaca yang sedang mempelajari pemprosesan audio.

Atas ialah kandungan terperinci Panduan untuk menggunakan perpustakaan pemprosesan audio Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Apakah beberapa perpustakaan Python yang popular dan kegunaan mereka? Mar 21, 2025 pm 06:46 PM

Artikel ini membincangkan perpustakaan Python yang popular seperti Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask, dan Permintaan, memperincikan kegunaan mereka dalam pengkomputeran saintifik, analisis data, visualisasi, pembelajaran mesin, pembangunan web, dan h

Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Bagaimanakah uvicorn terus mendengar permintaan http tanpa serving_forever ()? Apr 01, 2025 pm 10:51 PM

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Bagaimana secara dinamik membuat objek melalui rentetan dan panggil kaedahnya dalam Python? Apr 01, 2025 pm 11:18 PM

Di Python, bagaimana untuk membuat objek secara dinamik melalui rentetan dan panggil kaedahnya? Ini adalah keperluan pengaturcaraan yang biasa, terutamanya jika perlu dikonfigurasikan atau dijalankan ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam Kaedah Projek dan Masalah Dikemukakan Dalam masa 10 Jam? Apr 02, 2025 am 07:18 AM

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Apakah ungkapan biasa? Apakah ungkapan biasa? Mar 20, 2025 pm 06:25 PM

Ekspresi biasa adalah alat yang berkuasa untuk memadankan corak dan manipulasi teks dalam pengaturcaraan, meningkatkan kecekapan dalam pemprosesan teks merentasi pelbagai aplikasi.

See all articles