我正在开发一个用于语言学习的应用程序(带有发音的外来词的卡片)。我可以使用语音,但我希望能够导入具有原生语音的音频CD。问题是给定部分的音频文件没有按字分割。有没有办法检测它们之间的差距?
我设法将iPod库中的歌曲导入app文件夹,因此我可以使用AVFoundation等。我认为可以通过处理个别样本,但我不知道如何做到这一点。任何帮助将不胜感激。
答案 0 :(得分:0)
我终于通过处理单个音频样本来完成此任务。对另一个问题有很好的答案,这些问题确实有助于理解如何获得所需的所有音频信息: AVAudioPlayer - Metering& Reading audio samples via AVAssetReader
你必须:
请注意,样本是波的表示,它通过零,因此您需要向前分析一些样本以查看是否没有其他音频信号。这同样适用于有时可能高于容差的噪音。
答案 1 :(得分:0)
对于每个声音样本,s = samp [k],执行:
fac = 0.01
tot = (1.-fac) * tot + fac * (s*s)
这种技术是低通滤波器的一种非常基本的形式;它将为您提供更真实的瞬时能量测量。
另一种轻量级技术将盒子整合最后一百个样本量,也称为平均值。
av = float[1000]
p=0
然后对每个样本:
tot -= ring[p]
ring[p] = s*s
tot += ring[p]
p = p+1 % 1000
另一件需要关注的事情是漏水积分器。
例如,您还可以在每10个样本中仅处理一个,这仍然可以捕获高达2205Hz的频率