標籤:

python與numpy使用的一些小tips[6]

1,推薦一個很不錯的語音庫librosa

librosa官網(雖然登不上,但翻牆可以)

2,載入語音

librosa.core.load - librosa 0.5.1 documentation

需要注意的是,它是會改變聲音的採樣頻率的

  1. sr:設置採樣pl
  2. mono:是否轉化為單聲道

y, sr = librosa.load(./arctic_a0003.wav,sr = 16000)nprint(sr)nprint(len(y))ny, sr = librosa.load(./arctic_a0003.wav)nprint(sr)nprint(len(y))n輸出:n16000n53841n22050n74200n

3,短時傅里葉變換

librosa.core.stft - librosa 0.5.1 documentation

  1. n_fft:一次變換的點數(如果比窗口小會用0補齊)
  2. hop_length:每一次移動多長,默認是窗口的1/4
  3. win_len:窗口長度
  4. center:當n_fft需要補齊的時候補齊的方式

4,短時傅里葉反變換

【librosa.core.istft - librosa 0.5.1 documentation】

只需要將stft的那個矩陣原封不動的傳入進去就可以恢複信號

需要說明的是:重建信號的質量和n_fft的長度無關【因為我試過不同長度的n_fft,聽上去沒任何差別】

5,如何取數據的實部與虛部

採用Python語言如何建立複數並訪問虛部實部和模

6,如何把實部與虛部再次拼接在一起

y, sr = librosa.load(./arctic_a0003.wav,sr = 16000)nD = librosa.stft(y,n_fft=2048)nE = D.real + (D.imag)*1jny_hat = librosa.istft(E)nlibrosa.output.write_wav(3.wav,y_hat,16000)n

這樣是可以無失真的復原信號的

歡迎關注公眾號:huangxiaobai880

https://www.zhihu.com/video/928210458257805312
推薦閱讀:

從一次CycleGAN實現聊聊TF
轉載好文章「量產型炮灰工程師」
Python學習基礎知識小結
公司里是怎麼做數據抓取的? --- 搜狗詞庫抓取&解析
Python系列之——利用Python實現微博監控

TAG:Python | numpy |