我想通過類似Skype的回聲消除功能來運行音頻文件。 iChat和其他VoIP也具有此功能,但我找不到可以導入或打開我的文件的任何軟件。從音頻文件中刪除回聲的最佳方法是什麼?
3
A
回答
1
基本方法:
確定延遲。確定幅度偏移量。
反轉信號。應用延遲。調整幅度。播放兩個音頻文件。
任何多聲道音頻應用程序都可以實現此功能(例如,大膽,粗體或邏輯)。對於更復雜的信號,您需要對自己的過濾更加聰明,理想情況下,您會在信號干擾之前(在Skype場景中)抑制信號。
聽起來很酷,並使得有很大的意義從理論上說,但我還是真的不知道應該怎麼去這樣做。我對Logic很有經驗,但我不知道如何確定延遲。我應該只是製作一個文件的副本,倒轉它並移動它直到聽起來不錯?
只需將視覺上的2個信號的瞬變排列起來以確定延遲。然後,您必須放大並確定樣本的延遲,以實現最佳的取消。如果不接近,則不會取消,但加。
你是什麼意思的幅度偏移,是原始和迴音,噪音之間的音量差異?
沒錯。除非常見的情況外,回波將與信號源的幅度不同(通常較低),您需要知道這種差異才能最好地消除(該偏移量應用於反相信號,btw)。如果幅度是錯誤的,那麼你會引入反向信號(可聽地),或者在奇數情況下回聲比源聲音大,只減少部分回聲。
一旦瞬態信號與樣本對齊並且信號反轉,然後確定音量差異 - 如果它太高或太低,它將不會盡可能消除。
再次,這是一個基本的方法。取決於您擁有的信號和處理器,您可以做很多工作來改進它。在大多數情況下,這種做法會導致抑制,而不是消除。
1
爲了消除回聲,您需要TWO文件:mic &參考。 麥克風是包含回聲的信號。 引用是包含生成回聲的原始音頻的信號。
當你有這兩個文件後,你可以開始建立回聲消除的邏輯。從關於這個主題的維基頁面開始。
相關問題
- 1. 播放單音音頻文件的最佳方法是什麼?
- 2. 刪除超過100,000個文件的最佳方法是什麼?
- 3. 渲染聲音文件的最佳方式是什麼?
- 4. 從NSString中刪除路徑的最佳方法是什麼?
- 5. 構建angularJS音頻播放器的最佳方法是什麼?
- 6. 在ASP .NET 3.5 Web App中刪除「噪音」字的最佳方法是什麼?
- 7. 什麼是在視頻列表中靜音/取消靜音的最佳方法
- 8. 在JavaScript中刪除對象的最佳方法是什麼?
- 9. 從文件名中檢索ID的最佳方法是什麼?
- 10. 從BSTR中刪除XML聲明的最佳方法
- 11. 刪除duplicateMovieClip的最佳方法是什麼?
- 12. 刪除部分字符串的最佳方法是什麼? (C#)
- 13. 用jQuery刪除表格行的最佳方法是什麼?
- 14. 什麼是刪除佈局元素的最佳方法
- 15. 刪除矢量指針的最佳方法是什麼?
- 16. 什麼是刪除警告的最佳方法?
- 17. 什麼是從嵌套的JavaScript對象中刪除屬性的最佳方法?
- 18. 在我的情況下,從epoll中刪除fd的最佳方法是什麼?
- 19. 從數組中刪除數組的值的最佳方法是什麼?
- 20. 什麼是通過Qt播放音頻的最佳方式?
- 21. 在簡單的iOS遊戲中,音頻的最佳方法是什麼?
- 22. 從視頻或音頻文件中移除人聲語音
- 23. 什麼是合併視頻,音頻和圖像文件的最簡單方法?
- 24. 從Immutable.js中刪除多個嵌套關鍵字的最佳方法是什麼?
- 25. 什麼是從Flyway遷移中刪除可重複腳本的最佳方法
- 26. 從表格中刪除所有數據的最佳方法是什麼?
- 27. 從字符串中可靠地刪除unicode的最佳方法是什麼
- 28. 從應用程序中刪除死代碼的最佳方法是什麼?
- 29. 從IEnumerable <SelectListItem>中刪除項目的最佳方法是什麼?
- 30. 從xml字符串中刪除相同標籤的最佳方法是什麼?
當創建回聲的系統的脈衝響應只有一個非零元素時,這很好。但情況很少。您可能需要多次重複此過程。 –
@Alex我的回答只是一個起點。乾杯。 – justin
聽起來很酷,理論上有很多意義,但我仍然不知道該如何去做。我對Logic很有經驗,但我不知道如何確定延遲。我應該只是製作一個文件的副本,倒轉它並移動它直到聽起來不錯?幅度偏移是什麼意思,是原始和回聲噪聲之間的音量差異? – dezman