- 需要在linux上安装ffmpeg
参考博客 Linux上安装ffmpeg - 修改环境变量【这一点很重要,自己因为没有添加环境变量,捣鼓了很长时间】
将ffmpeg的绝对路径添加到 PATH 环境变量中,以让系统能找到ffmpeg的安装路径。
python
# /home//project/ffmpeg-6.1-amd64-static 替换成ffmpeg和ffprobe所在的文件夹
export PATH="/home//project/ffmpeg-6.1-amd64-static:${PATH}"
- python代码将m4a类型的音频文件转换为wav类型
python
# "AudioSegment库能够将"m4a"【苹果音乐的格式】类型的音频文件转换为wav类型"
from pydub import AudioSegment
import librosa
w4a_audio = AudioSegment.from_file(path, format="m4a")
w4a_audio.export("audio_countdown.wav", format="wav")
- librosa库对wav类型的文件进行处理、可视化
python
y, sr = librosa.load("audio_countdown.wav")
import matplotlib.pyplot as plt
print(f'y: {y[:10]}')
print(f'shape y: {y.shape}')
print(f'sr: {sr}')
import pandas as pd
pd.Series(y).plot(figsize=(10, 5),
lw=1,
title='Raw Audio Example')
plt.show()
python
import numpy as np
import matplotlib.pyplot as plt
D = librosa.stft(y)
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max)
S_db.shape
fig, ax = plt.subplots(figsize=(10, 5))
img = librosa.display.specshow(S_db,
x_axis='time',
y_axis='log',
ax=ax)
ax.set_title('Spectogram Example', fontsize=20)
fig.colorbar(img, ax=ax, format=f'%0.2f')
plt.show()