簡體   English   中英

在iOS中檢測音頻文件中的間隙

[英]Detect gaps in audio file in iOS

我正在開發用於語言學習的應用程序(帶有發音的外來單詞的卡片)。 我可以使用旁白,但是我想可以導入帶有本地發音的音頻CD。 問題是給定部分的音頻文件沒有按單詞划分。 有什么方法可以檢測它們之間的差距?

我設法將歌曲從iPod庫導入到app文件夾中,因此可以使用AVFoundation等。我認為可以通過處理單個樣本來實現,但我不確定如何執行此操作。 任何幫助,將不勝感激。

我終於設法通過處理單個音頻樣本來完成此任務。 還有一個很好的答案,可以真正幫助您理解如何獲取所需的所有音頻信息的方式: AVAudioPlayer- 通過AVAssetReader 計量讀取音頻樣本

你必須:

  1. 計算每個樣本的絕對值(幅度數據的浮動值)
  2. 忽略噪音(只需設置一些適合您音頻文件的容差)
  3. 遍歷樣本並保存聲音信號的位置

請注意,采樣表示經過零的波形,因此您需要向前分析幾個采樣以查看是否沒有其他音頻信號。 同樣的噪聲有時可能會超出您的承受能力。

對於每個聲音樣本,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的頻率

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM