有人知道这个吗需要解答

img

img


可以加微信了解一下 shhy_ly感谢大家 真的需要大家给我解答一下

以下是一个简单的流程,供参考:
1.安装所需的Python库,如pydub、numpy、scipy等。
2.下载短视频,并提取音频。可以使用pydub库进行音频提取

from pydub import AudioSegment

video_path = 'video.mp4'
audio_path = 'audio.wav'

# 提取音频
video = AudioSegment.from_file(video_path)
audio = video.export(audio_path, format='wav')

3.对音频进行预处理,如降噪、去除静音等。可以使用scipy库进行信号处理

from scipy.io import wavfile
from scipy.signal import butter, filtfilt

# 读取音频
rate, audio = wavfile.read(audio_path)

# 降噪
b, a = butter(4, 1000/(rate/2), 'highpass')
audio = filtfilt(b, a, audio)

# 去除静音
threshold = 0.1 * max(audio)
audio[audio < threshold] = 0

4.对音频进行特征提取,建立声音”指纹”数据库。可以使用Librosa库进行音频特征提取

import librosa
import numpy as np

# 提取音频特征
y, sr = librosa.load(audio_path)
mfcc = librosa.feature.mfcc(y=y, sr=sr)
chroma = librosa.feature.chroma_stft(y=y, sr=sr)
spectral_contrast = librosa.feature.spectral_contrast(y=y, sr=sr)

# 将特征转换为一维向量
mfcc_vector = np.mean(mfcc, axis=1)
chroma_vector = np.mean(chroma, axis=1)
spectral_contrast_vector = np.mean(spectral_contrast, axis=1)

# 将特征向量拼接成一个向量
audio_fingerprint = np.concatenate((mfcc_vector, chroma_vector, spectral_contrast_vector))

5.对背景音乐进行声学模型匹配,从而获取背景歌名。可以使用KNN算法进行匹配

from sklearn.neighbors import KNeighborsClassifier

# 建立KNN分类器
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(audio_fingerprints, song_names)

# 对新音频进行分类
y, sr = librosa.load(new_audio_path)
mfcc = librosa.feature.mfcc(y=y, sr=sr)
chroma = librosa.feature.chroma_stft(y=y, sr=sr)
spectral_contrast = librosa.feature.spectral_contrast(y=y, sr=sr)
mfcc_vector = np.mean(mfcc, axis=1)
chroma_vector = np.mean(chroma, axis=1)
spectral_contrast_vector = np.mean(spectral_contrast, axis=1)
new_audio_fingerprint = np.concatenate((mfcc_vector, chroma_vector, spectral_contrast_vector))
song_name = knn.predict([new_audio_fingerprint])[0]

视音分离可以考虑下ffmpeg