Tôi có thể downmix âm thanh stereo thành mono không?


40

Tôi có một loa bên cạnh máy tính mà tôi sử dụng chủ yếu là bộ khuếch đại tai nghe. Nhân dịp tôi cần sử dụng nó như một cái loa. Có thể nhanh chóng thay đổi đầu ra âm thanh từ âm thanh nổi sang đơn âm, toàn hệ thống hoặc làm plugin cho trình phát phương tiện không?

sound 

Là một lưu ý phụ tôi có thể thực hiện điều này trên điện thoại Android của mình bằng ứng dụng Voodoo Control yêu cầu nhân tùy chỉnh điều chỉnh amp tai nghe được tìm thấy trong điện thoại galaxy
daithib8

Câu trả lời:


58
  1. Tìm tên của bồn rửa âm thanh của bạn bằng cách chạy

    pacmd list-sinks | grep name:
  2. Sau đó chạy lệnh này (cẩn thận để loại bỏ các dấu ngoặc nhọn):

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

    hoặc thêm tham số để pacmdđể /etc/pulse/default.pacó nó chạy lúc khởi động.

  3. Sau đó, trong Tùy chọn âm thanh, chọn "Mono" làm đầu ra, nhưng hãy nhớ giảm một nửa âm lượng, vì hai kênh bị trộn lẫn thành một, nếu không bạn sẽ bị biến dạng. Để kiểm tra, hãy chạy:

    speaker-test -c 2 -t sine

Điều tương tự trong một lệnh duy nhất:

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. Để xóa kênh đơn âm, chỉ cần sử dụng:

    pacmd unload-module module-remap-sink

Làm việc như người ở! Đồ tốt! Tôi đã phải làm điều này vì tôi chỉ còn 1 loa (trong số 4 loa, chỉ sử dụng đầu nối phía trước) và Phone booth DVD đang phát một số âm thanh sai kênh hoặc một cái gì đó.
Bruce van der Kooij

Tôi có phải là người duy nhất bị méo âm thanh hệ thống ngay cả ở mức âm lượng thấp khi tôi thử điều này không?
Severo Raz

2
Đảm bảo giảm âm lượng "Ứng dụng" (cũng được tìm thấy trong Tùy chọn âm thanh) cũng như âm lượng "Đầu ra". Nếu bạn phát nhạc từ thiết bị đầu cuối, bạn có thể điều chỉnh âm lượng đó từ đó.
daithib8

4
Chỉ là một nhận xét cho bất kỳ ai có một chút bối rối (như tôi đã làm): khi @ daithib8 viết "hoặc thêm đối số vào pacmd vào /etc/pulse/default.pa", điều đó có nghĩa là làm sudo emacs /etc/pulse/default.pa( sudo nanohoặc bất kỳ trình soạn thảo nào bạn thích), cuộn xuống cuối cùng, và sau đó dán mọi thứ từ lệnh ngoại trừ pacmd phần vào một dòng mới ở dưới cùng của tệp. Sau đó lưu và khởi động lại :-)
machineghost

1
Bạn là cứu cánh cho những người bị mất thính lực một bên.
Omri Barel

14

Tôi đã chuyển câu trả lời 1 thành tập lệnh perl, vì vậy tôi không cần phải nhớ 2 lệnh này:

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

(Tôi đã chú thích câu trả lời đó, nhưng nghiệp lực của tôi là thấp ;-))


Làm thế nào bạn có thể ẩn đầu ra của lệnh pacmd?
jarno

2
Ồ, bạn có thể thay thế lệnh exec bằng cách exec "pacmd load-module module-remap-sink sink_name=hono master=$choice channels=1 channel_map=mono >/dev/null";(Điều này ẩn đầu ra và sử dụng ánh xạ đơn giản hơn một chút.)
jarno

3

Nếu bạn đang sử dụng jack , thì bạn có thể làm như vậy bằng cách sử dụng patchage (có thể được cài đặt với apt-get install patchage). Nó có một giao diện rất trực quan.


Vậy bạn sẽ làm gì sau khi cài đặt bản vá? Không có trợ giúp trong menu "Trợ giúp" và tôi không thể tìm thấy hướng dẫn hoặc giới thiệu trên trang web .
dùng800

@ user800: kết nối xung_sink trái / phải và jack cắm trái / phải để phát lại hệ
thống_1

1

Có vẻ như không có cách dễ dàng để làm điều này.

Mặc dù vậy, bạn có thể làm điều đó bằng cách ủy quyền tất cả đầu ra PulseAudio cho Jack chìm. Quá cồng kềnh khi được sử dụng tình cờ ...


0

Bạn có thể sử dụng trình quản lý cài đặt âm thanh pulseaudio để thay đổi âm thanh nổi thành đơn âm. Hoặc có lẽ bạn có thể thử chỉ xoay mọi thứ sang loa trái hoặc phải.


Paning sẽ không hoạt động. Nó sẽ không trộn cả hai kênh với nhau, nó sẽ tắt tiếng một trong các loa và chỉ lấy đầu ra từ một trong các kênh.
Rafał Cieślak

Panning là những gì David đang yêu cầu. Panning là hành động trộn hai kênh với nhau để phát chúng ra một loa, thường là để tạo ấn tượng rằng âm thanh phát ra từ một hướng cụ thể. Do đó tên pan (orama) ing. Một biến thể của điều này, được gọi là panning thẳng lên , trộn các kênh lại với nhau nhưng cho ra một lượng kết quả tương đương cho mỗi loa. Vì anh ta chỉ sử dụng một loa, điều này cũng sẽ làm việc cho anh ta. Điều khiển âm lượng Pulseaudio chỉ điều chỉnh cân bằng, trong đó âm lượng ở mỗi loa được điều chỉnh mặc dù không có sự pha trộn nào diễn ra.
daithib8

0

Là một phụ lục, sau khi bạn đã tạo phần đơn âm của mình với các câu trả lời ở trên, bạn có thể ánh xạ tập lệnh này thành một phím nóng:

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

Điều này sẽ chuyển đổi giữa các bồn và sắp xếp lại luồng hiện tại sang bồn mới (ma

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.