我在這個網站和其他網站上看到過這個問題的多個版本,但沒有一個真正有多大幫助。我正在嘗試設定我的 Turtle Beach Z60 耳機,使其以環繞聲播放,但遇到了許多問題。
我已經成功編輯了,/etc/pulse/daemon.conf
這樣default-sample-channels = 8
。然而,這樣做的問題是,當我嘗試時,speaker-test -c 8
左側、左後、右側和右後的音量遠低於左前、前中、右前和後中。不僅如此,與通常在窗戶上工作的揚聲器相比,揚聲器的音質非常低。
最後,當我嘗試選擇聲卡時,alsamixer
出現錯誤
cannot load mixer controls: Invalid argument
。
我的/proc/asound/card1/stream0
文件是
Turtle Beach Turtle Beach Z60 遊戲音訊位於 usb-0000:00:14.0-1,全速:USB 音頻
回放:
狀態:停止
介面2
替代集 1
格式:S16_LE
頻道:2
端點:1 個輸出(自適應)
價格:16000 接口 2 Altset 2
格式:S24_3LE
頻道:2
端點:1 個輸出(自適應)
價格:16000
捕獲:
狀態:停止
接口1
替代集 1
格式:S16_LE
頻道:2
端點:1 IN(自適應)
價格:16000 接口 1 Altset 2
格式:S24_3LE
頻道:2
端點:1 IN(自適應)
價格:16000
任何幫助將不勝感激。謝謝。
答案1
這是一篇舊文章,但我希望發布可以幫助一些人。我花了很長時間擺弄這款耳機才獲得正確的聲音。我不是 alsa 或脈衝音頻方面的專家。
以下內容是在 Fedora Linux 33 上完成的,但也可能與 Ubuntu 使用者相關。
該耳機有一個用於語音聊天(低品質)的通道和一個用於正常音訊的通道。插入此耳機只能使低品質的聲音變為脈衝音訊。這可以透過播放音訊並轉動 USB 線上控制器上的音量輪來驗證。更改音量只能使用語音通道輪進行。
您可以看到樣本量較小:
pactl list sinks
Sink #5
State: SUSPENDED
Name: alsa_output.usb-Turtle_Beach_Turtle_Beach_Z60_Game_Audio_000000000000-00.analog-stereo
Description: Turtle Beach Z60 Game Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 16000Hz
如果我查看 /proc/asound/card0 中的不同 steam(我的耳機是 card0,你的可能會有所不同),我可以看到 Stream0 是 16000Hz,stream1 是正確的音質 steam:
[stephan@nyx ~]$ cat /proc/asound/card0/stream0
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio
Playback:
Status: Stop
Interface 2
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 2
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 OUT (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
Capture:
Status: Stop
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 16
Channel map: FL FR
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 1 IN (ADAPTIVE)
Rates: 16000
Bits: 24
Channel map: FL FR
[stephan@nyx ~]$ cat /proc/asound/card0/stream1
Turtle Beach Turtle Beach Z60 Game Audio at usb-0000:00:14.0-1, full speed : USB Audio #1
Playback:
Status: Running
Interface = 4
Altset = 1
Packet Size = 192
Momentary freq = 44100 Hz (0x2c.199a)
Interface 4
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR
Interface 4
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 24
Channel map: FL FR
Interface 4
Altset 3
Format: S16_LE
Channels: 8
Endpoint: 2 OUT (ADAPTIVE)
Rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
Bits: 16
Channel map: FL FR FC LFE SL SR FLC FRC
這是個好消息,可能意味著不存在驅動程式問題,但使用者空間中的某些內容沒有選擇正確的輸出流。
使用 aplay 指令我發現我的卡有兩個裝置。我假設 Stream1 位於第二個裝置(裝置 1)上,在 ALSA 中稱為 hw:0,1
[stephan@nyx ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Audio [Turtle Beach Z60 Game Audio], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Audio [Turtle Beach Z60 Game Audio], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
我透過使用該特定輸出設備開啟 VLC 來驗證該設備的品質。啟動 VLC 並播放音訊文件
vlc --aout alsa --alsa-audio-device hw:0,1
驗證聲音品質現在達到應有的效果後,我使用 ALSA 裝置在脈衝音訊中建立接收器
pactl load-module module-alsa-sink device=hw:0,1
在 GNOME 中,我現在可以看到一個名為「Turtle Beach Z60 Game Audio」的新音訊裝置。使用它作為輸出設備,音質很棒。您可以透過轉動 USB 線控制器上的音量輪來驗證是否使用了正確的通道。它應該對正常的音量輪而不是語音輪做出反應。
您可以透過將此行新增至 /etc/pulse/default.pa 來永久變更脈衝音訊
load-module module-alsa-sink device=hw:0,1
現在以脈衝音訊列出接收器會顯示接收器的正確樣本大小
Sink #6
State: RUNNING
Name: alsa_output.hw_0_1
Description: Turtle Beach Z60 Game Audio
Driver: module-alsa-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
請注意,它僅顯示兩個通道,而不顯示環繞聲。這可能是可以在某個地方進行的設置,但我對環繞聲不感興趣。這至少可以透過使用正確的通道來修復音質。
也許這個問題有一個更優雅的解決方案,但這對我有用。