gpt4 book ai didi

android - 如何在Android中比较音频?

转载 作者:行者123 更新时间:2023-12-03 02:32:28 24 4
gpt4 key购买 nike

我正在制作一个应用程序,在该应用程序中,我从手机的麦克风录制直接音频,保存了录制内容,需要将其与设备中已经存储的某些音频进行比较
音频是马达的“杂音”,其想法是,从记录的录音中可以看出,似乎是哪种情况
也就是说,我有两种情况,一个好的引擎和一个损坏的引擎,当我完成录制时必须说“此音频属于一个损坏的引擎”

阅读我发现它必须通过人工智能来完成,这确实很复杂,我读到您可以将音频“分解”为数字 vector 或通过FFT进行比较,但是我找不到很多有关它的信息,真的很感谢您的帮助。

保存的文件类型为.wav

最佳答案

比较音频信号是一项艰巨的任务。

音频只是一系列值(数字),其中index只是“时间”,而值是声音的响度(振幅)。

如果您逐个元素地比较两个数组(序列)之类的音频数据,则要遍历索引-能够得到一些合理的东西会很幸运。尽管您需要对该数组进行某种转换才能获得有关整个数字序列的汇总信息(例如-信号的幽灵)。

有一些数学工具可以完成此任务,例如,众所周知的Fourier Transform和统计工具Autocorrelation提到了数学工具(它找到数字序列的“种类”)。

自相关方法可以相对简单-您只需迭代比较数据数组并计算自相关。但是,在信号的初始质量(或准备/标准化)的情况下,您将为简化而付费-它们的持续时间应相似。结果相关函数的值将显示两个序列的差异,即0-绝对不同,而1-几乎相同。

要实现傅立叶变换(FFT)也不是问题,您可以采用描述良好的算法并将其本身以任何语言实现,而无需使用第三方库。它做得很好。

FT将帮助您获得信号频谱,即另一组值:每个频率的振幅集(在输入原始信号的情况下,频率近似为阵列索引而不是时间),现在您可以像两个阵列一样比较给定的频谱遍历一个索引(频率),然后确定它们的相似性-计算增量并查看它是否达到某个接受间隔(或者您可以使用更正确的统计方法,例如相关函数)。

至于噪声信号,通常会从给定的数据集中减去噪声(但是在这里您应该知道噪声的种类)。

这都与信号处理 Realm 有关,如果您正在从事此类项目,则需要了解更多信息。

奖励:a book for example

关于android - 如何在Android中比较音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061909/

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