gpt4 book ai didi

python - 如何找到歌曲的音阶

转载 作者:行者123 更新时间:2023-11-30 23:22:57 24 4
gpt4 key购买 nike

歌曲的音阶 - 歌曲的音阶由信号中存在的给定和弦组确定。

引用http://songkeyfinder.com/找出不同音阶的和弦组。

歌曲的音阶也可以根据信号中最常出现的给定频率集来确定。

我在 MATLAB 中编写了这段代码,它显示了频率及其出现次数的图。

[wave,freq]  = audioread('Our_song.wav');
dt = 1/ freq;
Stoptime = 1;
t = (0:dt:Stoptime-dt);
n = length(wave)-1;
df = freq/n;
figure;
f = 0:freq/n:99999*freq/n;
ff=abs(fft(wave))/n;
fflength= length(ff);
ffpart=ff(1:100000);
plot(f,ffpart);

如何存储信号的前 n 个最常出现的频率?

最佳答案

通过对整个信号应用 fft,您会丢失时间信息。您可能对音频处理不太熟悉,但如果您对此感到好奇,那么学习一些基础知识似乎是很有趣的。信号的常见时频表示是 STFT ,查看 Matlab 关于频谱图的帮助。

但是,STFT 并不是突出音乐结构的最佳选择,您可能希望使用色度特征来表示音频信号。它将产生一个包含 12 个“bin”的矩阵,对应于半音阶的 12 个音符。

描述了如何实现此色度分析的示例 here 。从色度表示中,您可以尝试识别随时间演奏的音符。

然而,这并不是一件简单的任务。我强烈建议开始使用仅包含一种乐器的录音。首先,在没有任何和弦的情况下(例如钢琴上的旋律),如果您设法正确地获得音符顺序,请尝试使用带有和弦的相同乐器。不同工具的混合会更具挑战性。

关于python - 如何找到歌曲的音阶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24218103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com