日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 PyTorch 进行音频信号处理的数据操作和转换

發布時間:2024/1/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 PyTorch 进行音频信号处理的数据操作和转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 💂 個人網站:【 海擁】【小霸王游戲機】
  • 🤟 風趣幽默的前端學習課程:👉28個案例趣學前端
  • 💅 想尋找共同學習交流、摸魚劃水的小伙伴,請點擊【摸魚學習交流群】
  • 💬 免費且實用的計算機相關知識題庫:👉進來逛逛

給大家安利一個免費且實用的前端刷題(面經大全)網站,👉點擊跳轉到網站。

torchaudio:PyTorch 的音頻庫

torchaudio 的目標是將PyTorch應用到音頻領域。通過支持 PyTorch,torchaudio 遵循相同的理念,即提供強大的 GPU 加速,通過 autograd 系統專注于可訓練的特征,并具有一致的風格(張量名稱和維度名稱)。因此,它主要是一個機器學習庫,而不是一個通用的信號處理庫。PyTorch 的好處可以在 torchaudio 中看到,因為所有計算都通過 PyTorch 操作進行,這使得它易于使用并且感覺像是一個自然的擴展。

  • 支持音頻 I/O(加載文件、保存文件)

    • 使用 SoX 將以下格式加載到 Torch Tensor 中

      • mp3、wav、aac、ogg、flac、avr、cdda、cvs/vms、
      • aiff, au, amr, mp2, mp4, ac3, avi, wmv,
      • mpeg、ircam 和 libsox 支持的任何其他格式。
      • Kaldi (方舟/SCP)
  • 常見音頻數據集的數據加載器(VCTK,YesNo)

  • 常見的音頻轉換

    • 頻譜圖、AmplitudeToDB、MelScale、MelSpectrogram、MFCC、MuLawEncoding、MuLawDecoding、重采樣
  • 合規性接口:使用 PyTorch 運行與其他庫一致的代碼

    • Kaldi:頻譜圖、fbank、mfcc、resample_waveform

依賴關系

  • PyTorch(兼容版本見下文)
  • libsox v14.3.2 或更高版本(僅在從源代碼構建時需要)
  • [可選] vesis84/kaldi-io-for-python commit cb46cb1f44318a5d04d4941cf39084c5b021241e 或以上

以下是對應的torchaudio版本和支持的Python版本。

torchtorchaudiopython
master / nightlymaster / nightly>=3.6
1.7.00.7.0>=3.6
1.6.00.6.0>=3.6
1.5.00.5.0>=3.5
1.4.00.4.0==2.7, >=3.5,<=3.8

安裝

二元分布

要使用 anaconda 安裝最新版本,請運行:

conda install -c pytorch torchaudio

要安裝最新的 pip 輪子,請運行:

pip install torchaudio -f https://download.pytorch.org/whl/torch_stable.html

(如果您還沒有安裝 Torch,這將默認從 PyPI 安裝 Torch。如果您需要不同的 Torch 配置,請在運行此命令之前預安裝 Torch。)

Nightly 構建

請注意,每晚構建是在 PyTorch 的每晚構建基礎上構建的。因此,當您使用每晚構建的 torchaudio 時,您需要安裝最新的 PyTorch。

pip

pip install numpy pip install --pre torchaudio -f https://download.pytorch.org/whl/nightly/torch_nightly.html

conda

conda install -y -c pytorch-nightly torchaudio

從 Source

如果您的系統配置不在上述支持的配置中,您可以從源代碼構建 torchaudio。

這將需要 libsox v14.3.2 或更高版本。

如何安裝 SoX 的示例

OSX(自制軟件):

brew install sox

Linux(Ubuntu):

sudo apt-get install sox libsox-dev libsox-fmt-all

Python

conda install -c conda-forge sox # Linux python setup.py install# OSX MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

或者,構建過程可以靜態構建 libsox 和一些可選的編解碼器,并且 torchaudio 可以通過設置環境變量來鏈接它們BUILD_SOX=1。構建過程將在構建擴展之前獲取并構建 libmad、lame、flac、vorbis、opus 和 libsox。此過程需要cmake和pkg-config。

# Linux BUILD_SOX=1 python setup.py install # OSX BUILD_SOX=1 MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

眾所周知,這適用于 linux 和 unix 發行版,例如 Ubuntu 和 CentOS 7 以及 macOS。如果您在新系統上嘗試此操作并找到使其工作的解決方案,請隨時通過打開問題來共享它。

故障排除

檢查構建系統類型… ./config.guess: 無法猜測系統類型

由于編解碼器的配置文件較舊,因此無法正確檢測新環境,例如 Jetson Aarch。需要用最新的或替換該config.guess文件。./third_party/tmp/lame-3.99.5/config.guess``./third_party/tmp/libmad-0.15.1b/config.guess:https://github.com/gcc-mirror/gcc/blob/master/config.guess

