2014-01-20 14 views
1

我試圖找到字與字之間的間隔時間在幾個MP3(音頻文件) 在進一步深入之前,讓我對我的音頻文件,如下解釋:如何通過MATLAB提取mp3(音頻)文件中的單詞之間的間隔時間?

我問我的受試者產生儘可能多的動物名稱儘可能60秒。我記錄了他們的演講。 因此,所有的mp3文件都是動物名稱的序列。通過只輸入(也就是說,不是連續一句)

首先,我讀的文件之一,並作出圖:

plot(data); 

圖爲如下: enter image description here

我覺得有些地方最大值是動物命名的候選人。但是,我無法弄清楚並得到動物名稱之間(可能是確切的)間隔時間。 剛到高峯還好嗎?或用於計算單詞之間間隔的任何其他替代方法? 謝謝:)

回答

0

你想用findpeaks

[pks,locs] = findpeaks(data) 

你能找到的局部最大值這樣,走左,右,直到它下降到一定閾值或按一定比例(因爲峯有一些圍長),然後對它們進行排序,然後計算兩個值之間的相減距離。

1

峯峯對於人聲片段之間的靜音片段非常粗糙。 @vsoch建議的閾值方法也不適用,因爲聲音片段也包含低值和零值。

提取沉默片段的傳統方法是比較不同片段上的能量。您需要將信號分成大約30 ms的段(確切的採樣數取決於採樣率)。你最好在段間重疊約10毫秒。

對於每個部分評估能量。這可以通過sum(segment.^2)(psaudocode ...)完成。然後畫出你得到的能量,看看並選擇聲音和靜音段之間分離的閾值。