当前位置: 首页>>技术教程>>正文


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

,

问题描述

我的电脑旁边有一个扬声器,主要用作耳机放大器。有时我需要将它用作扬声器。是否可以快速将音频输出从立体声更改为单声道,system-wide或作为媒体播放器的插件?

最佳解决方案

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

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

    pacmd load-module module-remap-sink sink_name=mono master=<name_of_audio sink_given_by_previous_command> channels=2 channel_map=mono,mono
    

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

  3. 然后在声音首选项中选择”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-script,因此我不需要记住这两个命令:

#!/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安装)来执行此操作。它有一个非常直观的界面。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6190.html,未经允许,请勿转载。