Чи можу я змістити стерео аудіо до моно?


41

Поряд із моїм комп'ютером є один динамік, який я використовую в основному як підсилювач навушників. При нагоді мені потрібно використовувати його як гучномовець. Чи можна швидко змінити вихідний аудіо з стерео на моно, або на загальну систему, або як плагін для медіаплеєра?

sound 

В якості побічної записки я можу це зробити на своєму телефоні Android, використовуючи програму Voodoo Control, для якої потрібне користувацьке ядро, яке налаштовує підсилювач для навушників, знайдений у телефонах галактики
daithib8,

Відповіді:


59
  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. Тоді в 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 динамік (з 4 динаміків, використовуючи лише передній роз'єм), а DVD-телефон із телефонною будкою відтворював якийсь звук у неправильному каналі чи щось.
Брюс ван дер Куей

Чи я єдиний, хто отримує спотворення звуку в системі навіть при низьких рівнях гучності, коли я намагаюся це зробити?
Северо Роз

2
Не забудьте зменшити гучність "Програми" (також у межах Налаштування звуку), а також "Гучність". Якщо ви граєте музику з терміналу, ви можете налаштувати цей рівень гучності звідти.
daithib8

4
Просто коментар для всіх, хто трохи заплутався (як я): коли @ daithib8 пише "або додайте аргумент в pacmd в /etc/pulse/default.pa", це означає робити sudo emacs /etc/pulse/default.pa( sudo nanoабо будь-який редактор, який ви хочете), прокручуючи до кінця, а потім вставляючи все від команди, крім pacmd частини, у новий рядок у нижній частині файлу. Потім збережіть і перезапустіть :-)
machineghost

1
Ви рятувальник для людей з однобічною втратою слуху.
Омрі Барель

14

Я відповів на відповідь 1 в сценарій perl, тому мені не потрібно запам'ятовувати ці 2 команди:

#!/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));

(Я б зауважив цю відповідь, але моя карма знижена ;-))


Як ви можете приховати вихід команди pacmd?
jarno

2
О, ви можете замінити команду exec на exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";(Це приховує вихід і використовує трохи простіше відображення.)
jarno

3

Якщо ви використовуєте джек , ви можете це зробити за допомогою patchage (який можна встановити за допомогою apt-get install patchage). Він має дуже інтуїтивний інтерфейс.


Отже, що робити після встановлення патча? У меню "Довідка" немає допомоги, і я не можу знайти посібник чи вступ на веб-сайті .
user800

@ user800: підключіть pulse_sink вліво / вправо та підключення гнізда вліво / вправо до системного відтворення_1
Laurent Debricon

1

Здається, немає простого способу зробити це.

Ви можете це зробити, хоча, підключивши весь вихід PulseAudio до раковини Jack. Занадто громіздко, щоб його використовувати випадково ...


0

Можливо, ви зможете використовувати диспетчер налаштувань звукового сигналу для зміни стерео на моно. Або, можливо, ви можете спробувати просто перемістити все до лівого або правого динаміка.


Панування не спрацює. Він не змішить обидва канали разом, він вимкне один з динаміків і візьме лише вихід з одного з каналів.
Rafał Cieślak

Панірування - це те, про що вимагає Давид. Панорамування - це акт змішування двох каналів разом з метою виведення їх на один динамік, як правило, для того, щоб створити враження, що звук виходить з певного напрямку. Звідси назва пан (орама) ing. Варіант цього, який називається панорамирование прямо , змішує канали разом, але видає однакову кількість результату кожному оратору. Оскільки він використовує лише один динамік, це також би спрацювало для нього. Контроль гучності Pulseaudio регулює лише баланс, коли гучність кожного динаміка регулюється, хоча змішування не відбувається.
daithib8

0

Як додаток, після того, як ви створили моно раковину з наведеними вище відповідями, ви можете скопіювати цей скрипт на гарячу клавішу:

 #!/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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.