回答
我會建議查看給定文件的數據結構,並在該行的適當位置「剪切」數據,以免早期切斷幀。
這將意味着查看記錄的頻率和比特率,並使用它來獲取每幀的大小(以比特爲單位)。然後,您可以在不剪切單個幀數據的情況下拍攝多段音頻。
Have a look at this SO posting。它建議將您的音頻視爲二進制讀取字符串。因爲它是一個字符串,你可以基本上覆制,剪切和移動字符串,因爲你想要一個新的輸出文件。
檢查這一個:http://docs.python.org/library/binascii.html
也值得一讀:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
要麼或者只是保持它作爲二進制和使用的字節數組。需要考慮頭文件以及發生了什麼,儘管每種格式都不相同。 MP3是很容易保持頭,因爲它是交錯之間的數據:
http://en.wikipedia.org/wiki/Mp3#File_structure
好了,一堆東西。
FINALLY:一,你會無疑已看到:http://sourceforge.net/projects/audiotools/
更新....
使用bits_per_sample()
方法在音頻工具從sourceforge.net鏈接
- Returns the number of bits-per-sample in this audio file as a positive integer.
然後使用該信息和上面的一些信息將音頻分成一個字節數組。您至少可以重建一些RAW音頻數據。
您可以將文件的長度以位爲單位除以16,然後可以使用方法按照時間以毫秒爲單位劃分數組。這聽起來很複雜,但它是非常簡單的數學。
這是一個非常有用的答案。我沒有接受它,因爲它沒有足夠專門回答這個問題,例如沒有詳細說明庫並可能提供使用說明。 – 2010-11-01 21:06:06
@Tim McNamara我已更新該帖子以包含幾個鏈接。最後一個應該有希望給你一些快速的結果。 – Alex 2010-11-01 23:59:53
感謝您將所有的工作放在答案中! – 2010-11-14 23:39:26
我會使用wave module打開文件,讀取標題,找出在10秒內有多少幀,然後讀取很多幀。將這些幀寫出到具有相同標題信息(長度除外)的文件直到完成。
+1正是OP所需要的(對於包含PCM的WAV文件)。 – tzot 2010-11-29 13:55:27
- 1. 使用Java將音頻文件分段爲10個段落
- 2. 剪切音頻文件
- 3. 音頻編碼:在軌道末尾沒有1/10秒靜音的AAC文件
- 4. 將音頻文件拆分爲片段
- 5. 用iPhone SDK切割音頻文件
- 6. 如何將音頻文件(wav格式)拼接成python中的1秒拼接?
- 7. 將FLAC音頻文件隱藏到wav音頻文件在android
- 8. iOS音頻在音頻播放完成後將音頻文件流保存到文檔目錄中
- 9. 將VST音頻效果/插件應用到音頻文件
- 10. 音頻插件。將MIDI映射到音頻文件
- 11. 隨機音頻文件生成的html5音頻
- 12. 10秒後開始播放音頻,可能使用javascript?
- 13. Titanium從Ti.MediaSound對象提取音頻的前10秒對象
- 14. 'C'程序將音頻文件轉換爲FFMPEG並生成視頻文件
- 15. 將音頻文件添加到另一個音頻文件,最終結果爲一個新的音頻文件
- 16. 即時生成音頻文件?
- 17. 將文本與音頻文件同步
- 18. 每10秒鐘從視頻文件中捕捉一幀
- 19. 一次播放音頻音頻文件
- 20. 將wav音頻文件轉換爲DSS音頻格式
- 21. 如何使用php將音頻消息嵌入音頻文件?
- 22. 僅將音頻文件傳輸至Android設備時的音頻
- 23. 音頻和視頻文件
- 24. 從音頻文件
- 25. 從音頻文件
- 26. 音頻文件Android
- 27. 音頻文件類
- 28. 將兩個.caf音頻文件合併爲一個iPhone中的音頻文件
- 29. rich:dataScroller如何每10秒切換頁面?
- 30. 將選定的音樂文件集成到視頻中
實際文件是什麼類型呢? – You 2010-11-01 01:03:46
@You'mp3'和'wav',儘管我希望能夠接受盡可能多的輸入文件類型。 – 2010-11-01 21:07:01
相關問題:[如何編輯沒有音頻庫的原始PCM音頻數據?](http://stackoverflow.com/questions/841049/) – tzot 2010-11-29 13:54:31