領(lǐng)導(dǎo)把公司的一個(gè)重要研究項(xiàng)目(命名為順耳風(fēng))交到了我手上--關(guān)鍵詞喚醒系統(tǒng),也就是當(dāng)下最熱門的熱詞喚醒。為了盡快的給客戶演示,留給我的時(shí)間大約有三個(gè)月,剛開始我估算了一下,算法研究一個(gè)月,仿真一個(gè)月,后面調(diào)試差不多再有一個(gè)月基本就可以了。音頻算法我這塊以前研究過不少,有這塊的相關(guān)經(jīng)驗(yàn)。按道理是可以按時(shí)交付的。
就這樣,項(xiàng)目在我的調(diào)研中就開始了,開始的時(shí)候,調(diào)研了不少業(yè)內(nèi)的開源的熱詞喚醒系統(tǒng),再結(jié)合公司的平臺(tái)(公司是跑的小系統(tǒng),資源比較緊張,ram空間200k,主頻只有120M左右)。所以,一定要選擇那種資源占用少,效率高的算法。經(jīng)過兩周調(diào)研,我選中了一塊比較小的開源熱詞喚醒系統(tǒng),該算法算是仿真環(huán)境下最適合小系統(tǒng)上使用的了。接下來,就要測試一下該系統(tǒng)喚醒率怎么樣了,由于該系統(tǒng)只要自帶的特殊格式的音頻文件才能測試,用該系統(tǒng)自帶的音頻格式測試,效果非常的好。識(shí)別率基本是100%。這樣的效果讓我對(duì)該算法充滿了信心。慢慢都是正能量。
接下來就需要把算法在pc機(jī)上進(jìn)行仿真,這塊的工作主要有把算法的底層改動(dòng)能適應(yīng)公司硬件平臺(tái)需求,接口改動(dòng)能夠讀取主流的音頻格式。能否在pc機(jī)上仿真算法的效果。其實(shí),這中間的工作量還挺大,足足花了我三周的時(shí)間去完成。等到完成了基本的仿真,確認(rèn)基本效果ok之后,就開始了下一步的工作--把算法移植到芯片上。
把算法移植到芯片上,這部分主要是接口的工作量比較大,是芯片的接口能夠適配算法。這段時(shí)間花費(fèi)了我三周的時(shí)間。等到基本移植完成之后,項(xiàng)目周期已經(jīng)過去了三分之二。這時(shí)的我,有點(diǎn)著急了。破屋偏逢連陰雨,就在這快要結(jié)束的時(shí)刻,發(fā)現(xiàn)了幾個(gè)比較嚴(yán)重的問題,一個(gè)是,針對(duì)熱詞喚醒,vad檢測音頻之后再啟動(dòng)特征提取,這時(shí)算法的效果就變差了。再者就是從麥克過來的音頻有噪聲,這樣也會(huì)降低了識(shí)別率。這兩個(gè)問題是非常的棘手。vad檢測和算法的特征提取配合,這個(gè)需要反復(fù)的驗(yàn)證和調(diào)vad的參數(shù)和算法的流程,同時(shí)也需要在電腦上進(jìn)行仿真,這樣來回的仿真和單板的來回測試,花了差不多兩周的時(shí)間,效果仍舊不是那么的好。不過,算是湊合著能演示吧,不管了,先把產(chǎn)品的demo做出來再說。另外一個(gè)麥克通路過來有噪聲的問題,需要我拉著硬件的和數(shù)字的同事一起看。等到我和他們一起把這個(gè)問題解決時(shí),產(chǎn)品周期已經(jīng)到了。從我簡單的測試效果來看,基本能用了吧。于是,就給老大說,已經(jīng)完成了。為了快速的出去演示,老板也沒有去仔細(xì)的測試,直接把東西拿到客戶那邊演示了。等到聽到客戶的反饋時(shí),我那么僥幸的心情瞬間崩塌,產(chǎn)品遠(yuǎn)遠(yuǎn)沒有達(dá)到要求。三個(gè)月的努力瞬間化為悔恨和懊惱,到底哪兒出了問題?
哪兒出現(xiàn)了問題?
該項(xiàng)目的失敗,讓我一直在問題自己這樣一個(gè)問題,到底我在這里錯(cuò)在哪兒?從一個(gè)產(chǎn)品經(jīng)理的角度來講,我錯(cuò)在是時(shí)間估計(jì)太樂觀,其實(shí),后面和一個(gè)資深的算法工程師討論過這個(gè)問題,他說的還是挺有一定有道理的。一個(gè)算法從理論到產(chǎn)品,一般要經(jīng)過一年的時(shí)間去打磨,太快了會(huì)出事的。回顧一下自己的這個(gè)項(xiàng)目,就是后面的測試太少,客戶的場景基本沒有考慮的情況下,不出問題才怪呢。都怪我太匆忙。今后,這點(diǎn)一定要注意,項(xiàng)目評(píng)估時(shí)間的時(shí)候還是要留余量的。
從一個(gè)軟件開發(fā)人員的角度來考慮,最大的問題就是思維不夠縝密,心存僥幸心里,對(duì)客戶的的使用場景沒有充分的去調(diào)研和測試。反復(fù)想一想,其實(shí),這種事情不止一次發(fā)生在我身上了,自己沒有經(jīng)過測試充分的產(chǎn)品給測試人員,測試人員能會(huì)測試不出來問題嗎?客戶難道不會(huì)測試出來問題?做事情,千萬不能心存僥幸,這個(gè)是血的教訓(xùn)啊。
此岸和彼岸
其實(shí),每個(gè)翩翩少年,都藏著一顆用代碼去改變世界的夢想,可是,當(dāng)面臨著現(xiàn)實(shí)的種種煩擾時(shí),有太多的理由和困難讓我們?nèi)シ艞墶T跓o數(shù)先賢人們構(gòu)造的軟件數(shù)字迷宮中,作為一個(gè)凡夫俗子的程序員更容易迷失方向,到底,怎么才能到達(dá)彼岸,哪兒又是彼岸呢?依稀還記得老子的一句話--圖難于其易,為大于其細(xì)。天下難事必作于易,天下大事必作于細(xì)。當(dāng)穿越軟件的層層迷宮之后,我才有點(diǎn)幡然醒悟的覺決。算法的彼岸,就是客戶的認(rèn)同和滿足,一切的產(chǎn)品,都應(yīng)該以是否滿足客戶的需求去定義和開發(fā)。在這個(gè)此岸彼岸之間,就是這就是老子留給我的那句心決--難作于易,大作與細(xì)。
-
工程師
+關(guān)注
關(guān)注
59文章
1574瀏覽量
68691
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何成為嵌入式開發(fā)工程師?
月薪 3 萬的嵌入式工程師都在用,串口屏到底神在哪?
![月薪 3 萬的嵌入式<b class='flag-5'>工程師</b>都在用,串口屏到底神在哪?](https://file1.elecfans.com/web3/M00/07/ED/wKgZPGesCHCAFrKSAAEBXym8SBs375.png)
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技
![](https://file1.elecfans.com/web3/M00/05/23/wKgZPGd8_r6AIVYwAARegASQcWo302.jpg)
為什么嵌入式驅(qū)動(dòng)開發(fā)工程師可以拿高薪?
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?
嵌入式軟件工程師如何提升自己?
![](https://file1.elecfans.com/web2/M00/EB/14/wKgaomZXAd-AWEwjAAuV2RdwuSM130.png)
干硬件這一行,各種辛酸只有同行才懂吧 ? #電路設(shè)計(jì) #電子愛好者 #硬件工程師 #電子工程師
索尼誠邀軟件工程師參與PS免費(fèi)手游平臺(tái)設(shè)計(jì)
![](https://file1.elecfans.com/web2/M00/DF/FB/wKgZomY1H9uAdzzJAAMwQMmJ0js548.jpg)
“班長!說好畢業(yè)后當(dāng)硬件工程師,你怎么..." #搞笑 #電子行業(yè) #電子工程師 #晶振 #揚(yáng)興科技
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
如何成為一名嵌入式C語言高手?
如何成為一名嵌入式C語言高手?
單片機(jī)如何通過代碼控制硬件:一名工程師的分享
![單片機(jī)如何通過代碼控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程師</b>的分享](https://file1.elecfans.com/web2/M00/C2/D6/wKgZomXoETmAYdSCAADYRReTHqA347.png)
評(píng)論