2012-06-17 23 views
0

我需要在mp3文件中找到沉默。就那麼簡單。如何在mp3文件中查找X秒的沉默?

例如:

  • 查找沉默比「file.mp3」 X秒時,則發送一個錯誤代碼0,如果找到的沉默X秒,或錯誤代碼1;如果未找到所述沉默。

我可以在批處理,VBS,Ruby或Python中嘗試它(因爲我都練習過,但我只知道批處理)。我沒有任何的音樂庫的想法和事情......

沒有,如果我需要第三方軟件做這樣的CommandLine的應用程序,無論工作...

注:沉默可以在該中間mp3文件。例如在文件中被稱爲「隱藏曲目」即:1首歌曲+ 1點大的沉默分鐘的+另一首歌曲(所有隻有1 MP3文件),所以我需要一些東西來搜索X selince到整個文件中,不僅接近尾聲文件...

注2:我需要做的是在Windows中。

有什麼想法嗎?

+1

MP3音頻數據轉換爲原始的PCM,通過樣品掃描尋找一個低於任何你想要的門檻塊。 – Brad

回答

5

使用襪,它是silence filter

檢查sox $infile -n statsox $infile -n silence 1 0.1 1% -1 0.1 1% stat輸出和比較原始和修剪文件的長度應該做的伎倆

+0

由於這是偉大的,我只有一個問題:(我在窗口)當我嘗試使用「-n STAT」命令我得到這個錯誤:襪FAIL UTIL:無法加載MAD解碼器庫(的libmad)。 – ElektroStudios

+0

谷歌的libmad.dll下載並把它放在旁邊,襪二進制 – qdiesel

+0

是三江源,我再次下載了的libmad和跛腳編譯......我有沉默(我的意思是沒有音頻峯)5秒的文件,當我嘗試襪第二個命令我沒有得到任何東西:「sox test.mp3 -n沉默1 0.1 1%-1 0.1 1%」'即時做錯了什麼?時間是毫秒還是秒?併爲我的無知感到遺憾,但肯定這可以用來「發現」沉默?因爲我收集了文件,只是說要寫或刪除沉默......: - /所有的 – ElektroStudios

4

這樣做:

  • 解碼MP3一些MP3解碼庫,你會得到它的PCM。
  • PCM數據是一個又一個short,這意味着16張有符號數
  • 你將不得不找到short S的是絕對的一些小值連續量,說100(範圍爲32767)
  • 長度短褲的數目由下式確定:您想要的靜默持續時間,在該文件中的信道數,採樣頻率
  • 如果有此號碼短褲是較小的,你有你的沉默。

請使用註釋向需要更多信息或添加新問題的區域添加問題,因爲任務有很多步驟,我想所有人都會提出這個問題具體。

+0

感謝您的幫助 – ElektroStudios

相關問題