原创 定義一個只能在堆上(棧上)生成對象的類

    在C++中,類的對象建立分爲兩種,一種是靜態建立,如A a;另一種是動態建立,如A* ptr=new A;這兩種方式是有區別的。靜態建立一個類

原创 幾種強制轉換

1.reinterpret_cast::轉換一個指針爲其它類型的指針,一個指針到另一個指針的值的二進制拷貝,不做類型檢查。2.const_cast:用於類型轉換掉表達式的const或volatile屬性。3. static_cast:在功

原创 關於eof的煩惱

int main() { ofstream f2("c:\\read.txt"); if(f2.good()) { f2.write("abcd",5); } f2.close(); char ch; //f.s

原创 聲學原理及MFCC分析

頻譜、倒譜與mel頻率分析。CMU   kishore prahallad教授關於同態信號處理與MFCC的分析。中文翻譯版MFCC具體求解步驟分析,與fbank(MFSC)的比較

原创 vs2019下DLL的創建及使用注意事項

創建過程不多講,這裏主要關注一些實際應用問題: 代碼應該同時考慮32和64位平臺兼容情況,數據類型需要區分清楚。 交付使用時,應當將dll從CRT中剝離出來,或者拷貝對應的MSVCRTD.LIB,如:MSVCR80.DLL----> vs

原创 數組名總結

1、數組名作爲參數時,退化未指針,不具有sizeof()屬性: 2、數組名是常量指針,不可以被修改(指針本身不可以被修改,指向的值可以改變): char a [20]; a="abcd";//錯誤,試圖使常量指針改變 char a[20

原创 strcpy,memcpy,memmove的內存重疊

1、strcpy不考慮內存重疊函數原型如下: char *strcpy(char *strDest, const char *strSrc){ assert((strDest!=NULL) || (strSrc !=NULL))

原创 信號處理資料收藏

1、採樣、量化與編碼 爲什麼採樣頻率需要大於實際頻率的2倍以上--------->如何理解 Nyquist 採樣定理? 採樣後的信號振幅如何量化、編碼的 ---------> 正弦信號的採樣與量化? 採樣精度決定了記錄聲音的動態範圍,它以

原创 kaldi學習資料

Dan povey 主頁,有kaldi的詳細入門文檔,以及相關的論文 kaldi官網 kaldi—github 系統搭建過程及生成文件解釋: http://blog.sina.com.cn/s/blog_444061c70101h

原创 有趣的開源

1、 SoundTouch 是一個開源的音頻處理庫,用於改變音頻流或音頻文件的節奏、音調和播放速率。 通過調節Tempo、Pitch和Playback Rate可以實現類似Tom貓的變聲效果,對於這三個參數官方的解釋如下: Tem

原创 vim個性化設置

對齊: :1,3 left 5 gg=G   .vimrc配置: filetype plugin indent on    開啓vim的文件類型自動檢測功能,這樣編寫代碼換行時就會自動換行對齊 等效於set autoindent  + s

原创 音頻降噪工具整理

以下是幾種主流降噪算法的效果對比圖: 從上到下,分別是源音頻–speex–webRTC–盲源分離fastICA–RNN 從測試效果來看 rnn>webrtc>fastICA>speex 後面有時間再一一更新算法細節… 1、spe

原创 define,const與inlin

1>  define與const1.編譯器處理階段不同:define宏在編譯預處理階段展開, const常量在編譯階段使用2.類型安全檢查不同defined宏沒有類型,不做類型檢查,只做簡單的展開const常量有類型,在編譯階段會執行類型

原创 ++符號優先級

C語言int a=1,b=1;b=a+++b;求b C++中,後置++的優先級高於前置++,所以b=(a++)+b=2 點贊 收藏 分享 文章舉報 Marvin-nj 發佈

原创 static,const關鍵字作用

static關鍵詞作用:1、作用域隱藏。當一個工程有多個文件的時候,用static修飾的函數或變量只能夠在本文件中可見,文件外不可見。2、全局生命週期。用static修飾的變量或函數生命週期是全局的。被static修飾的變量存儲在靜態數據