標籤:

python與numpy使用的一些小tips(2)

1,保存語音

from scipy.io import wavfilenwavfile.write(path, rate, speech)n

  1. path:包含路徑和要存儲的名稱
  2. rate:存儲的頻率
  3. speech:要存儲的語音矩陣

附:os.path.join(testspeechdir, AG_{0:03d}.wav.format(epoch)):在testspeechdir路徑下存儲名稱是epoch

需要注意的是:

  1. speech的形狀可以是一位的如shape為(32768,)或者二維的如(32768,1)。但不可以是三維的,因為深度學習的第一維是batch,要非常的注意。
  2. 如果保存的語音值不是在0到1之間,就要將其數據類型轉化為int。在0到1時float類型是可以的

講兩段語音放在一起保存

testA = SpeechGenerator(testimgdirA,speechlen)ntestB = SpeechGenerator(testimgdirB,speechlen)nA_speech_batch = next(testA)nB_speech_batch = next(testB)nC_speech_batch = np.concatenate([A_speech_batch,B_speech_batch],axis=1)nC = ulaw2lin(C_speech_batch)nprint(C_speech_batch.shape)nprint(A_speech_batch)nprint(B_speech_batch)nwavfile.write(os.path.join(testspeechdir, AG_{0:03d}.wav.format(7)), 16000, C[0])n輸出:n(1, 65536, 1)n(1, 32768, 1)n(1, 32768, 1)n

2,對語音進行濾波

from scipy import signalnB_speech_batch = next(testB)nb,a = signal.butter(3,0.05,low)nC_speech_batch = signal.filtfilt(b,a,B_speech_batch[0,:,0])n

  1. signal.butter對於第二參數是0到1之間(當其他參數是默認值時)
  2. 對信號的要求是一維的【scipy.signal.butter

3,相對路徑

以下為建立路徑所使用的幾個特殊符號,及其所代表的意義。

  1. "./":代表目前所在的目錄
  2. "../":代表上一層目錄

歡迎關注公眾號:huangxiaobai880

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

python二進位文件的讀取
Python:一篇文章掌握Numpy的基本用法
Numpy中Meshgrid函數介紹及2種應用場景
如何用python numpy產生一個正態分布隨機數的向量或者矩陣?

TAG:Python | numpy |