@@ -20,7 +20,7 @@ use context_switch_core::{
2020 Input , OutputPath , ThresholdLevel , audio,
2121} ;
2222
23- use crate :: transcribe:: { Params , ServiceOutputEvent } ;
23+ use crate :: transcribe:: { NoiseReduction , NoiseReductionType , Params , ServiceOutputEvent } ;
2424use crate :: transcription_state:: TranscriptionState ;
2525
2626pub struct Client {
@@ -114,7 +114,7 @@ impl Client {
114114 async fn send_session_update ( & mut self , params : & Params ) -> Result < ( ) > {
115115 let session = types:: VoiceLiveSession {
116116 input_audio_sampling_rate : None ,
117- input_audio_noise_reduction : params. noise_reduction . clone ( ) ,
117+ input_audio_noise_reduction : params. noise_reduction . as_ref ( ) . map ( noise_reduction ) ,
118118 input_audio_echo_cancellation : None ,
119119 input_audio_transcription : Some ( types:: TranscriptionConfig {
120120 language : params. language . clone ( ) ,
@@ -321,6 +321,18 @@ fn eou_threshold_level(level: ThresholdLevel) -> EndOfUtteranceThresholdLevel {
321321 }
322322}
323323
324+ fn noise_reduction ( configured : & NoiseReduction ) -> types:: NoiseReduction {
325+ let reduction_type = match configured. reduction_type {
326+ NoiseReductionType :: NearField => types:: NoiseReductionType :: NearField ,
327+ NoiseReductionType :: FarField => types:: NoiseReductionType :: FarField ,
328+ NoiseReductionType :: AzureDeepNoiseSuppression => {
329+ types:: NoiseReductionType :: AzureDeepNoiseSuppression
330+ }
331+ } ;
332+
333+ types:: NoiseReduction { reduction_type }
334+ }
335+
324336enum FlowControl {
325337 Continue ,
326338 End ,
0 commit comments