首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java音频输入不一致

Java音频输入不一致
EN

Stack Overflow用户
提问于 2012-02-10 15:28:41
回答 3查看 764关注 0票数 3

我已经在吉他调谐器Java应用程序上工作了很长一段时间,并最终设法得到基音(基频)检测,以准确确定输入的基频,使用FFT和谐波乘积谱。当我使用我的MacBook Pro的默认麦克风时,这是完美的,尽管信号有点嘈杂,但我理想地想要使用我的外部USB音频接口( Lambda)与电吉他直接插入。我试过用完全相同的代码来处理麦克风输入,但是检测到的音高是不同的。以下是我对每根弦的基本面检测结果(吉他已经调好了)。

抽样率= 8000

取样= 16000

频率分辨率= 0.5Hz

E- Mic: 82.5Hz -词汇表Lambda: 124.5Hz

A: 110.0Hz -词汇表Lambda: 165.5Hz

D- Mic: 147.0Hz -词汇表Lambda: 221.5Hz

G- Mic: 196.0Hz -词汇表Lambda: 293.5Hz

B- Mic: 247.0Hz -词汇表Lambda: 371.0Hz

E- Mic: 329.5Hz -词汇表Lambda: 495.0Hz

我把这些数字搞得有点乱七八糟,似乎用词汇Lambda得到的结果通常是精确结果的1.5倍。但是,不只是添加这个额外的计算,以获得正确的数字,我想让它,以便获得音频数据的两种方法返回准确的结果。

有人知道这种不一致的原因是什么吗?

编辑

所以我很确定问题是因为Lambda使用了24位的深度,而我的程序(和麦克风输入)的工作深度是16位,而不是仅仅改变它来处理24位数据,有谁知道如何检测当前音频设备的可用位深?

使用Lambda是优先考虑的问题,因为信号的噪音较小;然而,我刚刚尝试让事物以24位指定的深度工作,我得到了IllegalArgumentException“无线匹配接口TargetDataLine支持格式PCM_SIGNED 8000.0 Hz,24位,单帧,3字节/帧,支持小终端。”我尝试使用44.1kHz,我也得到了同样的错误,这表明Lambda实际上没有使用24位音频,或者可能还有另一个问题。有人有使用Java声音24位音频的经验吗?似乎有更多的考虑,不只是改变比特深度,以使这一工作。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-10 15:51:33

1 idea

样本比特率可能是关键!!专业的音频接口在默认情况下将使用24位,16位是80年代的标准,在消费电子产品中仍然使用很多。

如果您的FFT期望16位值,并且您通过24位,您的声音将被“拉伸”。(想象一下正弦波使它更清晰)

这就完美地解释了频率漂移!!所以你要么把24位转换成16位,要么重写FFT。

2 idea

我在Lexikon网站上发现,这个界面只支持44.1 kHz和48 kHz。因此,我想在默认情况下,Lambda设置为48 kHz。如果您请求8 kHz的采样率,则接口无法处理,并且保持在48 kHz (我想)。

因此,只需在这两种设备上尝试一个常见的样本,然后再进行比较。

票数 2
EN

Stack Overflow用户

发布于 2012-02-10 15:40:39

mic值为词汇值的66%,如E: 329.5Hz除以词汇Lambda : 495.0Hz = 0.66。不知道这是否有意义?

来自麦克风的采样率和来自词汇Lambda的采样率是相同的吗?

比特深度相同吗?我想知道它们是否不同,例如,一个是16位,另一个是24位?这也许可以解释计算中的66%的数值。

票数 3
EN

Stack Overflow用户

发布于 2012-02-12 07:52:29

我有一个很好的理论给你,但进一步认为它是完整的bs。在其他新闻中,我只想提一下,对于频率检测来说,FFT的精度远比麦克风样本上的精度或噪声重要得多。麦克风上的量化噪声会在频谱中增加噪声,对FFT峰的影响不大,背景噪声也有望远低于检测到的FFT峰值,不会对结果产生很大的影响。

我在android上有一个调谐器应用程序,我在FFT中乱搞定点优化,但是结果很糟糕。另一方面,即使你远离手机和糟糕的麦克风硬件,这个应用程序也能工作得很好,所以我认为你真的不需要你字典里的所有24位,只要确保你使用尽可能多的分辨率(最好是双倍)来进行FFT乘法和加法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9230167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档