另見:#658

使用“BUILD_SOX”時對“tgetnum”的未定義引用

如果在 anaconda 環境中構建時遇到類似以下的錯誤:

../bin/ld: console.c:(.text+0xc1): undefined reference to `tgetnum'

安裝ncurses從conda-forge運行前python setup.py install:

# 從 conda-forge 安裝 ncurses conda install -c conda-forge ncurses

快速使用

import torchaudiowaveform, sample_rate = torchaudio.load('foo.wav') # load tensor from file torchaudio.save('foo_save.wav', waveform, sample_rate) # save tensor to file

后端調度

默認情況下,在 OSX 和 Linux 中,torchaudio 使用 SoX 作為后端來加載和保存文件。可以使用以下命令將后端更改為SoundFile。有關安裝說明,請參閱SoundFile。

import torchaudio torchaudio.set_audio_backend("soundfile") # 切換后臺waveform, sample_rate = torchaudio.load('foo.wav') # 像通常一樣從文件加載張量 torchaudio.save('foo_save.wav', waveform, sample_rate) # 像往常一樣將張量保存到文件中

與 SoX 不同,SoundFile 目前不支持 mp3。

API 參考

API 參考位于此處:http://pytorch.org/audio/

公約

由于 torchaudio 是一個機器學習庫,并且構建在 PyTorch 之上,torchaudio 圍繞以下命名約定進行了標準化。假定張量將“通道”作為第一個維度,將時間作為最后一個維度(如果適用)。這使其與 PyTorch 的尺寸一致。對于大小名稱,使用前綴n_(例如“大小為 ( n_freq, n_mel)的張量”),而維度名稱沒有此前綴(例如“維度(通道,時間)的張量”)

  • waveform:具有維度(通道、時間)的音頻樣本張量
  • sample_rate:音頻維度的速率(每秒采樣數)
  • specgram:具有維度(通道、頻率、時間)的頻譜圖張量
  • mel_specgram:具有維度(通道、mel、時間)的mel譜圖
  • hop_length:連續幀開始之間的樣本數
  • n_fft:傅立葉箱的數量
  • n_mel, n_mfcc: mel 和 MFCC bin 的數量
  • n_freq:線性頻譜圖中的 bin 數量
  • min_freq:頻譜圖中最低頻段的最低頻率
  • max_freq:頻譜圖中最高頻段的最高頻率
  • win_length: STFT 窗口的長度
  • window_fn: 對于創建窗口的函數,例如 torch.hann_window

轉換期望并返回以下維度。

  • Spectrogram:(頻道,時間)->(頻道,頻率,時間)
  • AmplitudeToDB:(頻道,頻率,時間)->(頻道,頻率,時間)
  • MelScale: (頻道, 頻率, 時間) -> (頻道, mel, 時間)
  • MelSpectrogram:(頻道,時間)->(頻道,mel,時間)
  • MFCC:(頻道,時間)->(頻道,mfcc,時間)
  • MuLawEncode:(頻道,時間)->(頻道,時間)
  • MuLawDecode:(頻道,時間)->(頻道,時間)
  • Resample:(頻道,時間)->(頻道,時間)
  • Fade:(頻道,時間)->(頻道,時間)
  • Vol:(頻道,時間)->(頻道,時間)

復數經由(…,2)尺寸的張量支撐,并且提供torchaudiocomplex_norm和angle這樣的張量轉換成它的幅度和相位。在這里,在文檔中,我們使用省略號“…”作為張量其余維度的占位符,例如可選的批處理和通道維度。

貢獻指南

請參考CONTRIBUTING.md

數據集免責聲明

這是一個下載和準備公共數據集的實用程序庫。我們不托管或分發這些數據集,不保證其質量或公平性,也不聲稱您擁有使用該數據集的許可。您有責任確定您是否有權根據數據集的許可使用數據集。

如果您是數據集所有者并希望更新其中的任何部分(描述、引文等),或者不希望您的數據集包含在此庫中,請通過 GitHub 問題與我們聯系。感謝您對 ML 社區的貢獻!

GitHub

https://github.com/pytorch/audio

?? 好書推薦

《人工智能導論》

【內容簡介】

科大訊飛校企合編教材,涵蓋人工智能各個重要體系,詳解人工智能基礎理論,詳細解讀算法邏輯:詳解機器學習、人工神經網絡、智能語音識別、自然語言處理、知識圖譜與機器人等核心算法知識,清晰介紹實戰步驟:有理論有實戰,介紹了人工智能算法與技術的實際應用,步驟清楚,條理清晰,即學即用。

📚 京東自營購買鏈接:《人工智能導論》

總結

以上是生活随笔為你收集整理的使用 PyTorch 进行音频信号处理的数据操作和转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。