Eine Anleitung zur Verwendung der Python-Audioverarbeitungsbibliothek

WBOY
Freigeben: 2024-01-22 11:30:07
Original
1109 Leute haben es durchsucht

Eine Anleitung zur Verwendung der Python-Audioverarbeitungsbibliothek

Audioverarbeitung ist ein wichtiger Zweig im Multimediabereich. Neben der Musikindustrie ist sie auch eine wesentliche Fähigkeit in der künstlichen Intelligenz, der Mensch-Computer-Interaktion und anderen Bereichen. In Python wird die Audioverarbeitungsbibliothek relativ häufig verwendet und kann uns bei der Audiosammlung, -verarbeitung und -analyse helfen. In diesem Artikel werden einige häufig verwendete Python-Audioverarbeitungsbibliotheken und deren Verwendung vorgestellt.

1. PyAudio

PyAudio ist ein Python-Modul, das uns bei der Implementierung von Funktionen wie der Audiosammlung und -wiedergabe in Python helfen kann. Es unterstützt mehrere Betriebssysteme und kann nicht nur auf Windows-Systemen, sondern auch auf Linux und Mac OS X verwendet werden. Mit PyAudio können wir ganz einfach Audiodateien lesen und schreiben sowie Audio in Echtzeit aufnehmen und abspielen.

Die Installation von PyAudio ist sehr einfach, Sie müssen es nur über den pip-Befehl installieren:

pip install pyaudio
Nach dem Login kopieren

Das Folgende ist ein einfaches Beispiel, das zeigt, wie PyAudio zum Lesen von Audiodateien verwendet wird:

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()
Nach dem Login kopieren

Der obige Code verwendet zuerst die Wave Öffnen Sie dann mit dem PyAudio-Modul den Audiostream, lesen Sie die Daten in der Audiodatei und schreiben Sie sie in den Audiostream. Schließen Sie abschließend den Audiostream und PyAudio, wenn Sie mit der Audiowiedergabe fertig sind.

2. SciPy

SciPy ist eine Python-Bibliothek für wissenschaftliches Rechnen. Sie unterstützt eine Vielzahl wissenschaftlicher Anwendungen, einschließlich Signalverarbeitung, Bildverarbeitung, Optimierung usw. Bei der Audioverarbeitung verwenden wir normalerweise das Signalmodul in SciPy, um Signalverarbeitungsvorgänge wie Filterung durchzuführen.

Die Installation von SciPy ist ebenfalls sehr einfach. Verwenden Sie einfach den Befehl pip, um es zu installieren:

pip install scipy
Nach dem Login kopieren

Das Folgende ist ein einfaches Beispiel, das zeigt, wie SciPy zum Filtern von Audiodaten verwendet wird:

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))
Nach dem Login kopieren

Im obigen Code wird das WAV-Modul verwendet Um Original-Audiodaten zu lesen, erstellen Sie dann einen Tiefpassfilter und verwenden Sie die Funktion signal.lfilter, um die Originaldaten zu filtern. Verwenden Sie abschließend das WAV-Modul, um die verarbeiteten Audiodaten in die Ausgabedatei zu schreiben.

3. LibROSA

LibROSA ist eine Python-Bibliothek für die Musik- und Audioanalyse. Sie unterstützt mehrere Audiodateiformate und bietet viele Funktionen zur Verarbeitung von Audiodaten. Mit LibROSA können wir problemlos Vorgänge wie die Extraktion von Audiomerkmalen, die Verarbeitung und Analyse von Audiosignalen durchführen. Darüber hinaus kapselt LibROSA auch häufig verwendete Algorithmen zur Merkmalsextraktion, wie z. B. Audio-Zeitbereichs- und Frequenzbereichsanalyse, Mel-Frequenzfilterbank, Mel-Cepstrum, MFCC usw.

LibROSA-Installationsmethode:

pip install librosa
Nach dem Login kopieren

Das Folgende ist ein einfaches Beispiel, das zeigt, wie LibROSA für die Audioanalyse verwendet wird:

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()
Nach dem Login kopieren

Verwenden Sie im obigen Code die Funktion librosa.load, um Audiodaten zu lesen, und verwenden Sie dann librosa.stft. librosa.feature. Funktionen wie melspectrogram und librosa.feature.mfcc extrahieren Features aus dem Audio und zeigen die verarbeitete Audio-Feature-Map an.

Zusammenfassung

In diesem Artikel werden drei häufig verwendete Python-Audioverarbeitungsbibliotheken vorgestellt, darunter PyAudio, SciPy und LibROSA, und deren Verwendung demonstriert. Diese Bibliotheken können problemlos Funktionen wie die Audiosammlung, -verarbeitung und -analyse implementieren. Wir hoffen, Lesern, die die Audioverarbeitung erlernen, etwas Hilfe zu bieten.

Das obige ist der detaillierte Inhalt vonEine Anleitung zur Verwendung der Python-Audioverarbeitungsbibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!