使用 VB.net 进行宣传
Posted
技术标签:
【中文标题】使用 VB.net 进行宣传【英文标题】:Getting Pitch with VB.net 【发布时间】:2011-04-11 16:56:42 【问题描述】:我想在任何时候获得一首歌的音高。我计划稍后存储这些音高。我如何阅读说...一个 mp3 文件或 wav 文件以在某个点播放音高?
这是一个视觉示例: 假设我想在歌曲的 ^this point 获得音高。
谢谢!
【问题讨论】:
【参考方案1】:事情比你想象的要复杂一些。
虽然存在时域方法(即直接处理 PCM 数据的方法),但频域音高检测将更加准确。您可以阅读非常简化的概述here。
您可能想要的是Fourier Transform,它可用于将信号块从时域转换到频域(即,在给定信号跨度上的频率内容分布)。从那里,您需要分析该块内的频谱。问题变得更加困难,因为在一般情况下,没有最佳方法可以从采样的频谱中推断音调。前面提到的 Wikipedia 文章应该为您研究这些算法奠定了基础。
最后,值得注意的是,这实际上是一个与语言无关的问题,除非您的主要兴趣是 reading 和 WAV file,特别是使用 VB.NET。
【讨论】:
非常感谢!我回家后会看看这个:) 我使用 BASS 音频库进行频域变换,然后计算音高。我用它来计算任何歌曲的声学指纹。以上是关于使用 VB.net 进行宣传的主要内容,如果未能解决你的问题,请参考以下文章