Lui*_*ado 168
module-echo-cancel
我开始阅读大量有关 PulseAudio 和“隐藏”选项的文章,以便找到与此问题类似的选项。我发现的一个是噪音消除模块,它可以显着降低麦克风上的任何静态噪音,甚至是大量的背景噪音,基本上让您可以只录制自己的高质量声音(对于音频录制)例如)。为此,请按照以下步骤操作:
sudo nano /etc/pulse/default.pa
在文件的任何位置添加以下行,但我建议几乎在最后您会找到关于回声消除内容的评论(~第 140 行):
load-module module-echo-cancel
Run Code Online (Sandbox Code Playgroud)
重新加载 PulseAudio ( pulseaudio -k
) 或简单地重新启动计算机。您应该能够从输入设备部分选择新的降噪选项:
您可以在回声消除模块页面上找到有关它的更多信息
如果您希望将回声消除设备设置为默认值,只需将上述行转换为:
load-module module-echo-cancel source_name=logitechsource
Run Code Online (Sandbox Code Playgroud)
然后在文件底部添加
set-default-source logitechsource
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我将 source 命名为 source logitechsource
,但您可以随意命名它,只需重新启动pulseaudio即可。
最后,如果您不想在声音设置中使用超长名称(当您想选择输入/输出设备时)。我的建议是像这样重命名输入设备:
load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD
Run Code Online (Sandbox Code Playgroud)
再次,重新启动pulseaudio。最终结果如下所示:
cem*_*r93 17
这是一个老问题,但我遇到了同样的问题,经过一些谷歌搜索(我发现大多数人都同意这是不可能的)并阅读了一些手册页,我现在已经根据 user2330377 的想法开发了一个解决方案。
首先,您需要为 SoX 创建噪声配置文件。只需使用任何录音程序记录几秒钟的噪音,然后cd
进入您保存它的目录并执行sox noise.wav -n noiseprof noise.prof
。
然后你需要创建一个 ALSA 环回设备:
sudo modprobe snd_aloop
Run Code Online (Sandbox Code Playgroud)
这是必需的,因为pulseaudio 与Jack 不同,不能直接将音频软件连接在一起;因此,我们将使用环回设备作为代理。
现在您需要开始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
Run Code Online (Sandbox Code Playgroud)
(您需要为 -d 参数替换正确的设备名称——第一个 pacat 调用的输入设备和第二个调用的环回设备输出。)
好了,快完成了!最后一步,使用您选择的应用程序开始录制声音,然后启动pavucontrol
,切换到“录制”选项卡并将用于录制的音频设备(显示为右侧的灰色按钮)设置为“环回音频监视器”设备”。您现在应该拥有清晰无噪音的录音!
小智 7
在 ubuntu LTS 或基于 debian 的发行版上有如此简单的解决方案,这是一个在线脚本,可以激活脉冲音频(debian 上的默认音频)中已有的噪声消除功能。
wget -qO - https://gist.githubusercontent.com/grigio/cb93c3e8710a6f045a3dd9456ec01799/raw/94f07c7d75bcf5dd9b08a9c3034844223ec6fbe1/fix-microphone-background-noise.sh | sudo bash && pulseaudio -k
Run Code Online (Sandbox Code Playgroud)
您还可以在 secsetion 中运行这些命令(它们是同一件事)
sudo cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
sudo cat <<EOT >> /etc/pulse/default.pa
load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink
EOT
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
120603 次 |
最近记录: |