如何在 Ubuntu 23.04 上启用环绕声?

如何在 Ubuntu 23.04 上启用环绕声?

我刚刚从 Ubuntu 20.04 LTS 升级到 Ubuntu 23.04(先升级到 22.04,然后升级到 23.04)。我相信后者使用了 PulseAudio,而我的笔记本电脑(Lenovo X1 Carbon Gen 7)上的环绕声/低音炮似乎都运行良好。

我已经升级到 Ubuntu 23.04,我认为它使用了 PipeWire,音频听起来很刺耳。我曾经pw-dump检查过设置,可以找到其输出(针对相关音频设备)这里

{
  "id": 50,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 65,
      "max-output-ports": 0,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 2,
      "n-output-ports": 2,
      "state": "suspended",
      "error": null,
      "props": {
        "alsa.card": 0,
        "alsa.card_name": "sof-hda-dsp",
        "alsa.class": "generic",
        "alsa.device": 0,
        "alsa.driver_name": "snd_soc_skl_hda_dsp",
        "alsa.id": "HDA Analog (*)",
        "alsa.long_card_name": "LENOVO-20QDCTO1WW-ThinkPadX1Carbon7th",
        "alsa.mixer_device": "_ucm0001.hw:sofhdadsp",
        "alsa.name": "",
        "alsa.resolution_bits": 16,
        "alsa.subclass": "generic-mix",
        "alsa.subdevice": 0,
        "alsa.subdevice_name": "subdevice #0",
        "api.alsa.card.longname": "LENOVO-20QDCTO1WW-ThinkPadX1Carbon7th",
        "api.alsa.card.name": "sof-hda-dsp",
        "api.alsa.headroom": 0,
        "api.alsa.open.ucm": true,
        "api.alsa.path": "hw:sofhdadsp",
        "api.alsa.pcm.card": 0,
        "api.alsa.pcm.stream": "playback",
        "api.alsa.period-num": 8,
        "api.alsa.period-size": 1024,
        "audio.adapt.follower": "",
        "audio.channels": 2,
        "audio.position": "FL,FR",
        "card.profile.device": 3,
        "client.id": 32,
        "clock.quantum-limit": 8192,
        "device.api": "alsa",
        "device.class": "sound",
        "device.id": 42,
        "device.profile.description": "Speaker + Headphones",
        "device.profile.name": "HiFi: hw:sofhdadsp: sink",
        "device.routes": 2,
        "factory.id": 18,
        "factory.mode": "merge",
        "factory.name": "api.alsa.pcm.sink",
        "library.name": "audioconvert/libspa-audioconvert",
        "media.class": "Audio/Sink",
        "node.description": "Cannon Point-LP High Definition Audio Controller Speaker + Headphones",
        "node.driver": true,
        "node.max-latency": "4096/48000",
        "node.name": "alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink",
        "node.nick": "Speaker + Headphones",
        "node.pause-on-idle": false,
        "object.id": 50,
        "object.path": "alsa:pcm:0:hw:sofhdadsp:playback",
        "object.serial": 50,
        "priority.driver": 1000,
        "priority.session": 1000
      },
      "params": {
        "EnumFormat": [
        {
          "mediaType": "audio",
          "mediaSubtype": "raw",
          "format": {
            "default": "S32LE",
            "alt1": "S32LE",
            "alt2": "S24_32LE",
            "alt3": "S16LE"
          },
          "rate": 48000,
          "channels": 2,
          "position": [ "FL", "FR" ]
        }
        ],
        "PropInfo": [
        {
          "id": "volume",
          "description": "Volume",
          "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
        },
        {
          "id": "mute",
          "description": "Mute",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          }
        },
        {
          "id": "channelVolumes",
          "description": "Channel Volumes",
          "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
          "container": "Array"
        },
        {
          "id": "channelMap",
          "description": "Channel Map",
          "type": "",
          "container": "Array"
        },
        {
          "id": "monitorMute",
          "description": "Monitor Mute",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          }
        },
        {
          "id": "monitorVolumes",
          "description": "Monitor Volumes",
          "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
          "container": "Array"
        },
        {
          "id": "softMute",
          "description": "Soft Mute",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          }
        },
        {
          "id": "softVolumes",
          "description": "Soft Volumes",
          "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
          "container": "Array"
        },
        {
          "name": "monitor.channel-volumes",
          "description": "Monitor channel volume",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "channelmix.disable",
          "description": "Disable Channel mixing",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "channelmix.normalize",
          "description": "Normalize Volumes",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "channelmix.mix-lfe",
          "description": "Mix LFE into channels",
          "type": {
            "default": true,
            "alt1": true,
            "alt2": false
          },
          "params": true
        },
        {
          "name": "channelmix.upmix",
          "description": "Enable upmixing",
          "type": {
            "default": true,
            "alt1": true,
            "alt2": false
          },
          "params": true
        },
        {
          "name": "channelmix.lfe-cutoff",
          "description": "LFE cutoff frequency",
          "type": { "default": 150.000000, "min": 0.000000, "max": 1000.000000 },
          "params": true
        },
        {
          "name": "channelmix.fc-cutoff",
          "description": "FC cutoff frequency (Hz)",
          "type": { "default": 12000.000000, "min": 0.000000, "max": 48000.000000 },
          "params": true
        },
        {
          "name": "channelmix.rear-delay",
          "description": "Rear channels delay (ms)",
          "type": { "default": 12.000000, "min": 0.000000, "max": 1000.000000 },
          "params": true
        },
        {
          "name": "channelmix.stereo-widen",
          "description": "Stereo widen",
          "type": { "default": 0.000000, "min": 0.000000, "max": 1.000000 },
          "params": true
        },
        {
          "name": "channelmix.hilbert-taps",
          "description": "Taps for phase shift of rear",
          "type": { "default": 0, "min": 0, "max": 255 },
          "params": true
        },
        {
          "name": "channelmix.upmix-method",
          "description": "Upmix method to use",
          "type": "psd",
          "params": true,
          "labels": [
            "none",
          "Disabled",
          "simple",
          "Simple upmixing",
          "psd",
          "Passive Surround Decoding"
          ]
        },
        {
          "id": "rate",
          "description": "Rate scaler",
          "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
        },
        {
          "id": "quality",
          "name": "resample.quality",
          "description": "Resample Quality",
          "type": { "default": 4, "min": 0, "max": 14 },
          "params": true
        },
        {
          "name": "resample.disable",
          "description": "Disable Resampling",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "dither.noise",
          "description": "Add noise bits",
          "type": { "default": 0, "min": 0, "max": 16 },
          "params": true
        },
        {
          "name": "dither.method",
          "description": "The dithering method",
          "type": "none",
          "params": true,
          "labels": [
            "none",
          "Disabled",
          "rectangular",
          "Rectangular dithering",
          "triangular",
          "Triangular dithering",
          "triangular-hf",
          "Sloped Triangular dithering",
          "wannamaker3",
          "Wannamaker 3 dithering",
          "shaped5",
          "Lipshitz 5 dithering"
          ]
        },
        {
          "id": "device",
          "name": "api.alsa.path",
          "description": "The ALSA device",
          "type": "hw:sofhdadsp"
        },
        {
          "id": "deviceName",
          "description": "The ALSA device name",
          "type": ""
        },
        {
          "id": "cardName",
          "description": "The ALSA card name",
          "type": ""
        },
        {
          "id": "latencyOffsetNsec",
          "description": "Latency offset (ns)",
          "type": { "default": 0, "min": 0, "max": 2000000000 }
        },
        {
          "name": "audio.channels",
          "description": "Audio Channels",
          "type": 2,
          "params": true
        },
        {
          "name": "audio.rate",
          "description": "Audio Rate",
          "type": 0,
          "params": true
        },
        {
          "name": "audio.format",
          "description": "Audio Format",
          "type": "UNKNOWN",
          "params": true
        },
        {
          "name": "audio.position",
          "description": "Audio Position",
          "type": "[ FL, FR ]",
          "params": true
        },
        {
          "name": "audio.allowed-rates",
          "description": "Audio Allowed Rates",
          "type": "[  ]",
          "params": true
        },
        {
          "name": "api.alsa.period-size",
          "description": "Period Size",
          "type": { "default": 0, "min": 0, "max": 8192 },
          "params": true
        },
        {
          "name": "api.alsa.period-num",
          "description": "Number of Periods",
          "type": { "default": 0, "min": 0, "max": 1024 },
          "params": true
        },
        {
          "name": "api.alsa.headroom",
          "description": "Headroom",
          "type": { "default": 0, "min": 0, "max": 8192 },
          "params": true
        },
        {
          "name": "api.alsa.start-delay",
          "description": "Start Delay",
          "type": { "default": 0, "min": 0, "max": 8192 },
          "params": true
        },
        {
          "name": "api.alsa.disable-mmap",
          "description": "Disable MMAP",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "api.alsa.disable-batch",
          "description": "Disable Batch",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "api.alsa.use-chmap",
          "description": "Use the driver channelmap",
          "type": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "params": true
        },
        {
          "name": "api.alsa.multi-rate",
          "description": "Support multiple rates",
          "type": {
            "default": true,
            "alt1": true,
            "alt2": false
          },
          "params": true
        },
        {
          "name": "latency.internal.rate",
          "description": "Internal latency in samples",
          "type": { "default": 0, "min": 0, "max": 65536 },
          "params": true
        },
        {
          "name": "latency.internal.ns",
          "description": "Internal latency in nanoseconds",
          "type": { "default": 0, "min": 0, "max": 2000000000 },
          "params": true
        },
        {
          "name": "clock.name",
          "description": "The name of the clock",
          "type": "api.alsa.p-0",
          "params": true
        }
        ],
        "Props": [
        {
          "volume": 1.000000,
          "mute": false,
          "channelVolumes": [ 0.547452, 0.547452 ],
          "channelMap": [ "FL", "FR" ],
          "softMute": false,
          "softVolumes": [ 0.919066, 0.919066 ],
          "monitorMute": false,
          "monitorVolumes": [ 1.000000, 1.000000 ],
          "params": [
            "monitor.channel-volumes",
          false,
          "channelmix.disable",
          false,
          "channelmix.normalize",
          false,
          "channelmix.mix-lfe",
          true,
          "channelmix.upmix",
          true,
          "channelmix.lfe-cutoff",
          150.000000,
          "channelmix.fc-cutoff",
          12000.000000,
          "channelmix.rear-delay",
          12.000000,
          "channelmix.stereo-widen",
          0.000000,
          "channelmix.hilbert-taps",
          0,
          "channelmix.upmix-method",
          "psd",
          "resample.quality",
          4,
          "resample.disable",
          false,
          "dither.noise",
          0,
          "dither.method",
          "none"
            ]
        },
        {
          "device": "hw:sofhdadsp",
          "deviceName": "",
          "cardName": "",
          "latencyOffsetNsec": 0,
          "params": [
            "audio.channels",
          2,
          "audio.rate",
          0,
          "audio.format",
          "UNKNOWN",
          "audio.position",
          "[ FL, FR ]",
          "audio.allowed-rates",
          "[  ]",
          "api.alsa.period-size",
          0,
          "api.alsa.period-num",
          0,
          "api.alsa.headroom",
          0,
          "api.alsa.start-delay",
          0,
          "api.alsa.disable-mmap",
          false,
          "api.alsa.disable-batch",
          false,
          "api.alsa.use-chmap",
          false,
          "api.alsa.multi-rate",
          true,
          "latency.internal.rate",
          0,
          "latency.internal.ns",
          0,
          "clock.name",
          "api.alsa.p-0"
            ]
        }
        ],
        "Format": [ ],
        "EnumPortConfig": [
        {
          "direction": "Input",
          "mode": {
            "default": "none",
            "alt1": "none",
            "alt2": "dsp",
            "alt3": "convert"
          },
          "monitor": {
            "default": false,
            "alt1": false,
            "alt2": true
          },
          "control": {
            "default": false,
            "alt1": false,
            "alt2": true
          }
        }
        ],
        "PortConfig": [
        {
          "direction": "Input",
          "mode": "dsp",
          "monitor": true,
          "control": false,
          "format": {
            "mediaType": "audio",
            "mediaSubtype": "raw",
            "format": "F32P",
            "channels": 2,
            "position": [ "FL", "FR" ]
          }
        }
        ],
        "Latency": [
        {
          "direction": "Input",
          "minQuantum": 1.000000,
          "maxQuantum": 1.000000,
          "minRate": 0,
          "maxRate": 0,
          "minNs": 0,
          "maxNs": 0
        },
        {
          "direction": "Output",
          "minQuantum": 0.000000,
          "maxQuantum": 0.000000,
          "minRate": 0,
          "maxRate": 0,
          "minNs": 0,
          "maxNs": 0
        }
        ],
        "ProcessLatency": [
        {
          "quantum": 0.000000,
          "rate": 0,
          "ns": 0
        }
        ]
      }
    }
}

看起来只使用了两个通道,即前面的两个通道。

我曾经speaker-test -c 6测试过所有六个扬声器确实可以工作,而且确实如此。我只需要一种方法来默认启用它们。

相关内容