如何避免音頻信號處理中的常見錯誤
發布時間:2023-01-11 責任編輯:lina
【導讀】音頻信號處理產品的設計和編碼軟件有其獨特的挑戰。那麼,開發人員最常犯的錯誤是什麼?如何避免這些錯誤呢?
無論最終產品是什麼,無論他們使用什麼語言編寫代碼,世界各地的軟件開發人員都麵臨著同樣的挑戰——不斷變化的客戶需求、緊迫的交期、整合和客戶支持,以上隻是幾個例子。
但(dan)是(shi)有(you)一(yi)種(zhong)類(lei)型(xing)的(de)軟(ruan)件(jian)開(kai)發(fa)涉(she)及(ji)了(le)解(jie)和(he)解(jie)決(jue)非(fei)常(chang)具(ju)體(ti)的(de)問(wen)題(ti)。音(yin)頻(pin)信(xin)號(hao)處(chu)理(li)產(chan)品(pin)的(de)設(she)計(ji)和(he)編(bian)碼(ma)軟(ruan)件(jian)有(you)其(qi)獨(du)特(te)的(de)挑(tiao)戰(zhan)。那(na)麼(me),開(kai)發(fa)人(ren)員(yuan)最(zui)常(chang)犯(fan)的(de)錯(cuo)誤(wu)是(shi)什(shen)麼(me)?如(ru)何(he)避(bi)免(mian)這(zhe)些(xie)錯(cuo)誤(wu)呢(ne)?
了解信號處理對於在音頻領域工作的軟件工程師很有幫助,但這不是必需的。然而,有些領域對音頻有一些了解確實有所幫助。
shouxian,shizengyijiegou,lejieyinliangkongzhikeyiweiwomendexitongzengjiazengyi。zheshiyongyuwomenruanjiandeneibujiegou,bingjiangyingxiangwomencharuyuanxingdesuoyouxiaogongju。jieguokenengshishengyinshuchulingrenbumanyi。kaifarenyuanyiweizheshiyouyudaimazhongdecuowuzaochengde,ershijishangzheshizengyijiegoudewenti。zhidaozheyidiankeyizaibubiyaodetiaoshizhongjieshengdaliangshijian。
qici,ruanjiankaifarenyuanyoushihuiwangjiyinpinlvbohuizengjiaqunyanchi。ruguowomenwangjilezhegejibenshishi,womenkenenghuiguofenchengnuowomendesuanfadexingneng,womenhuirenweitahuibishijixingdongdegengkuai。
第(di)三(san),一(yi)個(ge)雖(sui)然(ran)很(hen)小(xiao)但(dan)很(hen)重(zhong)要(yao)的(de)點(dian)是(shi)實(shi)際(ji)數(shu)據(ju)和(he)理(li)論(lun)數(shu)據(ju)之(zhi)間(jian)的(de)差(cha)異(yi)。數(shu)學(xue)有(you)零(ling),但(dan)音(yin)頻(pin)沒(mei)有(you)。在(zai)數(shu)學(xue)中(zhong),算(suan)法(fa)的(de)設(she)計(ji)使(shi)用(yong)理(li)論(lun)數(shu)據(ju)。當(dang)使(shi)用(yong)實(shi)際(ji)數(shu)據(ju)測(ce)試(shi)我(wo)們(men)的(de)係(xi)統(tong)時(shi),我(wo)們(men)可(ke)能(neng)會(hui)發(fa)現(xian)一(yi)個(ge)信(xin)號(hao)似(si)乎(hu)是(shi)無(wu)聲(sheng)的(de)。在(zai)那(na)種(zhong)情(qing)況(kuang)下(xia),放(fang)大(da)它(ta)總(zong)是(shi)值(zhi)得(de)的(de)——它可能有點嘶嘶聲,也可能全是零。
最後,我們不可能隻采用一種算法並將其部署在所有設備上。我們需要在開發過程中盡早考慮我們的算法將要有的部署約束條件。一些DSP非常高效且功耗低,但它們的內存可能有限。其他的可能非常適合用於AIchuli,dantamenhuiyinrugenggaodeyanchi。ruguoninengshejiyigequanhengkongjianheshijiandesuanfa,najiutaihaole。danshijishang,daduoshusuanfawufazuodaozheyidian,yinciwomenkenenghuifaxianzijiwufahuodegonghaozuidideqianrushishebei。
在(zai)任(ren)何(he)開(kai)發(fa)中(zhong),在(zai)開(kai)發(fa)開(kai)始(shi)之(zhi)前(qian)了(le)解(jie)客(ke)戶(hu)需(xu)求(qiu)是(shi)必(bi)不(bu)可(ke)少(shao)的(de)。但(dan)在(zai)處(chu)理(li)音(yin)頻(pin)時(shi),這(zhe)一(yi)點(dian)更(geng)為(wei)重(zhong)要(yao)。為(wei)什(shen)麼(me)呢(ne)?因(yin)為(wei)對(dui)於(yu)音(yin)頻(pin),客(ke)戶(hu)不(bu)僅(jin)需(xu)要(yao)一(yi)個(ge)運(yun)行(xing)良(liang)好(hao)的(de)係(xi)統(tong),他(ta)們(men)還(hai)需(xu)要(yao)一(yi)個(ge)可(ke)以(yi)輸(shu)出(chu)出(chu)色(se)音(yin)頻(pin)的(de)係(xi)統(tong)。問(wen)題(ti)是(shi)每(mei)個(ge)人(ren)聽(ting)到(dao)的(de)聲(sheng)音(yin)都(dou)不(bu)一(yi)樣(yang)(例如,年齡會影響聽力敏銳度),而且我們對聽起來“好”的聲音都有個人偏好。我們可能會發現我們花了很長時間開發的一種產品,最終客戶根本不喜歡。
對dui於yu大da多duo數shu音yin頻pin開kai發fa人ren員yuan來lai說shuo,這zhe是shi一yi個ge持chi續xu存cun在zai的de問wen題ti。音yin頻pin的de評ping估gu比bi視shi覺jiao算suan法fa的de評ping估gu更geng難nan。這zhe是shi為wei什shen麼me?因yin為wei視shi覺jiao結jie果guo可ke以yi並bing排pai放fang置zhi並bing同tong時shi將jiang它ta們men相xiang互hu進jin行xing比bi較jiao。但dan你ni不bu能neng同tong時shi比bi較jiao音yin頻pin:你不能同時聽兩件事。因此,音頻結果的A/B測(ce)試(shi)隻(zhi)能(neng)是(shi)順(shun)序(xu)的(de),不(bu)能(neng)同(tong)時(shi)進(jin)行(xing)。所(suo)以(yi),測(ce)試(shi)音(yin)頻(pin)需(xu)要(yao)更(geng)長(chang)的(de)時(shi)間(jian),我(wo)們(men)可(ke)能(neng)需(xu)要(yao)聽(ting)兩(liang)個(ge)小(xiao)時(shi)的(de)測(ce)試(shi)錄(lu)音(yin)僅(jin)僅(jin)是(shi)為(wei)了(le)評(ping)估(gu)對(dui)算(suan)法(fa)的(de)小(xiao)調(tiao)整(zheng)。我(wo)們(men)要(yao)確(que)保(bao)項(xiang)目(mu)的(de)計(ji)劃(hua)包(bao)含(han)有(you)比(bi)我(wo)們(men)認(ren)為(wei)需(xu)要(yao)的(de)更(geng)長(chang)的(de)測(ce)試(shi)時(shi)間(jian)。
我們可以通過商定使用一種普遍被接受的音頻測試指標(例如MOS分數)laibimianzhezhongzhuguanxing。zhexieshurudeyinpinheyuqisuoxudeguanzhongduijieguodepingjia。queshiyouzhuyupingguzhiliang,danbuhuigeiwomentigonggaijindeyuanyin。xuduochangjiandeceshihezhibiaoshiweiyouxiandianhuadengchuantongdexianyouyingyongkaifade,bingqiepianxiangyuzhexieyingyong。yinci,shiyongzhibiaohuiyousuobangzhu,danzhebushijueduidedaan。zaiwomenkaishigongzuozhiqian,yaoquebaowomendekehubatamendeyuanjinggaosuwomen,yinweitamenxiwangyinpintingqilaixiangshenme,zheyidianzhiguanzhongyao。
了(le)解(jie)客(ke)戶(hu)的(de)願(yuan)景(jing)對(dui)於(yu)下(xia)一(yi)個(ge)要(yao)注(zhu)意(yi)的(de)問(wen)題(ti)整(zheng)合(he)也(ye)很(hen)重(zhong)要(yao)。我(wo)們(men)的(de)音(yin)頻(pin)是(shi)係(xi)統(tong)的(de)一(yi)部(bu)分(fen)。所(suo)有(you)部(bu)分(fen)都(dou)必(bi)須(xu)協(xie)同(tong)工(gong)作(zuo),但(dan)係(xi)統(tong)的(de)其(qi)餘(yu)部(bu)分(fen)受(shou)處(chu)理(li)音(yin)頻(pin)的(de)消(xiao)耗(hao)限(xian)製(zhi),而(er)我(wo)們(men)的(de)音(yin)頻(pin)也(ye)受(shou)係(xi)統(tong)其(qi)餘(yu)部(bu)分(fen)消(xiao)耗(hao)的(de)限(xian)製(zhi)。如(ru)果(guo)音(yin)頻(pin)在(zai)實(shi)際(ji)的(de)係(xi)統(tong)上(shang)斷(duan)斷(duan)續(xu)續(xu),那(na)麼(me)在(zai)空(kong)的(de)係(xi)統(tong)上(shang)開(kai)發(fa)運(yun)行(xing)良(liang)好(hao)的(de)東(dong)西(xi)是(shi)沒(mei)有(you)意(yi)義(yi)的(de),而(er)且(qie)會(hui)浪(lang)費(fei)很(hen)多(duo)資(zi)源(yuan)。所(suo)以(yi),早(zao)點(dian)整(zheng)合(he)吧(ba)。但(dan)是(shi),正(zheng)如(ru)開(kai)發(fa)人(ren)員(yuan)都(dou)知(zhi)道(dao)的(de),整(zheng)合(he)的(de)成(cheng)本(ben)很(hen)高(gao)。為(wei)了(le)防(fang)止(zhi)將(jiang)時(shi)間(jian)浪(lang)費(fei)在(zai)整(zheng)合(he)不(bu)合(he)適(shi)的(de)內(nei)容(rong)上(shang),我(wo)們(men)首(shou)先(xian)需(xu)要(yao)與(yu)客(ke)戶(hu)交(jiao)談(tan)。並(bing)且(qie),在(zai)開(kai)始(shi)開(kai)發(fa)之(zhi)前(qian),獲(huo)取(qu)所(suo)選(xuan)用(yong)例(li)中(zhong)的(de)一(yi)些(xie)錄(lu)音(yin)樣(yang)本(ben),同(tong)時(shi)預(yu)覽(lan)它(ta)們(men)或(huo)離(li)線(xian)工(gong)作(zuo)來(lai)估(gu)計(ji)我(wo)們(men)將(jiang)能(neng)夠(gou)實(shi)現(xian)的(de)目(mu)標(biao)並(bing)確(que)保(bao)它(ta)符(fu)合(he)客(ke)戶(hu)的(de)願(yuan)景(jing)。
kaifarenyuanhuifandeyigechangjiancuowushizaikaifaguochengzhongmeiyoujinzaohuoderuanjianliu。zhehenzhongyao,yinweiruguowomenbujinzaojinxingliushichuanshu,womenkenenghuiyaochulidaozhijieguoguofenchengnuodewenjian。ruguowomenzhengzaibianxieyizhongsuanfa,tameifangwenyiweiyinpinjiuxiangshujujiegoutianjiayigechengfen,zeshujujiegoudedaxiaoyuwomenzhengzaichulidewenjiandedaxiaochengzhengbi。raner,yidanwenjianbeiyinpinliutihuan,shujujiegoukenenghuizaishebeiyunxingshiwuxianzengda。tongguojinzaoliushichuanshu,keyijiangdikaifafengxian,bingqiekeyijinyibuquebaowomendesuanfayizhunbeihaojinxingdaguimoshengchan。
lingwai,congyikaishijiukaolvceshiguocheng。jintongguoyinpinshuchujinxingceshihenkunnan,yinweitashishishuxinhao。yaoquebaojinkenengduodijinxingdanyuanceshi,erbushiyilaiyubutongchuliqihepingtaizhijiankenengbutongdeyinpinshuchu。
查看編碼過程本身,我們需要在定點和浮點之間做出決定。定點曾經是表示用於存儲和計算的音頻樣本的“go to”方法。定點計算將使用與整數計算相同的ALU部件,一個簡單的數學技巧是大致估計連續變化的數量,在精度和數量大小之間進行權衡。
浮點在ALU中實現起來更複雜,但在現代CPU中(例如在移動設備中)使(shi)用(yong)它(ta)幾(ji)乎(hu)沒(mei)有(you)或(huo)完(wan)全(quan)沒(mei)有(you)損(sun)失(shi)。存(cun)在(zai)的(de)損(sun)失(shi)被(bei)工(gong)程(cheng)時(shi)間(jian)要(yao)求(qiu)的(de)減(jian)少(shao)和(he)用(yong)於(yu)優(you)化(hua)算(suan)法(fa)的(de)時(shi)間(jian)量(liang)的(de)增(zeng)加(jia)所(suo)抵(di)消(xiao)。音(yin)頻(pin)算(suan)法(fa)通(tong)常(chang)龐(pang)大(da)而(er)複(fu)雜(za),而(er)浮(fu)點(dian)可(ke)以(yi)用(yong)更(geng)少(shao)的(de)工(gong)程(cheng)資(zi)源(yuan)實(shi)現(xian)它(ta)們(men),因(yin)為(wei)它(ta)簡(jian)化(hua)了(le)運(yun)算(suan)。使(shi)用(yong)浮(fu)點(dian)數(shu)的(de)開(kai)發(fa)人(ren)員(yuan)無(wu)需(xu)擔(dan)心(xin)整(zheng)數(shu)上(shang)溢(yi)或(huo)下(xia)溢(yi)。
關於手機,值得記住的是,手機中通常使用的CPU不僅會處理浮點運算,還會將其矢量化。因此,如果這是我們的用例,請確保我們設計的代碼能夠進行矢量化。
另一個技巧是在試驗係統行為時將音頻大量寫入文件。根據我們寫入的介質,我們可能需要一個工作線程,例如一張SD卡。這個工作線程就像一個軟件管家,我們可以將音頻數據提供給它;它ta耐nai心xin等deng待dai,然ran後hou將jiang其qi交jiao給gei設she備bei。這zhe意yi味wei著zhe我wo們men的de核he心xin算suan法fa不bu必bi等deng待dai和he阻zu止zhi運yun行xing時shi的de行xing為wei。如ru果guo要yao寫xie入ru多duo個ge文wen件jian,請qing檢jian查zha它ta們men是shi否fou都dou從cong同tong一yi位wei置zhi開kai始shi。例li如ru,如ru果guo我wo們men停ting止zhi其qi中zhong一yi個ge文wen件jian的de開kai頭tou40ms,我們會發現係統中會出現無法解釋的40ms延遲。
在音頻信號處理方麵,粗心的人會遇到很多陷阱。但是,通過正確的準備,我們可以通往成功的產品開發。
(原文刊登於EDN姊妹網站Embedded,參考鏈接:Common mistakes in audio signal processing – and how to avoid them,由Ricardo Xie編譯。)
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




