graphName "VoiceActivityDetection_VoiceIsolation-noEC_arm" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Macros ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [def sampleRateIn 48000] ; overridden by ADM [def numChannelsIn 4] ; overridden by ADM [def vadProcSampleRate 16000] [def vadProcBlockSize 320] [def viProcSampleRate 24000] [def viProcBlockSize 240] [def maxProcessedChannels 2] [def kAUNeuralNetParam_NeuralNetModelPathBaseOverride 40000] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; I/O ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; in in out out ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Boxes ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Mic box MicChannelSelector (aufx clsl appl) 1 1 box MicInputGain dbgn 1 1 box InputSRC src 1 1 ; VAD and LoudnessNormalizer box LoudnessNormalizer (aufx ldnm appl) 1 1 box NNVADV2 (aufx nnv2 appl) 1 1 box OutputDeadEndBox dead 1 0 ; VI box VIInputSRC src 1 1 box ZeroConstant constant 0 1 box AUNeuralNet (aufx nnet appl) 1 1 box VIOutputSRC src 1 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Wires ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; wire in MicChannelSelector ([sampleRateIn] [numChannelsIn]) wire MicChannelSelector MicInputGain ([sampleRateIn] 1) wire MicInputGain InputSRC ([sampleRateIn] 1) ; VAD wire InputSRC LoudnessNormalizer ([vadProcSampleRate] 1 [vadProcBlockSize]) wire LoudnessNormalizer NNVADV2 ([vadProcSampleRate] 1 [vadProcBlockSize]) wire NNVADV2 OutputDeadEndBox ([vadProcSampleRate] 1 [vadProcBlockSize]) ; VI wire in VIInputSRC ([sampleRateIn] [numChannelsIn]) [if [== [numChannelsIn] 1] { box AUNeuralNetInputJoin join 2 1 box AUNeuralNetOutputSplit split 1 2 box AUNeuralNetResOutputDeadEnd dead 1 0 wire VIInputSRC (AUNeuralNetInputJoin 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire ZeroConstant (AUNeuralNetInputJoin 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire AUNeuralNetInputJoin AUNeuralNet ([viProcSampleRate] 2 [viProcBlockSize]) wire AUNeuralNet AUNeuralNetOutputSplit ([viProcSampleRate] 2 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 0) VIOutputSRC ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 1) (AUNeuralNetResOutputDeadEnd 0) ([viProcSampleRate] 1 [viProcBlockSize]) }{}] [if [== [numChannelsIn] 2] { box Split split 1 2 box Join join 2 1 box AUNeuralNetInputJoin join 4 1 box AUNeuralNetOutputSplit split 1 4 box AUNeuralNetResOutputDeadEnd dead 2 0 wire VIInputSRC Split ([viProcSampleRate] 2 [viProcBlockSize]) wire (Split 0) (AUNeuralNetInputJoin 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire ZeroConstant (AUNeuralNetInputJoin 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire (Split 1) (AUNeuralNetInputJoin 2) ([viProcSampleRate] 1 [viProcBlockSize]) wire ZeroConstant (AUNeuralNetInputJoin 3) ([viProcSampleRate] 1 [viProcBlockSize]) wire AUNeuralNetInputJoin AUNeuralNet ([viProcSampleRate] 4 [viProcBlockSize]) wire AUNeuralNet AUNeuralNetOutputSplit ([viProcSampleRate] 4 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 1) (AUNeuralNetResOutputDeadEnd 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 3) (AUNeuralNetResOutputDeadEnd 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 0) (Join 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 2) (Join 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire Join VIOutputSRC ([viProcSampleRate] 2 [viProcBlockSize]) }{}] [if [> [numChannelsIn] [maxProcessedChannels]] { [def numUnprocessedChannels [- [numChannelsIn] [maxProcessedChannels]]] box Split split 1 3 box Join join 3 1 box AUNeuralNetInputJoin join 4 1 box AUNeuralNetOutputSplit split 1 4 box AUNeuralNetResOutputDeadEnd dead 2 0 wire VIInputSRC Split ([viProcSampleRate] [numChannelsIn] [viProcBlockSize]) wire (Split 0) (AUNeuralNetInputJoin 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire ZeroConstant (AUNeuralNetInputJoin 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire (Split 1) (AUNeuralNetInputJoin 2) ([viProcSampleRate] 1 [viProcBlockSize]) wire ZeroConstant (AUNeuralNetInputJoin 3) ([viProcSampleRate] 1 [viProcBlockSize]) wire AUNeuralNetInputJoin AUNeuralNet ([viProcSampleRate] 4 [viProcBlockSize]) wire AUNeuralNet AUNeuralNetOutputSplit ([viProcSampleRate] 4 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 1) (AUNeuralNetResOutputDeadEnd 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 3) (AUNeuralNetResOutputDeadEnd 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 0) (Join 0) ([viProcSampleRate] 1 [viProcBlockSize]) wire (AUNeuralNetOutputSplit 2) (Join 1) ([viProcSampleRate] 1 [viProcBlockSize]) wire (Split 2) (Join 2) ([viProcSampleRate] [numUnprocessedChannels] [viProcBlockSize]) wire Join VIOutputSRC ([viProcSampleRate] [numChannelsIn] [viProcBlockSize]) }{}] wire VIOutputSRC out ([sampleRateIn] [numChannelsIn]) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Parameters ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; param sppb 0 out ; speech probability as boolean value (e.g. 0 or 1) wireGraphParam sppb (NNVADV2 5 global 0) param sppf 0 out ; speech probability as float value (e.g. anything between 0.0 and 1.0) wireGraphParam sppf (NNVADV2 6 global 0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Properties ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; property chsl 0x00000000 in wireGraphProperty chsl ( MicChannelSelector slcm 0 0 ) property tudp in ; Tuning Directory Path wireGraphProperty tudp (AUNeuralNet [kAUNeuralNetParam_NeuralNetModelPathBaseOverride])