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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

一个开源的音频分离深度学习项目

發布時間:2023/12/31 pytorch 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个开源的音频分离深度学习项目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GitHub - yeyupiaoling/AudioClassification-Pytorch: 基于Pytorch實現的聲音分類

1.環境安裝

1.先安裝conda

Ubuntu 使用conda安裝python虛擬環境并進行yolo-fast訓練_Y_Hungry的博客-CSDN博客

?2.?創建虛擬環境

conda create -n v38 python=3.8

3.切換到conda環境

conda activate v38

4.安裝libsora

conda install pytest-runner conda install librosa==0.9.1

5.安裝pydub

pip install pydub

2.測試環境

import librosa import librosa.displayimport matplotlib.pyplot as plt data_path = "/root/AudioClassification-Pytorch/mos.mp3" wav, sr = librosa.load(data_path, sr=16000) melspec = librosa.feature.melspectrogram(y=wav, sr=sr, n_fft=400, n_mels=80, hop_length=160, win_length=400) logmelspec = librosa.power_to_db(melspec, ref=1.0, amin=1e-10, top_db=None)plt.figure() # plot a wavform plt.subplot(2, 1, 1) librosa.display.waveshow(wav, sr) plt.title('mos Beat wavform') # plot mel spectrogram plt.subplot(2, 1, 2) librosa.display.specshow(logmelspec, sr=sr, x_axis='time', y_axis='mel') plt.title('mos Mel spectrogram') plt.tight_layout() #保證圖不重疊 plt.show()

3.生成數據列表

生成數據列表,用于下一步的讀取需要,audio_path為音頻文件路徑,用戶需要提前把音頻數據集存放在dataset/audio目錄下,每個文件夾存放一個類別的音頻數據,每條音頻數據長度在3秒以上,如?dataset/audio/鳥叫聲/······。audio是數據列表存放的位置,生成的數據類別的格式為?音頻路徑\t音頻對應的類別標簽,音頻路徑和標簽用制表符?\t分開。讀者也可以根據自己存放數據的方式修改以下函數。

Urbansound8K 是目前應用較為廣泛的用于自動城市環境聲分類研究的公共數據集,包含10個分類:空調聲、汽車鳴笛聲、兒童玩耍聲、狗叫聲、鉆孔聲、引擎空轉聲、槍聲、手提鉆、警笛聲和街道音樂聲。數據集下載地址:https://zenodo.org/record/1203745/files/UrbanSound8K.tar.gz。以下是針對Urbansound8K生成數據列表的函數。如果讀者想使用該數據集,請下載并解壓到?dataset目錄下,把生成數據列表代碼改為以下代碼。

# 生成數據列表 def get_data_list(audio_path, list_path):sound_sum = 0audios = os.listdir(audio_path)f_train = open(os.path.join(list_path, 'train_list.txt'), 'w')f_test = open(os.path.join(list_path, 'test_list.txt'), 'w')for i in range(len(audios)):sounds = os.listdir(os.path.join(audio_path, audios[i]))for sound in sounds:if '.wav' not in sound:continuesound_path = os.path.join(audio_path, audios[i], sound)t = librosa.get_duration(filename=sound_path)# 過濾小于2.1秒的音頻if t >= 2.1:if sound_sum % 100 == 0:f_test.write('%s\t%d\n' % (sound_path, i))else:f_train.write('%s\t%d\n' % (sound_path, i))sound_sum += 1print("Audio:%d/%d" % (i + 1, len(audios)))f_test.close()f_train.close()if __name__ == '__main__':get_data_list('dataset/UrbanSound8K/audio', 'dataset')

4.訓練模型

python3 train.py

可能會報錯,將下面的代碼修改一下,線程數量改為0

add_arg('num_workers', ? ? ?int, ? ?0, ? ? ? ? ? ? ? ? ? ? ? ?'讀取數據的線程數量')

總結

以上是生活随笔為你收集整理的一个开源的音频分离深度学习项目的全部內容,希望文章能夠幫你解決所遇到的問題。

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