/******************************************************************************* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠCP q D . Ġ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 Ġbr . com . cp qd . sample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġbr . com . cp qd . asr . Speech Recognizer Ċ import Ġbr . com . cp qd . asr . Speech Recognizer Result Ċ import Ġbr . com . cp qd . asr . audio . File Audio Source Ċ import Ġbr . com . cp qd . asr . constant . ContentType Constants . Companion . TYPE _ JSON Ċ import Ġbr . com . cp qd . asr . constant . ContentType Constants . Companion . TYPE _ OCT ET _ STREAM Ċ import Ġbr . com . cp qd . asr . constant . ContentType Constants . Companion . TYPE _ URI _ LIST Ċ import Ġbr . com . cp qd . asr . model . Language Model List Ċ import Ġbr . com . cp qd . asr . model . Recognition Config Ċ import Ġkotlinx . android . synt hetic . main . activity _ file _ audio .* Ċ Ċ class ĠFile Audio Activity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener , ĠSpeech Recognizer Result Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfile Audio : ĠString Ġ= Ġ" bank _ trans f ira _ 8 k . wav " ĊĊĠĠĠ Ġprivate Ġval Ġuser Ġ= Ġ" foo " ĊĊĠĠĠ Ġprivate Ġval Ġpassword Ġ= Ġ" bar " ĊĊĠĠĠ Ġprivate Ġval Ġrecognition Config : ĠRecognition Config Ġ= ĠRecognition Config . Builder () ĊĠĠĠĠĠĠĠ Ġ. accept ( TYPE _ JSON ) ĊĠĠĠĠĠĠĠ Ġ. no Input Timeout Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ. no Input Timeout M il is ( 2 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ. contentType ( TYPE _ URI _ LIST ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠ Ġprivate Ġval Ġlanguage Model List : ĠLanguage Model List Ġ= ĠLanguage Model List . Builder () ĊĠĠĠĠĠĠĠ Ġ. add From URI (" builtin : sl m / general ") ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ file _ audio ) ĊĊĠĠĠĠĠĠĠ Ġplay . setOnClickListener ( this ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġplay . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprogress . show () ĊĊĠĠĠĠĠĠĠ Ġval Ġaudio Ġ= ĠFile Audio Source ( application Context . assets . open ( file Audio )) ĊĊĠĠĠĠĠĠĠ Ġval Ġspeech Ġ= ĠSpeech Recognizer . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. server URL (" wss :// speech . cp qd . com . br / asr / ws / v 2 / re cognize / 8 k ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. credentials ( user , Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. re cognizer Result ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. config ( recognition Config , Ġlanguage Model List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġspeech . re cognizer ( audio , ĠTYPE _ OCT ET _ STREAM ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġon RadioButton Clicked ( view : ĠView ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠRadio Button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Ġ= Ġview . isChecked ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . transfer Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" bank _ trans f ira _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . big Audio Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" big _ audio _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . cpf Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" cpf _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . music Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" music . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . no End Sil ence Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" no _ end _ sil ence _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . p izza Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" p izza _ ve g _ audio _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sil ence Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Audio Ġ= Ġ" sil ence _ 8 k . wav " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Result ( result : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse File . text Ġ= Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplay . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress . hide () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }