gpt4 book ai didi

c# - 音频指纹识别和归一化

转载 作者:行者123 更新时间:2023-11-30 18:40:01 30 4
gpt4 key购买 nike

我已经编写了一个应用程序,它允许使用描述的方法进行音频指纹识别 here .它基本上将 mp3 转换为 wav,然后在数据库中创建一堆哈希码。然后我使用我的 iphone 创建了一个录音,它有一些噪音并比较哈希码并获得匹配项,如链接中记录的那样。哇,太酷了!!

我现在正在使用 USB radio 接收器录制 radio 样本。我在 byte[] 数组中获取声音数据,然后在存储哈希码的地方做完全相同的事情,然后尝试匹配它。这次不行了。

我的感觉是 mp3 已经标准化(对其应用了压缩),这可能就是不同之处。我想不出任何其他区别,因为它们(mp3 和广播样本)都转换为 wav 格式(16 位)

我想我的问题是双重的:

  1. 如果我压缩 radio 样本,你认为它会起作用吗?

  2. 为此,我需要应用压缩功能,这意味着我需要让柔和的声音更响亮,让响亮的声音更柔和。

我已经开始编写一个函数,该函数接受一个字节数组(16 位格式的 wav 数据),并希望循环遍历它并相应地调整样本值以进行压缩,但我为此苦苦挣扎:

List<short> ints = new List<short>();
for (int j = 0; j < byteArray.Count; j+=2)
{
//so for 16 bits every 2 bytes in the array is a sample
short sample16 = 0;
byte[] sample = new byte[2];
sample[0] = byteArray[j];
sample[1] = byteArray[j+1];

sample16 = (short)(double)BitConverter.ToInt16(sample, 0);
//at this point change the sample according to the compression needed
ints.Add(sample16);

//back again to test it
byte[] buffer11 = BitConverter.GetBytes(sample16);
}

最佳答案

正如 sblom 在他的评论中已经指出的那样,频域哈希不受动态范围的影响。根据您提供的信息,我认为您的输入之间缺少一些频率。请注意,MP3 具有基于人类感知的心理声学音频模型。它精确地丢弃或屏蔽了一些频率。因此,您的 radio 源可能包含或缺少一些重要的频率来正确识别您的输入。

关于c# - 音频指纹识别和归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8958276/

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