原创 【Harvest源碼分析】GetWaveformAndSpectrumSub函數

GetWaveformAndSpectrumSub函數基本就是Matlab版本的decimate實現。用於降採樣。 Matlab版本的decimate使用在這裏 在輸入信號x的首尾,分別加了140長度的lag。 首部的lag全爲x

原创 【Harvest源碼分析】NuttallWindow

NuttallWindow是Matlab裏nuttallwin函數 函數形式爲 Harvest裏的四個係數和matlab的nattallwin稍微有些不同,這裏爲 w(t)=0.355768+0.487396cos(π2Tct)

原创 【Harvest源碼分析】獲取F0輪廓

頻率36.629HZ 頻率44.321HZ 頻率50.037HZ 頻率54.566HZ 頻率60.545HZ 頻率66.024HZ 頻率74.539HZ 頻率84.152HZ 頻率95.005HZ 頻率119.009HZ 頻

原创 【opus源碼分析】celt_fir5函數

celt_fir5函數是一個內部函數,用於計算FIR的 代碼如下 /** * x 是輸入信號 * num 是FIR係數,在opus裏這裏是autocorrelation係數 * y 是輸出信號 * N 是x輸入信號的長度 * me

原创 【rnnoise源碼分析】band能量計算

rnnoise中有個函數compute_band_energy,用於計算band的能量值。這裏有幾個概念需要理清楚。 基本概念 在看源碼之前,我們要弄懂幾個概念,不然還真沒法看下去了。講一下什麼是frequency band和fr

原创 PlaceHolder 控件使用

PlaceHolder就是一個容器。PlaceHolder控件的主要作用就是往裏面添加子控件,只是表示控件樹上的一個位置。 你可以把它理解成一個Panel。但是Panel在客戶端生成div標籤,而PlaceHolder在客戶端什麼也不生成

原创 簡易重採樣resampler的實現

基於開源庫speexdsp, 可以簡單實現重採樣。   簡單實現的代碼如下: 需要的三方庫: speexdsp ,libsndfile #include <stdlib.h> #include <sndfile.h> #include

原创 Ubuntu16下安裝kaldi(使用物理主機)

Ubuntu16下安裝kaldi準備軟件安裝Ubuntu安裝Kaldi遇到的安裝問題把主機變成雲服務器使用花生殼綁定域名安裝ssh服務 準備軟件 最新Ubuntu已經到19版本了,但是鑑於其他軟件安裝的支持性,不能安裝過於新的版

原创 【librosa】librosa.core.autocorrelate

import librosa import librosa.display import matplotlib.pyplot as plt y,sr = librosa.load(audio_file, mono=True, of

原创 numpy中的cov(方差計算)簡單介紹

協方差矩陣的計算公式可以參考這一篇博文 協方差矩陣 官方文檔介紹 簡單使用介紹 有下面一個例子,計算數組[1,2,3]和[1,1,1]的協方差矩陣 import numpy as np X = np.array([1,2,3])

原创 音頻處理中頻域轉時域的恢復

本文中使用的語言爲c++,使用的三方庫爲fftw,libsndfile 音頻的時域轉頻域 這一部分主要使用傅里葉變換,將時域轉成頻域。這一塊的帖子已經很多,這裏不再贅述了。主要注意點如下: fftw庫的使用,請參考 fftw

原创 CMAKE支持c99的兩種方式

一種是比較常見的全局設置 set(CMAKE_C_FLAGS "-std=c99") 另外一種是針對某個target設置,這樣不同的target之間可以不受影響 add_executable(BiquadFilter biqua

原创 Kaldi不支持Cuda10_1版本

請注意時效性。   筆者近期下載了Kaldi5.3+Cuda10.1, 系統是Ubuntu16. 編譯Kaldi時提示 Unsupported CUDA_VERSION (CUDA_VERSION=10_1), please repor

原创 Vorbis窗簡介

在所有窗函數中,大多你都可以在網上找到該窗函數的介紹,但是今天介紹的Vorbis窗,至少你不仔細找,可能還真找不到它的資料。 Wikipedia裏的窗函數介紹裏是沒有這個窗函數的。 直接上乾貨 窗函數公式 w(n)=sin(π2s