比如采樣率為22050,音頻文件有36s,那么x為長度為22050*36=793800的float。
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務霍山,十多年網(wǎng)站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
用到了python庫 Spleeter
抽象地了解下原理吧
參考文章是這篇:Spleeter: a fast and efficient music source separation tool with pre-trained models
原理文章是這篇 SINGING VOICE SEPARATION: A STUDY ON TRAINING DATA
粗略掃了一眼,原理主要是用U-Net進行分割,然后這個Python工具主要是利用了一個pre-trained的model。
參考鏈接:機器之心的一篇文章
縱軸表示頻率(從0到10kHz),橫軸表示剪輯的時間。由于我們看到所有動作都發(fā)生在頻譜的底部,我們可以將頻率軸轉換為對數(shù)軸。
可以對頻率取對數(shù)。
感覺這個參數(shù)蠻有意思的
整個頻譜被投影到12個區(qū)間,代表音樂八度音的12個不同的半音(或色度), librosa.feature.chroma_stft 用于計算。
先對音頻進行短時傅里葉變換
其中每行存儲一個窗口的STFT,大小為1025*1551
這里要注意理解怎么基于stft的結果來畫頻譜圖
沒太了解,感覺就大概知道有這么個量可以用到就行。
librosa.feature.spectral_centroid 計算信號中每幀的光譜質心:
1. 先理解連續(xù)傅里葉變換
2. 再理解離散傅里葉變換
對連續(xù)函數(shù)進行離散采樣
3. 最后進入短時傅里葉變換
是先把一個函數(shù)和窗函數(shù)進行相乘,然后再進行一維的傅里葉變換。并通過窗函數(shù)的滑動得到一系列的傅里葉變換結果,將這些結果豎著排開得到一個二維的表象。
if (xrow ~= 1)
x = x';
else
x= x;
end
你在這里把x變成行向量;可是在下面語句里又按照列向量給第一下標賦值,
tfr(indices,icol)=x(round(ti+tau),1).*conj(h(round(Lh+1+tau)));
這樣就造成了向量下標超出。改成這樣試試:
tfr(indices,icol)=x(1,round(ti+tau)).*conj(h(round(Lh+1+tau)));
原文:
Python version
ttslearn のインストール
ttslearn の動作確認
パッケージのインポート
描畫周りの設定
NumPy と Torch を用いた配列の作成
numpy.ndarray と torch.Tensor のインタフェースの違い
numpy.ndarray と torch.Tensor の相互変換
numpy.ndarray と torch.Tensor のメモリ共有
scipy.io.wavfile を利用した音聲ファイルの読み込み
音聲の可視化
窓関數(shù)
短時間フーリエ変換の実裝
短時間フーリエ変換の結果の可視化
librosa.stft を用いた短時間フーリエ変換
librosa.stftは、STFTを実行する前にデフォルトで信號の冒頭と末尾にパディング処理を行います。前述のSTFT実裝はこの処理をサポートしていないため、同等のSTFTの結果を得るためには、center=Falseとしてパディング処理を行わないように設定します。
時間解像度と周波數(shù)解像度のトレードオフ
逆短時間フーリエ変換による音聲の復元
メルフィルタバンク
メルスペクトログラムの計算
Griffin-Lim のアルゴリズムに基づく位相復元
瞬時周波數(shù)の可視化 (bonus)
Griffin-Limのアルゴリズムは、位相復元手法です。合成音聲と自然音聲の瞬時位相(位相の時間微分)を比較することで、位相復元が期待通り行われているかを視覚的に確認できます。
翻譯:
Python 版本
ttslearn 的安裝
ttslearn 的操作確認
導入程序包
設置繪圖格式
使用NumPy和Torch創(chuàng)建數(shù)組
numpy.ndarray和torch.Tensor之間的接口差異
numpy.ndarray和torch.Tensor的相互轉換
numpy.ndarray和torch.Tensor的內存共享
使用scipy.io.wavfile讀取音頻文件
語音可視化
窗函數(shù)
短時傅立葉變換的實現(xiàn)
短時傅立葉變換結果的可視化
使用librosa.stft的短時傅立葉變換
缺省情況下,librosa.stft在執(zhí)行STFT(短時傅里葉變換)之前會對信號的開頭和結尾進行填充。 由于上面提到的STFT實現(xiàn)不支持此操作,因此要獲得等效的STFT結果,請將填充操作設置為center=False。
在時間分辨率和頻率分辨率間權衡取舍
通過逆短時傅立葉變換進行語音的復原
郵件過濾器組
計算質譜圖
基于Griffin-Lim算法的相位復原
瞬時頻率可視化(bonus)
Griffin-Lim的算法是一種相位恢復方法。 通過比較合成語音和自然語音的瞬時相位(相位的時間微分),我們可以直觀地看到相位恢復是否按預期進行。
官方文檔中給出了非常詳細的安裝方法
函數(shù)聲明:
librosa.core.stft(y, n_fft=2048, hop_length=None, win_length=None, window='hann', center=True, dtype=class 'numpy.complex64', pad_mode='reflect')
常用參數(shù)說明:
y:輸入的numpy數(shù)組,要求都是實數(shù)
n_fft:fft的長度,默認2048
hop_length:stft中窗函數(shù)每次步進的單位
win_length:窗函數(shù)的長度
window:窗函數(shù)的類型
return:一個1+n_fft/2*1+len(y)/hop_length的二維復數(shù)矩陣,其實就是時頻譜
參考:
主要用這兩個
matplotlib.pyplot.pcolormesh()
matplotlib.pyplot.colorbar()
當前名稱:stft函數(shù)python str函數(shù)python作用
地址分享:http://muchs.cn/article16/doshgdg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、網(wǎng)站營銷、商城網(wǎng)站、虛擬主機、外貿建站、移動網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)