Процессинг — важная отрасль в сфере цифровых медиа и искусственного интеллекта.,это включает в себя Аудиоиз Записывать、играть、редактироватьи Анализ и многие другие аспекты。Python Будучи мощным языком программирования, он предоставляет множество библиотек и инструментов, помогающих разработчикам выполнять обработку. В этой статье будут представлены несколько часто используемых Python Аудиобиблиотека обработки,и привести примеры соответствующих изиспользовать,чтобы помочь читателям быстро начать работу.
wave
Модуль: Обработка WAV форматировать файлPython Стандартная библиотека wave
Создан специально для обработки WAV Форматаудиодокумент。использовать wave
модуль, который вы можете читать и писать WAV файлы и выполнять основные операции с аудиоданными.
import wave
# читать WAV файл в байтах
with wave.open('path/to/audio_file.wav', 'rb') as wf:
frames = wf.readframes(n_frames)
# Сохранять байты в WAV документ
with wave.open('path/to/audio_file.wav', 'wb') as wf:
wf.setnchannels(1) # Аудиоканал (1: моно, 2: стерео)
wf.setsampwidth(2) # Ширина выборки (1: pyaudio.paInt8, 2: pyaudio.paInt16, 3: pyaudio.paInt24, 4: pyaudio.paInt32)
wf.setframerate(16000) # Частота выборки
wf.writeframes(b''.join(frames))
pyaudio
:Записыватьи Воспроизвести аудиоизбайтный потокpyaudio
Библиотека позволяет осуществлять запись в байтовый поток и Воспроизвести аудио. проходить pyaudio
,Вы можете легко взаимодействовать с аудиоустройствами.
pip install pyaudio
import pyaudio
p = pyaudio.PyAudio()
# Получить количество аудиоустройств
devices = p.get_device_count()
for i in range(devices):
device_info = p.get_device_info_by_index(i)
if device_info.get('maxInputChannels') > 0:
print(f"Микрофон: {device_info.get('name')}, индекс устройства: {device_info.get('index')}")
FORMAT = pyaudio.paInt16 # Формат образца аудио
CHANNELS = 1 # Аудиоканал (1: моно, 2: стерео)
RATE = 44100 # Частота выборки
CHUNK = 1024 # Количество кадров в буфере
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(
format=FORMAT,
channels=CHANNELS,
rate=RATE,
frames_per_buffer=CHUNK,
input=True,
)
print("Запись...")
frames = []
for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
# Сохранить запись аудио
WAVE_OUTPUT_FILENAME = "recorded_audio.wav"
with wave.open(WAVE_OUTPUT_FILENAME, 'wb') as wf:
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
print(f"Запись сохранена как {WAVE_OUTPUT_FILENAME}")
wf = wave.open(filename, 'rb')
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True) # 'output=True' Указывает, что вместо записи будет воспроизводиться аудио.
# Данные по блокамчитать
data = wf.readframes(chunk)
# Воспроизведение звука путем записи аудиоданных в потоковую передачу
while data != '':
stream.write(data)
data = wf.readframes(chunk)
# Закрыть и завершить поток
stream.close()
p.terminate()
soundfile
:упрощать WAV и MP3 Операции с файламиsoundfile
Библиотека предоставляет простой способ написания WAV и MP3 документ。этоиспользовать C язык, поэтому скорость выполнения очень высокая.
pip install soundfile
import soundfile as sf
# читать WAV документприезжать NumPy множество
wav, sample_rate = sf.read('path/to/audio_file.wav')
# Воля NumPy многие написали WAV документ
soundfile.write('path/to/audio_file.wav', wav, sample_rate)
sounddevice
:на основе PortAudio
аудио I/Osounddevice
Библиотека представляет собой PortAudio
из Python интерфейс, обеспечивающий прямой доступ к аудиоустройствам.
pip install sounddevice
import sounddevice as sd
import soundfile as sf
wav, sample_rate = sf.read('path/to/audio_file.wav')
# Воспроизвести аудиодокумент
sd.play(wav, sample_rate)
sd.wait() # Ожидание завершения документирования
# Запись звука
duration, sample_rate = 5, 44100
recording = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=2)
sd.wait() # Дождитесь завершения записи
librosa
:Аудиои Анализ музыкального сигналаlibrosa
Это библиотека анализа аудио, специально используемая для анализа музыки и аудиосигнала. Он предлагает большое количество функций, включая Извлечение. признаки, аудиовизуализация и аудиоконвертация и т. д.
pip install librosa
# Загрузка аудиодокумента
wav, sample_rate = librosa.load('audio_file')
wav, sample_rate = librosa.load('audio_file', sr=None, offset=0, duration=None, mono=True)
# Получить продолжительность аудио
duration = librosa.get_duration(y=wav, sr=sample_rate)
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 4))
librosa.display.waveplot(wav, sr=sample_rate)
plt.show()
# извлекать MFCC особенность
mfcc = librosa.feature.mfcc(y=audio_data, sr=sampling_rate, n_mfcc=13)
# Передискретизация
new_audio = librosa.resample(audio_data, orig_sr=orig_sr, target_sr=target_sr)
# Обрезайте фрагменты аудио
new_audio = librosa.trim(audio_data, top_db=10, trim_db=20)
# Объединить аудио
new_audio = librosa.concatenate([audio1, audio2, audio3], sr)
# Эффект постепенного появления/исчезновения
faded_in_audio = librosa.fade(audio_data, fade_in_len)
faded_out_audio = librosa.fade(audio_data, fade_out_len, fade_out=True)
# сдвиг высоты тона
new_audio = librosa.effects.pitch_shift(audio_data, sr, n_steps)
# растяжение времени
new_audio = librosa.effects.time_stretch(audio_data, sr, new_sr)
pydub
:иметь дело с Аудиодокументиз Расширенный интерфейсpydub
это легкоиспользоватьаудиобиблиотека обработки,этопредоставил Расширенный интерфейс Приходитьиметь дело с Аудиодокумент。pydub
Поддерживает несколько форматов аудио и позволяет воспроизводить различные аудиофайлы. операции。
pip install pydub
from pydub import AudioSegment
# отдокументчитать Аудио
sound1 = AudioSegment.from_file("/path/to/sound.wav", format="wav")
# держатьприезжатьдокумент
sound1.export("output.wav")
# Получить аудиобайты
b = sound1.export().read()
# Конвертировать формат
sound2 = sound1.export(format="mp3")
# Изменять Частота выборки
sound2 = sound1.set_frame_rate(16000) # Преобразовать в 16000 Hz
omxplayer
:Кросс-платформенныйаудиоигратьустройствоomxplayer
это кроссплатформенный аудиоплеер, который можно воспроизводить через Python Управление сценарием.
from omxplayer.player import OMXPlayer
player = OMXPlayer(file_name)
time.sleep(duration)
player.quit()
В этой статье представлены несколько Python Библиотеки обработки звука и их базовое использование, включая wave
、pyaudio
、soundfile
、sounddevice
、librosa
、pydub
и omxplayer
。через эти библиотеки,ты можешь легко сделать Аудиоиз Записывать、играть、Редактирование и анализ.