PulseAudio를 사용하여 실시간 노이즈 제거를 수행 할 수 있으므로 나오는 사운드 출력이 더 매끄 럽습니까?
PulseAudio를 사용하여 실시간 노이즈 제거를 수행 할 수 있으므로 나오는 사운드 출력이 더 매끄 럽습니까?
답변:
module-echo-cancel
PulseAudio와 "숨겨진"옵션에 대해 많이 읽기 시작하여이 질문과 비슷한 것을 찾을 수있었습니다. 내가 찾은 것은 잡음 제거 모듈입니다. 마이크의 정적 잡음과 배경 소음을 크게 줄입니다. 기본적으로 우수한 음질로 자신의 음성 만 녹음 할 수 있다는 이점이 있습니다 (오디오 녹음의 경우) 예를 들어). 이렇게하려면 다음 단계를 수행하십시오.
sudo nano /etc/pulse/default.pa
파일의 아무 곳에 나 다음 줄을 추가하십시오. 그러나 거의 마지막에 Echo Cancellation에 관한 의견을 찾을 것을 권장합니다 (~ line 140).
load-module module-echo-cancel
PulseAudio ( pulseaudio -k
)를 다시로드 하거나 컴퓨터를 다시 시작하십시오. 입력 장치 섹션에서 새로운 노이즈 제거 옵션을 선택할 수 있어야합니다.
자세한 내용은 에코 취소 모듈 페이지 에서 확인할 수 있습니다.
반향 제거 장치 를 기본값 으로 설정 하려면 위의 행을 다음과 같이 바꾸십시오.
load-module module-echo-cancel source_name=logitechsource
그런 다음 파일 하단에 추가
set-default-source logitechsource
이 경우 source logitechsource
이름을 지정했지만 원하는 이름을 지정하고 pulseaudio를 다시 시작할 수 있습니다.
마지막으로, 사운드 설정에서 매우 긴 이름을 원하지 않는 경우 (입력 / 출력 장치를 선택하려는 경우). 내 제안은 다음과 같이 입력 장치의 이름을 바꾸는 것입니다.
load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD
그리고 다시, pulseaudio를 다시 시작하십시오. 최종 결과는 다음과 같습니다.
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
따라 설정할 수 있습니다.
이것은 오래된 질문이지만 동일한 문제가 있었으며 일부 인터넷 검색 (주로 불가능하다고 동의 한 사람들을 찾았 음) 및 일부 맨 페이지를 읽은 후 user2330377의 아이디어를 기반으로 솔루션을 개발했습니다.
먼저 SoX에 대한 노이즈 프로파일을 작성해야합니다. 오디오 녹음 프로그램을 사용하여 몇 초 동안 소음을 녹음 한 다음 cd
저장 한 디렉토리 에 녹음하십시오 sox noise.wav -n noiseprof noise.prof
.
그런 다음 ALSA 루프백 장치를 만들어야합니다.
sudo modprobe snd_aloop
이는 Jack과 달리 pulseaudio가 오디오 소프트웨어를 직접 연결할 수 없기 때문에 필요합니다. 따라서 루프백 장치를 프록시로 사용합니다.
이제 paman
마이크 (또는 다른 녹음 장치)와 방금 만든 루프백 장치의 이름 을 시작 하고 찾아야합니다. 해당 항목을 찾으면 다음 명령을 실행하여 마이크에서 사운드를 녹음하고 SoX를 통해 파이프 한 다음 루프백 장치에서 재생을 시작할 수 있습니다.
pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo --latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw - -b 16 -e signed -c 2 -r 44100 -t raw - noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo --latency=1msec
(여기서 -d 매개 변수의 올바른 장치 이름을 대체해야합니다. 첫 번째 pacat 호출의 입력 장치와 두 번째의 루프백 장치 출력입니다.)
거의 다 왔습니다! 마지막 단계로, 원하는 응용 프로그램으로 사운드 녹음을 시작한 다음 시작 pavucontrol
하여 "레코딩"탭으로 변경하고 녹음에 사용 된 오디오 장치 (오른쪽에 회색 버튼으로 표시)를 "루프백 오디오 모니터"로 설정하십시오. 장치". 이제 깨끗하고 노이즈없는 녹음이 가능합니다!
조사에 따르면 Linux 하위 시스템에서 실시간 노이즈 감소 필터링을 수행하는 알려진 방법은 없습니다. 일부 웹 사이트는 소프트웨어 필터를 사용하는 것보다 훨씬 더 나은 기술을 구입해야하는 하드웨어를 가리 킵니다.
또는 이것이 녹음 용인 경우 Audacity를 통해 사운드를 전달하고 노이즈 필터를 사용할 수 있습니다.
module-echo-cancel
있으며 webrtc | 스핑크스.
여기에 희박한 방법으로 webrtc-aec을
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec 가능 webrtc.org AudioProcessing 라이브러리를 사용하여 음향 반향 제거, 아날로그 게인 제어, 노이즈 억제 및 기타 처리를 수행하여 VoIP를 지원하는 응용 프로그램에서 VoIP 통화를 크게 향상시킵니다.
다음은 주제에 관한 2013 년 날짜의 논문입니다 (특히 webrtc-aec가 아닌 펄스 오디오로 노이즈 제거) http://lac.linuxaudio.org/2013/papers/37.pdf
"우리는 PulseAudio를 기반으로 구축 된 다중 채널 잡음 / 에코 감소 솔루션의 첫 번째 결과를 제시하고 설계 결정에 동기를 부여했습니다.이 작업으로 인해 PulseAudio 에코 제거 및 신호 처리 프레임 워크가 크게 개선되었습니다. "버전 3.0 / 4.0 개발주기에 기여했으며 향후 임베디드 Linux 오디오 솔루션을 용이하게해야합니다. 추가 작업에는 오디오 스트림 믹싱을위한 코드 최적화,보다 효율적인 리샘플링 방법 및 다중 채널 처리 파이프 라인에서 효율적인 AEC 구현이 포함됩니다."
노이즈 제거에 대한 정보는 모듈 문서 페이지에 없습니다. module-echo-cancel에는 AEC (Acoustic Echo Cancellation) 알고리즘 만 있으며 webrtc | 스핑크스.
따라서 노이즈 제거 기능이 내장 된 마이크를 가능한 한 많이 구입해야합니다.
우분투에서 음성 녹음을 테스트하면서 몇 가지 특별한 특성을 발견했습니다.
Skype, Telegram은 기본 장치 (필자의 경우 front-in-mic | backward-mic 잭)의 원시 입력을 사용합니다. 이 앱에서 노이즈를 취소해야하는 경우 노이즈 제거 기능이 통합 된 헤드셋 만 사용해야합니다.
브라우저에서 음성 통화를 사용해야하는 경우 브라우저에는 WebRTC와 같은 자체 음성 처리 알고리즘 구현이 있음을 명심해야합니다.
또한 웹 애플리케이션 (토키, 행 아웃, appear.in 등의 사이트)은 webrtc 행 아웃 분석을 기반으로 할 수 있음에도 불구하고 자체 음성 처리 알고리즘 구현을 가질 수 있습니다.