我可以将立体声音频降混为单声道吗?

我的电脑旁边有一个扬声器,主要用作耳机放大器。 有时我需要将它用作扬声器。 是否可以快速将音频输出从立体声更改为单声道,无论是在系统范围内还是作为媒体播放器的插件?

  1. 通过运行查找音频接收器的名称

    pacmd list-sinks | grep name: 
  2. 然后运行此命令(注意删除有角度的括号):

     pacmd load-module module-remap-sink sink_name=mono master= channels=2 channel_map=mono,mono 

    或者将参数添加到pacmd/etc/pulse/default.pa以使其在启动时运行。

  3. 然后在Sound Preferences中选择“Mono”作为输出,但记得将音量减少一半,因为两个通道混合成一个,否则你会有失真。 要测试,请运行:

     speaker-test -c 2 -t sine 

单个命令中的相同内容:

 pacmd load-module module-remap-sink sink_name=mono master=$(pacmd list-sinks | grep -m 1 -oP 'name:\s<\K.*(?=>)') channels=2 channel_map=mono,mono 
  1. 要删除单声道,只需使用:

     pacmd unload-module module-remap-sink 

我已经将答案1转换为perl脚本,所以我不需要记住这两个命令:

 #!/usr/bin/perl use strict; my @choices = (); my $i = 0; for (`pacmd list-sinks`) { if( /name:.*<(.+)>/) { $choices[$i++] = $1; print "$i:\t$1\n"; } } my $choice = $choices[<>-1] or die "invalid choice"; exec (qw(pacmd load-module module-remap-sink sink_name=mono), "master=$choice", qw(channels=2 channel_map=mono,mono)); 

(我会注释那个答案,但我的业力很低;-))

如果您使用的是jack ,那么您可以使用patchage(可以使用apt-get install patchage )来实现。 它有一个非常直观的界面。

似乎没有简单的方法可以做到这一点。

您可以通过将所有PulseAudio输出代理到Jack接收器来实现。 随便使用太麻烦了……

您可以使用pulseaudio声音设置管理器将立体声更改为单声道。 或者也许您可以尝试将所有内容平移到左侧或右侧扬声器。

作为附录,在使用上述答案创建单声道接收器后,您可以将此脚本映射到热键:

  #!/bin/bash if [ "* index: 0" == "$(pacmd list-sinks | grep "*" | sed 's/^ *//')" ]; then pacmd set-default-sink 1 && notify-send "Mono"; SINK=1; else pacmd set-default-sink 0 && notify-send "Stereo"; SINK=0; fi; pacmd list-sink-inputs | grep index | grep -o '[0-9]*' | while read -r line; do pacmd move-sink-input $line $SINK; done; 

这将在接收器之间切换,并将当前流重新映射到新接收器(ma