/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠSK ĠTele com ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp : www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . sk t . n ugu . sdk . platform . android . speech re cognizer Ċ Ċ import Ġcom . sk t . n ugu . sdk . agent . asr . Wake up Info Ċ import Ġcom . sk t . n ugu . sdk . platform . android . speech re cognizer . measure . Accum ulate Buffer Power Measure Ċ import Ġcom . sk t . n ugu . sdk . platform . android . speech re cognizer . measure . Power Measure Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . util .* Ċ Ċ class ĠKeyword Power Measure ( private Ġval Ġpower Measure : ĠPower Measure ) Ġ: ĊĠĠĠ ĠAcc um ulate Buffer Power Measure Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWINDO W _ SIZE Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMAX _ DEC IB EL Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ DEC IB EL Ġ= Ġ- 9 9 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġwindow : ĠQueue < Float > Ġ= ĠLinkedList () ĊĊĠĠĠ Ġoverride Ġfun Ġaccum ulate ( buffer : ĠByteBuffer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpower Measure . measure ( buffer ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( window ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( window . size Ġ>= ĠWINDO W _ SIZE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . poll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . offer ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Est imated Power (): ĠW ake up Info . Power Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġspeech Dec ib el Ġ= ĠMIN _ DEC IB EL ĊĠĠĠĠĠĠĠ Ġvar Ġnoise Dec ib el Ġ= ĠMAX _ DEC IB EL ĊĊĊĠĠĠĠĠĠĠ Ġsynchronized ( window ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ> Ġspeech Dec ib el ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeech Dec ib el Ġ= ĠMath . min ( MAX _ DEC IB EL , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it Ġ< Ġnoise Dec ib el ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnoise Dec ib el Ġ= ĠMath . max ( MIN _ DEC IB EL , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW ake up Info . Power ( speech Dec ib el , Ġnoise Dec ib el ) ĊĠĠĠ Ġ} Ċ }