• 文件 >
  • torchaudio >
  • 舊版本 (穩定)
快捷方式

torchaudio

I/O

torchaudio 頂層模組提供了以下函式,便於處理音訊資料。

info

獲取音訊檔案的訊號資訊。

load

從源載入音訊資料。

save

將音訊資料儲存到檔案。

list_audio_backends

列出可用的後端

後端和分發器

解碼和編碼媒體是一個高度複雜的過程。因此,TorchAudio 依賴於第三方庫來執行這些操作。這些第三方庫稱為 backend (後端),TorchAudio 當前集成了以下庫。

請參閱安裝以瞭解如何啟用後端。

按照慣例,TorchAudio 的 I/O 後端一直在執行時根據可用性進行全域性設定。然而,這種方法不允許應用程式使用不同的後端,並且不適合大型程式碼庫。

基於這些原因,在 v2.0 中,我們引入了分發器 (dispatcher),這是一種允許使用者為每次函式呼叫選擇後端的新機制。

啟用分發器模式後,所有 I/O 函式都接受額外的關鍵字引數 backend,該引數指定所需的後端。如果指定的後端不可用,函式呼叫將失敗。

如果未明確選擇後端,函式將根據優先順序順序和庫可用性選擇要使用的後端。

下表總結了各個後端。

優先順序

後端

支援的作業系統

注意

1

FFmpeg

Linux, macOS, Windows

使用 get_audio_decoders()get_audio_encoders() 來檢索支援的編解碼器。

此後端支援各種協議,例如 HTTPS 和 MP4,以及類檔案物件。

2

SoX

Linux, macOS

使用 list_read_formats()list_write_formats() 來檢索支援的編解碼器。

此後端支援類檔案物件。

3

SoundFile

Linux, macOS, Windows

有關支援的編解碼器,請參閱官方文件

此後端支援類檔案物件。

分發器遷移

我們正在將 I/O 函式遷移到使用分發器機制,這會帶來多項更改,其中一些涉及破壞向後相容性的更改,並要求使用者更改其函式呼叫方式。

(計劃的) 更改如下。有關最新資訊,請參閱 https://github.com/pytorch/audio/issues/2950

  • 在 2.0 版本中,引入了音訊 I/O 後端分發器。使用者可以透過設定環境變數 TORCHAUDIO_USE_BACKEND_DISPATCHER=1 來選擇使用分發器。

  • 在 2.1 版本中,分發器成為 I/O 的預設機制。

  • 在 2.2 版本中,已移除舊有的全域性後端機制。實用函式 get_audio_backend()set_audio_backend() 不再起作用 (no-op)。

此外,我們從 libsox 後端移除了對類檔案物件的支援,因為 FFmpeg 後端更好地支援此功能,並簡化了構建過程。因此,從 2.1 版本開始,FFmpeg 和 Soundfile 是唯一支援類檔案物件的後端。

文件

訪問 PyTorch 的綜合開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源