| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license | |
| 5 * that can be found in the LICENSE file in the root of the source | |
| 6 * tree. An additional intellectual property rights grant can be found | |
| 7 * in the file PATENTS. All contributing project authors may | |
| 8 * be found in the AUTHORS file in the root of the source tree. | |
| 9 */ | |
| 10 | |
| 11 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_NS_INCLUDE_NOISE_SUPPRESSION_H_ | |
| 12 #define WEBRTC_MODULES_AUDIO_PROCESSING_NS_INCLUDE_NOISE_SUPPRESSION_H_ | |
| 13 | |
| 14 #include <stddef.h> | |
| 15 | |
| 16 #include "webrtc/typedefs.h" | |
| 17 | |
| 18 typedef struct NsHandleT NsHandle; | |
| 19 | |
| 20 #ifdef __cplusplus | |
| 21 extern "C" { | |
| 22 #endif | |
| 23 | |
| 24 /* | |
| 25 * This function creates an instance of the floating point Noise Suppression. | |
| 26 */ | |
| 27 NsHandle* WebRtcNs_Create(); | |
| 28 | |
| 29 /* | |
| 30 * This function frees the dynamic memory of a specified noise suppression | |
| 31 * instance. | |
| 32 * | |
| 33 * Input: | |
| 34 * - NS_inst : Pointer to NS instance that should be freed | |
| 35 */ | |
| 36 void WebRtcNs_Free(NsHandle* NS_inst); | |
| 37 | |
| 38 /* | |
| 39 * This function initializes a NS instance and has to be called before any other | |
| 40 * processing is made. | |
| 41 * | |
| 42 * Input: | |
| 43 * - NS_inst : Instance that should be initialized | |
| 44 * - fs : sampling frequency | |
| 45 * | |
| 46 * Output: | |
| 47 * - NS_inst : Initialized instance | |
| 48 * | |
| 49 * Return value : 0 - Ok | |
| 50 * -1 - Error | |
| 51 */ | |
| 52 int WebRtcNs_Init(NsHandle* NS_inst, uint32_t fs); | |
| 53 | |
| 54 /* | |
| 55 * This changes the aggressiveness of the noise suppression method. | |
| 56 * | |
| 57 * Input: | |
| 58 * - NS_inst : Noise suppression instance. | |
| 59 * - mode : 0: Mild, 1: Medium , 2: Aggressive | |
| 60 * | |
| 61 * Output: | |
| 62 * - NS_inst : Updated instance. | |
| 63 * | |
| 64 * Return value : 0 - Ok | |
| 65 * -1 - Error | |
| 66 */ | |
| 67 int WebRtcNs_set_policy(NsHandle* NS_inst, int mode); | |
| 68 | |
| 69 /* | |
| 70 * This functions estimates the background noise for the inserted speech frame. | |
| 71 * The input and output signals should always be 10ms (80 or 160 samples). | |
| 72 * | |
| 73 * Input | |
| 74 * - NS_inst : Noise suppression instance. | |
| 75 * - spframe : Pointer to speech frame buffer for L band | |
| 76 * | |
| 77 * Output: | |
| 78 * - NS_inst : Updated NS instance | |
| 79 */ | |
| 80 void WebRtcNs_Analyze(NsHandle* NS_inst, const float* spframe); | |
| 81 | |
| 82 /* | |
| 83 * This functions does Noise Suppression for the inserted speech frame. The | |
| 84 * input and output signals should always be 10ms (80 or 160 samples). | |
| 85 * | |
| 86 * Input | |
| 87 * - NS_inst : Noise suppression instance. | |
| 88 * - spframe : Pointer to speech frame buffer for each band | |
| 89 * - num_bands : Number of bands | |
| 90 * | |
| 91 * Output: | |
| 92 * - NS_inst : Updated NS instance | |
| 93 * - outframe : Pointer to output frame for each band | |
| 94 */ | |
| 95 void WebRtcNs_Process(NsHandle* NS_inst, | |
| 96 const float* const* spframe, | |
| 97 size_t num_bands, | |
| 98 float* const* outframe); | |
| 99 | |
| 100 /* Returns the internally used prior speech probability of the current frame. | |
| 101 * There is a frequency bin based one as well, with which this should not be | |
| 102 * confused. | |
| 103 * | |
| 104 * Input | |
| 105 * - handle : Noise suppression instance. | |
| 106 * | |
| 107 * Return value : Prior speech probability in interval [0.0, 1.0]. | |
| 108 * -1 - NULL pointer or uninitialized instance. | |
| 109 */ | |
| 110 float WebRtcNs_prior_speech_probability(NsHandle* handle); | |
| 111 | |
| 112 #ifdef __cplusplus | |
| 113 } | |
| 114 #endif | |
| 115 | |
| 116 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_NS_INCLUDE_NOISE_SUPPRESSION_H_ | |
| OLD | NEW |