def __init__(self): self.detect_silence_module = DetectSilence() self.energy_denoise_module = EnergyDenoise() self.sox_denoise_module = SoxDenoise() self.utilities_module = Utilities() self.set_noise_profile_module = SetNoiseProfile() self.transform_audio_module= TransformAudio() # Parameters acquisition self.set_noise_profile_topic = \ rospy.get_param("rapp_audio_processing_set_noise_profile_topic") self.denoise_topic = \ rospy.get_param("rapp_audio_processing_denoise_topic") self.energy_denoise_topic = \ rospy.get_param("rapp_audio_processing_energy_denoise_topic") self.detect_silence_topic = \ rospy.get_param("rapp_audio_processing_detect_silence_topic") self.transform_audio_topic = \ rospy.get_param("rapp_audio_processing_transform_audio_topic") if(not self.set_noise_profile_topic): rospy.logerror("Audio processing noise profiling topic param not found") if(not self.denoise_topic): rospy.logerror("Audio processing denoise topic param not found") if(not self.energy_denoise_topic): rospy.logerror("Audio processing energy denoise topic param not found") if(not self.detect_silence_topic): rospy.logerror("Audio processing detect silence topic param not found") if(not self.transform_audio_topic): rospy.logerror("Audio processing noise transform audio topic param not found") # Check for denoising debug mode. DO NOT make this true when in production self.energy_denoising_debug = False self.energy_denoising_debug = \ rospy.get_param("rapp_audio_processing_energy_denoising_debug") if not self.energy_denoising_debug: self.energy_denoising_debug = False else: self.energy_denoising_debug = True # Create set noise profile services self.set_noise_profile_service = rospy.Service(self.set_noise_profile_topic, \ AudioProcessingSetNoiseProfileSrv, self.setNoiseProfile) # Create sox denoise services self.denoise_service = rospy.Service( \ self.denoise_topic, AudioProcessingDenoiseSrv, \ self.denoise) # Create energy denoise services self.energy_denoise_service = rospy.Service( \ self.energy_denoise_topic, AudioProcessingDenoiseSrv, \ self.energy_denoise) # Create detect silence services self.detect_silence_service = rospy.Service( \ self.detect_silence_topic, AudioProcessingDetectSilenceSrv, \ self.detect_silence) # Create transform audio services self.transform_audio = rospy.Service( self.transform_audio_topic, \ AudioProcessingTransformAudioSrv, self.transform_audio) self.serv_db_topic = rospy.get_param("rapp_mysql_wrapper_user_fetch_data_topic")
class AudioProcessing: # Constructor performing initializations def __init__(self): self.detect_silence_module = DetectSilence() self.energy_denoise_module = EnergyDenoise() self.sox_denoise_module = SoxDenoise() self.utilities_module = Utilities() self.set_noise_profile_module = SetNoiseProfile() self.transform_audio_module= TransformAudio() # Parameters acquisition self.set_noise_profile_topic = \ rospy.get_param("rapp_audio_processing_set_noise_profile_topic") self.denoise_topic = \ rospy.get_param("rapp_audio_processing_denoise_topic") self.energy_denoise_topic = \ rospy.get_param("rapp_audio_processing_energy_denoise_topic") self.detect_silence_topic = \ rospy.get_param("rapp_audio_processing_detect_silence_topic") self.transform_audio_topic = \ rospy.get_param("rapp_audio_processing_transform_audio_topic") if(not self.set_noise_profile_topic): rospy.logerror("Audio processing noise profiling topic param not found") if(not self.denoise_topic): rospy.logerror("Audio processing denoise topic param not found") if(not self.energy_denoise_topic): rospy.logerror("Audio processing energy denoise topic param not found") if(not self.detect_silence_topic): rospy.logerror("Audio processing detect silence topic param not found") if(not self.transform_audio_topic): rospy.logerror("Audio processing noise transform audio topic param not found") # Check for denoising debug mode. DO NOT make this true when in production self.energy_denoising_debug = False self.energy_denoising_debug = \ rospy.get_param("rapp_audio_processing_energy_denoising_debug") if not self.energy_denoising_debug: self.energy_denoising_debug = False else: self.energy_denoising_debug = True # Create set noise profile services self.set_noise_profile_service = rospy.Service(self.set_noise_profile_topic, \ AudioProcessingSetNoiseProfileSrv, self.setNoiseProfile) # Create sox denoise services self.denoise_service = rospy.Service( \ self.denoise_topic, AudioProcessingDenoiseSrv, \ self.denoise) # Create energy denoise services self.energy_denoise_service = rospy.Service( \ self.energy_denoise_topic, AudioProcessingDenoiseSrv, \ self.energy_denoise) # Create detect silence services self.detect_silence_service = rospy.Service( \ self.detect_silence_topic, AudioProcessingDetectSilenceSrv, \ self.detect_silence) # Create transform audio services self.transform_audio = rospy.Service( self.transform_audio_topic, \ AudioProcessingTransformAudioSrv, self.transform_audio) self.serv_db_topic = rospy.get_param("rapp_mysql_wrapper_user_fetch_data_topic") # Service callback for setting noise profile def setNoiseProfile(self, req): res = AudioProcessingSetNoiseProfileSrvResponse() #-------------------------Check with database-------------------------# authentication_service = rospy.ServiceProxy(self.serv_db_topic, fetchDataSrv) req_db = fetchDataSrv() req_db.req_cols=["username"] entry1=["username", req.user] req_db.where_data=[StringArrayMsg(s=entry1)] resp = authentication_service(req_db.req_cols, req_db.where_data) if resp.success.data != True or len(resp.res_data) == 0: res.success = "false" res.error = "Non authenticated user" return res #-------------------------set noise profile-------------------------# ret = self.set_noise_profile_module.setNoise_profile(\ req.user,\ req.noise_audio_file,\ req.audio_file_type) if ret == 'true': res.success = ret res.error = '' else: res.success = 'false' res.error = ret return res # Service callback for handling denoising def denoise(self, req): res = AudioProcessingDenoiseSrvResponse() res.success = self.sox_denoise_module.soxDenoise(\ req.user,\ req.audio_type,\ req.audio_file,\ req.denoised_audio_file,\ req.scale) return res # Service callback for detecting silence def detect_silence(self, req): res = AudioProcessingDetectSilenceSrvResponse() [res.level, res.silence] = self.detect_silence_module.detectSilence(\ req.audio_file, req.threshold) if res.silence == True: res.silence = "true" else: res.silence = "false" return res # Service callback for energy denoising def energy_denoise(self, req): res = AudioProcessingDenoiseSrvResponse() output = self.energy_denoise_module.energyDenoise(\ req.audio_file, req.scale, req.denoised_audio_file,\ self.energy_denoising_debug) if output == True: res.success = "true" else: res.success = "false" return res # Service callback for audio transformation def transform_audio(self, req): res = AudioProcessingTransformAudioSrvResponse() [ res.error, res.fullpath ] = \ self.transform_audio_module.transform_audio( \ req.source_type, req.source_name, req.target_type, \ req.target_name, req.target_channels, req.target_rate ) return res # Cleanup method def cleanup(self, clean): return self.utilities_module.cleanup(clean)
class AudioProcessing: ## Constructor performing initializations def __init__(self): ## Instantiates rapp_detect_silence.DetectSilence self._detect_silence_module = DetectSilence() ## Instantiates rapp_energy_denoise.EnergyDenoise self._energy_denoise_module = EnergyDenoise() ## Instantiates rapp_sox_denoise.SoxDenoise self._sox_denoise_module = SoxDenoise() ## Instantiates rapp_utilities.Utilities self._utilities_module = Utilities() ## Instantiates rapp_set_noise_profile.SetNoiseProfile self._set_noise_profile_module = SetNoiseProfile() ## Instantiates rapp_transform_audio.TransformAudio self._transform_audio_module= TransformAudio() # Parameters acquisition set_noise_profile_topic = \ rospy.get_param("rapp_audio_processing_set_noise_profile_topic") denoise_topic = \ rospy.get_param("rapp_audio_processing_denoise_topic") energy_denoise_topic = \ rospy.get_param("rapp_audio_processing_energy_denoise_topic") detect_silence_topic = \ rospy.get_param("rapp_audio_processing_detect_silence_topic") transform_audio_topic = \ rospy.get_param("rapp_audio_processing_transform_audio_topic") if(not set_noise_profile_topic): rospy.logerror("Audio processing noise profiling topic param not found") if(not denoise_topic): rospy.logerror("Audio processing denoise topic param not found") if(not energy_denoise_topic): rospy.logerror("Audio processing energy denoise topic param not found") if(not detect_silence_topic): rospy.logerror("Audio processing detect silence topic param not found") if(not transform_audio_topic): rospy.logerror("Audio processing noise transform audio topic param not found") # Check for denoising debug mode. DO NOT make this true when in production ## Energy denoising degug flag self._energy_denoising_debug = False self._energy_denoising_debug = \ rospy.get_param("rapp_audio_processing_energy_denoising_debug") if not self._energy_denoising_debug: self._energy_denoising_debug = False else: self._energy_denoising_debug = True # Create set noise profile services set_noise_profile_service = rospy.Service(set_noise_profile_topic, \ AudioProcessingSetNoiseProfileSrv, self.setNoiseProfileCallback) # Create sox denoise services denoise_service = rospy.Service( \ denoise_topic, AudioProcessingDenoiseSrv, \ self.denoiseCallback) # Create energy denoise services energy_denoise_service = rospy.Service( \ energy_denoise_topic, AudioProcessingDenoiseSrv, \ self.energyDenoiseCallback) # Create detect silence services detect_silence_service = rospy.Service( \ detect_silence_topic, AudioProcessingDetectSilenceSrv, \ self.detectSilenceCallback) # Create transform audio services transform_audio = rospy.Service( transform_audio_topic, \ AudioProcessingTransformAudioSrv, self.transformAudioCallback) ## Service callback for setting noise profile # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingSetNoiseProfileSrv] The set noise profile request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingSetNoiseProfileSrvResponse] The set noise profile response def setNoiseProfileCallback(self, req): res = AudioProcessingSetNoiseProfileSrvResponse() #-------------------------Check with database-------------------------# serv_db_topic = rospy.get_param("rapp_mysql_wrapper_user_fetch_data_topic") authentication_service = rospy.ServiceProxy(serv_db_topic, fetchDataSrv) req_db = fetchDataSrv() req_db.req_cols=["username"] entry1=["username", req.user] req_db.where_data=[StringArrayMsg(s=entry1)] resp = authentication_service(req_db.req_cols, req_db.where_data) if resp.success.data != True or len(resp.res_data) == 0: res.success = "false" res.error = "Non authenticated user" return res #-------------------------set noise profile-------------------------# ret = self._set_noise_profile_module.setNoise_profile(\ req.user,\ req.noise_audio_file,\ req.audio_file_type) if ret == 'true': res.success = ret res.error = '' else: res.success = 'false' res.error = ret return res ## Service callback for denoising # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrv] The denoise request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrvResponse] The denoise response def denoiseCallback(self, req): res = AudioProcessingDenoiseSrvResponse() res.success = self._sox_denoise_module.soxDenoise(\ req.user,\ req.audio_type,\ req.audio_file,\ req.denoised_audio_file,\ req.scale) return res ## Service callback for Detecting silence # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDetectSilence] The detect silence request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDetectSilenceSrvResponse] The detect silence response def detectSilenceCallback(self, req): res = AudioProcessingDetectSilenceSrvResponse() [res.level, res.silence] = self._detect_silence_module.detectSilence(\ req.audio_file, req.threshold) if res.silence == True: res.silence = "true" else: res.silence = "false" return res ## Service callback for Energy denoising # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrv] The denoise request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrvResponse] The energy denoise response def energyDenoiseCallback(self, req): res = AudioProcessingDenoiseSrvResponse() output = self._energy_denoise_module.energyDenoise(\ req.audio_file, req.scale, req.denoised_audio_file,\ self._energy_denoising_debug) if output == True: res.success = "true" else: res.success = "false" return res ## Service callback for Audio transformation # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingTransformAudioSrv] The transform audio request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingTransformAudioSrvResponse] The transform audio response def transformAudioCallback(self, req): res = AudioProcessingTransformAudioSrvResponse() [ res.error, res.fullpath ] = \ self._transform_audio_module.transform_audio( \ req.source_type, req.source_name, req.target_type, \ req.target_name, req.target_channels, req.target_rate ) return res
def __init__(self): ## Instantiates rapp_detect_silence.DetectSilence self._detect_silence_module = DetectSilence() ## Instantiates rapp_energy_denoise.EnergyDenoise self._energy_denoise_module = EnergyDenoise() ## Instantiates rapp_sox_denoise.SoxDenoise self._sox_denoise_module = SoxDenoise() ## Instantiates rapp_utilities.Utilities self._utilities_module = Utilities() ## Instantiates rapp_set_noise_profile.SetNoiseProfile self._set_noise_profile_module = SetNoiseProfile() ## Instantiates rapp_transform_audio.TransformAudio self._transform_audio_module= TransformAudio() # Parameters acquisition set_noise_profile_topic = \ rospy.get_param("rapp_audio_processing_set_noise_profile_topic") denoise_topic = \ rospy.get_param("rapp_audio_processing_denoise_topic") energy_denoise_topic = \ rospy.get_param("rapp_audio_processing_energy_denoise_topic") detect_silence_topic = \ rospy.get_param("rapp_audio_processing_detect_silence_topic") transform_audio_topic = \ rospy.get_param("rapp_audio_processing_transform_audio_topic") if(not set_noise_profile_topic): rospy.logerror("Audio processing noise profiling topic param not found") if(not denoise_topic): rospy.logerror("Audio processing denoise topic param not found") if(not energy_denoise_topic): rospy.logerror("Audio processing energy denoise topic param not found") if(not detect_silence_topic): rospy.logerror("Audio processing detect silence topic param not found") if(not transform_audio_topic): rospy.logerror("Audio processing noise transform audio topic param not found") # Check for denoising debug mode. DO NOT make this true when in production ## Energy denoising degug flag self._energy_denoising_debug = False self._energy_denoising_debug = \ rospy.get_param("rapp_audio_processing_energy_denoising_debug") if not self._energy_denoising_debug: self._energy_denoising_debug = False else: self._energy_denoising_debug = True # Create set noise profile services set_noise_profile_service = rospy.Service(set_noise_profile_topic, \ AudioProcessingSetNoiseProfileSrv, self.setNoiseProfileCallback) # Create sox denoise services denoise_service = rospy.Service( \ denoise_topic, AudioProcessingDenoiseSrv, \ self.denoiseCallback) # Create energy denoise services energy_denoise_service = rospy.Service( \ energy_denoise_topic, AudioProcessingDenoiseSrv, \ self.energyDenoiseCallback) # Create detect silence services detect_silence_service = rospy.Service( \ detect_silence_topic, AudioProcessingDetectSilenceSrv, \ self.detectSilenceCallback) # Create transform audio services transform_audio = rospy.Service( transform_audio_topic, \ AudioProcessingTransformAudioSrv, self.transformAudioCallback)
class AudioProcessing: ## Constructor performing initializations def __init__(self): ## Instantiates rapp_detect_silence.DetectSilence self._detect_silence_module = DetectSilence() ## Instantiates rapp_energy_denoise.EnergyDenoise self._energy_denoise_module = EnergyDenoise() ## Instantiates rapp_sox_denoise.SoxDenoise self._sox_denoise_module = SoxDenoise() ## Instantiates rapp_utilities.Utilities self._utilities_module = Utilities() ## Instantiates rapp_set_noise_profile.SetNoiseProfile self._set_noise_profile_module = SetNoiseProfile() ## Instantiates rapp_transform_audio.TransformAudio self._transform_audio_module= TransformAudio() # Parameters acquisition set_noise_profile_topic = \ rospy.get_param("rapp_audio_processing_set_noise_profile_topic") denoise_topic = \ rospy.get_param("rapp_audio_processing_denoise_topic") energy_denoise_topic = \ rospy.get_param("rapp_audio_processing_energy_denoise_topic") detect_silence_topic = \ rospy.get_param("rapp_audio_processing_detect_silence_topic") transform_audio_topic = \ rospy.get_param("rapp_audio_processing_transform_audio_topic") if(not set_noise_profile_topic): rospy.logerror("Audio processing noise profiling topic param not found") if(not denoise_topic): rospy.logerror("Audio processing denoise topic param not found") if(not energy_denoise_topic): rospy.logerror("Audio processing energy denoise topic param not found") if(not detect_silence_topic): rospy.logerror("Audio processing detect silence topic param not found") if(not transform_audio_topic): rospy.logerror("Audio processing noise transform audio topic param not found") # Check for denoising debug mode. DO NOT make this true when in production ## Energy denoising degug flag self._energy_denoising_debug = False self._energy_denoising_debug = \ rospy.get_param("rapp_audio_processing_energy_denoising_debug") if not self._energy_denoising_debug: self._energy_denoising_debug = False else: self._energy_denoising_debug = True # Create set noise profile services set_noise_profile_service = rospy.Service(set_noise_profile_topic, \ AudioProcessingSetNoiseProfileSrv, self.setNoiseProfileCallback) # Create sox denoise services denoise_service = rospy.Service( \ denoise_topic, AudioProcessingDenoiseSrv, \ self.denoiseCallback) # Create energy denoise services energy_denoise_service = rospy.Service( \ energy_denoise_topic, AudioProcessingDenoiseSrv, \ self.energyDenoiseCallback) # Create detect silence services detect_silence_service = rospy.Service( \ detect_silence_topic, AudioProcessingDetectSilenceSrv, \ self.detectSilenceCallback) # Create transform audio services transform_audio = rospy.Service( transform_audio_topic, \ AudioProcessingTransformAudioSrv, self.transformAudioCallback) ## Service callback for setting noise profile # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingSetNoiseProfileSrv] The set noise profile request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingSetNoiseProfileSrvResponse] The set noise profile response def setNoiseProfileCallback(self, req): res = AudioProcessingSetNoiseProfileSrvResponse() #-------------------------set noise profile-------------------------# ret = self._set_noise_profile_module.setNoise_profile(\ req.user,\ req.noise_audio_file,\ req.audio_file_type) if ret == 'true': res.success = ret res.error = '' else: res.success = 'false' res.error = ret return res ## Service callback for denoising # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrv] The denoise request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrvResponse] The denoise response def denoiseCallback(self, req): res = AudioProcessingDenoiseSrvResponse() res.success = self._sox_denoise_module.soxDenoise(\ req.user,\ req.audio_type,\ req.audio_file,\ req.denoised_audio_file,\ req.scale) return res ## Service callback for Detecting silence # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDetectSilence] The detect silence request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDetectSilenceSrvResponse] The detect silence response def detectSilenceCallback(self, req): res = AudioProcessingDetectSilenceSrvResponse() [res.level, res.silence] = self._detect_silence_module.detectSilence(\ req.audio_file, req.threshold) if res.silence == True: res.silence = "true" else: res.silence = "false" return res ## Service callback for Energy denoising # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrv] The denoise request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingDenoiseSrvResponse] The energy denoise response def energyDenoiseCallback(self, req): res = AudioProcessingDenoiseSrvResponse() output = self._energy_denoise_module.energyDenoise(\ req.audio_file, req.scale, req.denoised_audio_file,\ self._energy_denoising_debug) if output == True: res.success = "true" else: res.success = "false" return res ## Service callback for Audio transformation # # @param req [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingTransformAudioSrv] The transform audio request # # @return res [rapp_platform_ros_comminications::AudioProcessing::AudioProcessingTransformAudioSrvResponse] The transform audio response def transformAudioCallback(self, req): res = AudioProcessingTransformAudioSrvResponse() [ res.error, res.fullpath ] = \ self._transform_audio_module.transform_audio( \ req.source_type, req.source_name, req.target_type, \ req.target_name, req.target_channels, req.target_rate ) return res