從工做流程上分,對於音頻算法工程師(其實不僅限於音頻算法工程師)的任務工做分配在國外一般分爲3層,人員需求也分爲三類(杜比公司,德國的fraunhofor ,skype都是這樣)算法
第一層是算法開發層,一般要求起碼是博士,通常是完成對算法的建模,代碼輸出有多是matlab或是c代碼,代碼可讀性和結構性未必很好,目的是實現算法的功能,好比回聲消除,編解碼設計,去噪等等。架構
第二層是算法重寫和接口層,一般要求起碼是碩士,通常完成C或是matlab代碼的重寫,寫成可讀性好結構性好的代碼並完成接口設計。目的是從工程的角度能很方便的使用內部算法,並便於調試,因爲是代碼重寫要求對信號處理能力有必定了解。框架
第三層是應用Demo開發層,調用第二層的接口設計Demo應用,完成對算法的演示。該層的目的是更好的演示算法的效果。Demo更炫。設計
可是在國內,這種狀況幾乎沒法發生,由於國內音頻工程師太少和公司需求的問題,通常的狀況是一我的從頭至尾的開發,要求工程師能覆蓋第一到第二層,第三層有時也要作。這樣的結果是工程師沒法把精力放到算法開發上,代碼效率也不高。可是要認可,這是國內的廣泛現狀,暫時沒法改變。調試
從工程師的能力看,能夠分紅如下兩級能力。接口
第一種能力:算法架構能力,要求對一個功能模塊或複雜應用模塊有必定的掌控能力,可以正向設計複雜結構的算法,要求對信號處理的各個方面多必定的瞭解,並也對該應用有必定的認識。開發
以AEC舉例:要求能對AEC的原理和結構框架有清晰的認識(起碼要有幾年的專門算法經驗和工做經驗)。而且對AEC的主流框架,超前框架,落後框架都有了解。瞭解各類框架中的細節模塊算法有必定了解,好比時頻分析(FCT,QMF,FFT,小波等),對參數模型,分類模型有必定了解,對基因跟蹤有必定了解,再結合綜合經驗才能從有從正向上解決問題的能力。工作流
第二種能力:從問題結果出發的算法解決能力,一般是單模型算法或是bug fix類算法需求。具備這種能力的工程師的特色一般是對某一個專項問題(單一算法或簡單框架)有較高的認識,有必定的算法能力,可以從正向上解決通常的算法問題,並能從結果出發,針對特定結果找到問題,修改原來的錯誤或是提出改進方案。效率
以丟包補償算法爲例,要求對丟包的緣由進行分析,想辦法彌補丟包形成的損傷,對原來的簡單丟包模型進行改進,而丟包補償算法從算法自己看不算是複雜算法(不排除能夠用複雜算法實現)。音頻
其餘的相似動態音量調整,音樂語音的區分,嘯叫抑制等問題都算該問題內。
通常對第一種能力的需求的要求要高於第二種,經驗積累的時間也要更多。其實這種分類方法和通常軟件工程師的分類方法差很少,也分構架師和普通工程師。只不過在算法開發內,由於從業人員相對較少的緣由,缺乏這樣的總結(至少我認爲,或者說國內是這樣的)。
固然其餘能力要求也是須要的。通常工程師必備的一些要求是要有的。
我的的一點點總結。