2011-09-28 3 views
4

TomCat과 같은 애플리케이션을 개발 중입니다. 저는 재미있는 음성으로 오디오를 녹음하고 Audio Queue Services로 재생했습니다. AVAudioRecorder의 설정을 변경했습니다. 그러나 재생하는 동안 약간의 잡음이나 왜곡이 있습니다. 녹음 된 오디오에 대한 노이즈 필터 알고리즘을 iPhone에 구현하십시오.

NSMutableDictionary *settings = [[NSMutableDictionary alloc] init]; 
[settings setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; 
[settings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; 
[settings setValue:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey]; 
[settings setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; 
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; 
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; 


self.recorder = [[AVAudioRecorder alloc] initWithURL:[NSURL fileURLWithPath:self.audioPath] settings:settings error:nil]; 

self.recorder = [self.recorder retain]; 
[self.recorder prepareToRecord]; 
[self.recorder record]; 

나는 주파수가 너무 높은 경우 LowPassFilter 블록 크기로 데시벨 은밀한하거나 사용하는 방법을 알고있다. 주파수가 너무 낮 으면 HighPassFilter가 차단됩니다. Objective-C에서 어떻게 구현합니까?

//convert decibels to amp 
const double ALPHA = 0.05; 
double peakPowerForChannel = pow(10, (0.05 * [audioMonitor peakPowerForChannel:0])); 
double audioMonitorResults; 
audioMonitorResults= ALPHA * peakPowerForChannel + (1.0 - ALPHA) *audioMonitorResults; 
+0

저를 도와주세요 것을, 내가 어떻게 ../ 압축 된 오디오에서 잡음을 제거하기 위해 잘못 될 수 – Gupta

+0

헤이 @Gupta 당신이 당신의 문제를 해결해야 ? 왜냐하면 나는 같은 문제에 직면 해있다. –

답변

0

질문이 명확하지 않습니다. 나이 퀴 스트 샘플링 기준을 준수 할 수 있도록하려는 경우, 샘플링 주파수가 기록하려는 스펙트럼에 가깝다면 ADC 이전의 필터, 즉 하드웨어에서 필터를 구현해야합니다.

적절한 LPF를 사용하면서도 여전히 재미있는 소리가 들리면 입력 오디오 레벨이 너무 높다는 것이 좋습니다. 이는 다시 하드웨어 문제입니다. 입력 볼륨을 낮추십시오.

노이즈의 또 다른 원인은 실제로 레코드가 중단없이 하나의 연속 샘플 블록으로 구성되지 않았기 때문일 수 있습니다. 또는 재생 문제 일 수도 있습니다. 사물의

많은 납이 "노이즈 나 왜곡"...

관련 문제