# 設定

設定分頁、裝置、音量、聲音處理、樂器、HUD、狀態圖示與自訂圖示包

Source: https://socketsvc.vercel.app/zh-TW/client/settings
按下 <kbd>V</kbd> 或輸入 `/ssvc` 即可開啟「語音設定」。如果還沒完成首次設定，開啟的會是「歡迎使用語音」；內容完全相同，最後按「開始使用」即可完成。

設定畫面是置中的對話框（最大 600 × 360 GUI 單位）。分頁沿著左側的導覽列排列，每個分頁都有圖示和完整名稱；面板太窄放不下名稱時，導覽列只保留圖示，名稱改成滑鼠提示。導覽列底部、分隔線下方的 **說明文件** 會在瀏覽器中開啟本網站。連線狀態（已連線／連線中／未連線）顯示在右上角，前面有一顆彩色指示燈；底部列左側是麥克風與接收語音開關，右側是「完成」，按下即可關閉並儲存。相關設定分組放在有標題的卡片中。螢幕較小時，設定內容可以捲動，導覽列與底部列則固定不動。

如果連線失敗，設定畫面頂端會出現一條紅色橫幅，說明狀況與重試方式。畫面上其他設定之所以都沒有作用，就是這個原因。

| 分頁 | 內容 |
| --- | --- |
| 一般設定 | 麥克風／接收語音開關、說話方式、裝置，以及麥克風、語音與音效板音量 |
| 進階設定 | 麥克風測試、聲音處理、介面選項、診斷 |
| 樂器 | 線路輸入、MIDI、鼓機與循環錄音，可以邊說話邊演奏 |
| 音量設定 | 喇叭音量與個別玩家的語音音量 |
| 自訂 | 自訂圖示包 |
| Flashback | 語音錄製與回放音量；**只有安裝 Flashback 時才會顯示** |

## 一般設定 [#general]

底部列有兩個圖示按鈕，每個分頁都看得到，不限於這一頁：

- **麥克風**：切換麥克風。關閉接收語音時，麥克風也會保持關閉。
- **接收語音**：切換是否聽得到其他玩家（停止接收語音）。關閉時也會把你的麥克風靜音；重新開啟後會恢復先前的靜音狀態。

這個分頁有 **說話** 與 **收聽** 兩張卡片，下方有前往 [語音群組](/client/groups) 選單的連結，不用打開選單就能看到目前所在的群組。標示 └ 的設定縮排在上方的裝置列底下：輸入聲道與麥克風音量屬於麥克風，兩個播放音量則屬於播放裝置。

| 設定 | 選項／範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 說話方式 | 自動偵測／按鍵說話 | 自動偵測 | 自動偵測：說話時自動傳送。按鍵說話：按住說話鍵（預設 <kbd>B</kbd>）說話，放開即停止 |
| 麥克風裝置 | 系統預設或指定裝置 | 系統預設 | 點擊以選擇裝置；變更會立即套用，不需要重新連線 |
| └ 輸入聲道 | 混合兩者／輸入 1／輸入 2 | 混合兩者 | 要從多輸入裝置的哪個插孔錄音。用在單聲道裝置上也沒關係，會自動改回混合 |
| └ 麥克風音量 | 0–200% | 100% | 送出的麥克風音量；0% 會送出靜音，超過 100% 會放大並加上限幅 |
| 播放裝置 | 系統預設或指定裝置 | 系統預設 | 同上 |
| └ 語音總音量 | 0–200% | 100% | 所有接收到的聲音（包括音效板）的總音量 |
| └ 玩家音效板音量 | 0–200% | 100% | 專門控制其他玩家 [音效板](/client/soundboard) 聲音的第二層總音量，疊加在語音總音量之上。可以把音效調小而不影響任何人的說話聲；0% 會完全靜音收到的音效。這個設定**不會**影響你自己播放的音效，那由 [音效板](/client/soundboard) 畫面上的音效板總音量控制 |

如果偵測不到已儲存的裝置，會顯示「（未偵測到）」並暫時改用系統預設。

<Callout title="USB 音訊介面">
Volt 2、Scarlett、AudioBox 這類介面會回報為雙聲道裝置，取樣率也常是 44.1 kHz 而不是 48 kHz。SocketSVC 接受它提供的任何錄音格式並自動轉換，所以既能當麥克風，也能當樂器輸入。

請把 **輸入聲道**（就在這個分頁的麥克風選擇器正下方）設成實際使用的插孔。介面通常是輸入 1 接麥克風、輸入 2 空著；如果維持「混合兩者」，會損失 6 dB，還會把空輸入的底噪混進你的聲音。

樂器分頁有自己的 **輸入聲道**，對應樂器自己的裝置，因此可以輸入 2 接吉他、輸入 1 接麥克風，共用同一台介面。
</Callout>

<Callout title="兩個同名的裝置">
相同的硬體（例如兩副一樣的 USB 耳機，或一個集線器上接了兩支相同的麥克風）會向系統回報同樣的名稱。SocketSVC 會在選擇器中為重複的項目編號（`Headset`、`Headset (2)`），讓每個項目都對應到特定的一台裝置。如果選的那台無法開啟，會先嘗試另一台同型裝置；如果最後只能改用系統預設，狀態列會照實說明，不會繼續顯示你選的名稱。
</Callout>

## 進階設定 [#advanced]

「通常不需要調整，維持自動設定即可。」切換到這個分頁時會自動開始麥克風測試，離開分頁就會停止。

### 麥克風測試 [#microphone-test]

| 設定 | 預設 | 說明 |
| --- | --- | --- |
| 音量表 | — | 說話時會有反應；顯示的是套用麥克風音量之前的輸入。如果無法使用麥克風，請到「一般設定」分頁選擇裝置 |
| 聆聽自己的聲音 | 關閉 | 以短暫延遲從喇叭播放你的麥克風聲音。請戴耳機，以免產生回授 |

### 聲音處理 [#audio-processing]

| 設定 | 選項／範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 雜訊抑制 | 開啟／關閉 | 開啟 | RNNoise，在增益、語音偵測與 Opus 編碼之前套用 |
| └ 進階雜訊消除 | 開啟／關閉 | 開啟 | 強大許多的 AI 降噪模型，除了持續的背景噪音，也能清掉遊戲音效和音樂，代價是多一些 CPU 負載與延遲。只有在雜訊抑制開啟且平台支援時才會顯示 |
| └└ 模型 | 下載／刪除 | 尚未下載 | 約 50 MB，需要時才下載。左鍵點擊下載（會先出現確認畫面）；就緒後右鍵點擊即可刪除 |
| 迴音消除 | 開啟／關閉 | 開啟 | 自適應迴音消除 |
| └ 自動偵測迴音延遲 | 開啟／關閉 | 開啟 | 比對結果夠可靠時才開始消除 |
| └└ 迴音延遲 | 0–500 ms | 100 ms | 關閉自動偵測時使用的手動延遲，適用於難搞的裝置或房間 |
| 麥克風增益 | 自動／手動 | 自動 | 帶有峰值限幅的自動增益 |
| └ 增益 | -30–30 dB | 0 dB | 手動模式下的輸入增益 |
| 語音偵測 | 自動／手動 | 自動 | 自動模式會在 RNNoise 可用時採用它的語音機率 |
| └ 偵測門檻 | 0–2000 | 300 | 手動模式下的 RMS 門檻；自動模式固定使用 300 |

- **進階雜訊消除** 支援 Windows x64、Linux x64 與 macOS Apple Silicon；其他平台會顯示「此平台不支援」。模型下載完成前，或模型在遊戲中途出錯時，會改用 RNNoise。
- **迴音消除** 只以 SocketSVC 自己播放的聲音作為參考，不包括 Minecraft 遊戲音效或系統音訊。如果處理後的音訊比原始麥克風訊號還大聲，會保留原始樣本並讓濾波器重新學習，所以切換喇叭或耳機時不必把它關掉再開。雙方同時說話時，重新學習期間可能會暫時漏出一些真正的迴音。
- **自動語音偵測** 會保留開始說話前的最後 60 ms 並一起送出，說完後也會繼續傳送 300 ms，才不會切掉字的開頭和結尾。放開按鍵說話則會立即停止。

分頁底部會顯示目前的處理狀態，例如「雜訊抑制已開啟 / 迴音延遲 120 ms」或「正在學習迴音」。

### 周遭環境 [#surroundings]

這些設定決定世界環境如何影響其他玩家的聲音。**三項預設都是關閉的**，而且都只會改變你自己聽到的聲音。

| 設定 | 選項／範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 跟隨 Sound Physics Remastered | 開啟／關閉 | 開啟 | 只有安裝 [Sound Physics Remastered](/client/compatibility#sound-physics-remastered) 時才會出現。開啟時，下面三項會改用它的設定 |
| 牆壁讓聲音變悶 | 開啟／關閉 | 關閉 | 牆壁另一側的玩家聽起來會比較悶、也稍微小聲一點 |
| └ 悶聲程度 | 0–100% | 100% | 牆壁讓聲音變悶的程度 |
| 水下聲音變悶 | 開啟／關閉 | 關閉 | 你或說話的人在水下時，聲音聽起來就像在水下 |
| 房間回音 | 開啟／關閉 | 關閉 | 洞穴和大廳會讓聲音產生回音，空曠的地方則不會 |
| └ 回音強度 | 0–100% | 100% | 房間會增加多少回音 |
| └ 聽到自己的回聲 | 開啟／關閉 | 關閉 | 在洞穴或大廳裡說話時，會聽到房間把你的聲音回響回來 |

- **只會變悶，不會靜音。** 完全變悶的聲音會去掉高頻，音量略高於一半：聽得出隔著東西，但絕不會消失。擋在中間的第一個方塊就造成大部分效果，三個以上就是最悶的程度。任何有碰撞箱的東西都算，所以玻璃和柵欄也會讓聲音變悶。
- **由你的用戶端根據已有的世界資料計算。** 用戶端每秒數次從你的眼睛向 96 格內的每位玩家發射射線偵測。伺服器不需要做任何額外工作，你的選擇也不會影響其他人。如果用戶端無法把某個聲音的來源辨識為玩家（例如距離太遠而沒有追蹤，或是外掛建立的喇叭），牆壁就不會讓它變悶。
- **水下**：你的頭在水下時，所有聲音都會變悶；說話者的頭在水下時，他的聲音會變悶。
- **房間回音** 會向四面八方發射射線，探測你周圍的空間：牆壁和天花板越多，回音越強；空間越大，回音持續越久。森林或村莊街道太空曠，不會有回音。離開洞穴時，最後一段回音會自然消散，不會突然切斷。
- **聽到自己的回聲** 會把你送出的聲音也送進同一個房間，讓你聽到自己聲音的回聲——只有回聲，絕不會把你的聲音本身回放給你。它和別人聽到的完全一致：靜音或沒按住按鍵說話時就沒有。迴音消除會把它從你的麥克風裡再去掉，所以不會形成回授。
- 這些效果會套用在玩家語音與其他玩家的音效板片段上，不影響電影院螢幕與其他擴充套件的聲音。
- **安裝了 Sound Physics Remastered 時**，牆壁、水下與房間回音會改用它的設定：它的 *block absorption* 決定悶聲程度、*underwater filter* 決定水下悶聲、*reverb gain* 決定回音、*Simple Voice Chat hear self* 決定你是否聽到自己的回聲，它的預設值等於這裡的 100%。如果 Sound Physics Remastered 被關閉，或它的 *Simple Voice Chat integration* 選項（它對語音聊天套用效果的開關）被關閉，語音就不會有任何效果。關閉 **跟隨 Sound Physics Remastered** 即可改用上面的設定。

## 樂器 [#instrument]

樂器是麥克風以外的輸入來源，會**和說話一起**送進語音聊天，而不是取代說話。樂器是一條獨立的音訊串流，所以說話時演奏不會中斷，把麥克風靜音也不會讓樂器消音。

每個音源都有自己的開關，而且**可以同時使用**，例如鼓機節奏配上 MIDI 鍵盤，再加上一把接在線路輸入上的吉他。所有開啟的音源都會混進同一條樂器串流。

每個開關以音源命名，開啟後，該音源的設定會縮排顯示在底下，和「一般設定」分頁中裝置與其設定的巢狀方式相同。同時套用到所有音源的設定集中在底部的 **共用設定**，至少開啟一個音源時才會出現。

這個分頁的每一列，以及鼓機和循環錄音編輯器中的每個控制項，把滑鼠移上去都會顯示說明。看名稱還不清楚時，把游標停在上面看說明就好，不必用猜的。

| 音源 | 說明 |
| --- | --- |
| 線路輸入 | 第二個錄音裝置：音訊介面、鍵盤的音訊輸出，或來自 DAW 的虛擬音訊線 |
| MIDI | MIDI 鍵盤或吉他，由 SocketSVC 內建的合成器或你載入的音色庫發聲 |
| 鼓機 | 內建的步進音序器，有八種合成鼓聲，長度 1–32 拍 |
| 循環錄音 | 錄下你演奏的內容並層層疊加，最多 16 軌 |

| 共用設定 | 選項 | 意義 |
| --- | --- | --- |
| 按鍵演奏 | 預設關閉 | 只在按住「演奏樂器」鍵時傳送 |
| 樂器音量 | 0–200% | 樂器送出前的音量微調，也是你監聽時的音量 |
| 聆聽自己的演奏 | 預設開啟 | 除了送出樂器聲，也從你自己的喇叭播放 |

某個音源無法啟動時，不會連帶影響其他音源：拔掉 MIDI 鍵盤後，鼓機仍會繼續播放，並說明鍵盤為什麼沒有聲音。多個音源同時很大聲時，混音會自動壓低，不會削波失真。

### 鼓機 [#drum-machine]

鼓機是有八種合成鼓聲的步進音序器，包括大鼓、小鼓、閉合與開放腳踏鈸、拍手、中鼓、邊擊與銅鈸。不需要另外安裝：聲音和類比鼓機一樣，是用振盪器和雜訊產生的，所以不需要任何取樣包或 SoundFont。

腳踏鈸和銅鈸由六個略微走音的方波組成，而不是用雜訊，所以聽起來像金屬般鳴響，不會是嘶嘶聲；大鼓和中鼓在衰減時音高會往下滑。整組鼓的音量都已調配好，編出來的節奏自然融合，不需要特別把哪一顆鼓調小。

開啟 **鼓機**，再按 **編輯節奏**，就會開啟填滿整個視窗的格線。點擊方格放置一擊，或拖曳經過多個方格一次填滿一整串；按下的第一個方格決定這次拖曳是放置還是清除。點擊鼓的名稱可以試聽。

| 設定 | 範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 速度 | 40–240 BPM | 100 | 與節拍器和循環錄音共用 |
| 搖擺 | 0–50% | 0 | 把每隔一格往後推，產生搖擺的律動感，但不改變速度 |
| 拍數 | 1–32 | 16 | 節奏的長度 |
| 每小節拍數 | 1–12 | 4 | 決定陰影中小節線的位置。和循環錄音的是同一個設定，因為節拍器也依它決定重音 |
| 每拍格數 | 1–8 | 4 | 每一拍切分得多細：4 是十六分音符，3 是三連音，8 是三十二分音符 |

欄位有兩種深淺的陰影：每拍開頭較淺，每小節開頭較深。一小節有幾拍由 **每小節拍數** 決定，所以華爾滋會顯示成三拍一小節。上方的數字是拍數。最長的節奏是 32 × 8 = 256 欄，所以方格會縮小以符合視窗；縮到不能再小時，格線就會**橫向捲動**，可以拖曳下方的捲軸，或在格線上使用滑鼠滾輪或觸控板。捲動時鼓的名稱會固定不動。

縮短格線只會隱藏超出新長度的格子，不會刪除，所以縮短後再拉長，原本的節奏就會回來。在較短格線上儲存的節奏，放到較長的格線上會重複，所以既有的節奏聽起來和原本一樣。

節奏會和設定一起儲存，你做其他事時也會持續播放，所以可以先鋪好一段循環，再跟著它說話、用另一個輸入彈吉他，或到處走動。

### 循環錄音 [#looper]

開啟 **循環錄音**，再按 **開啟循環錄音**，就會開啟填滿視窗的編輯器。循環錄音位於訊號鏈的最後，所以會錄下前面的所有聲音：線路輸入上的吉他、MIDI 鍵盤、鼓機，或三者同時。你演奏的聲音會直接通過，就像循環效果器踏板一樣。

**16 軌**各佔一行：軌道編號、五個按鈕、以文字描述的目前狀態、波形，以及音量。最後操作的軌道會標示出來，鍵盤操作的就是這一軌。

| 按鍵 | 功能 |
| --- | --- |
| <kbd>1</kbd>–<kbd>9</kbd>、<kbd>0</kbd> | 在該軌錄音。效果和按下 ● 按鈕相同，所以會依序循環：錄音 → 播放 → 疊錄 |
| <kbd>R</kbd> | 在標示的軌道上錄音 |
| <kbd>Space</kbd> | 播放全部；如果有任何軌道正在執行，則全部停止 |
| <kbd>M</kbd> | 將標示的軌道靜音 |
| <kbd>Z</kbd> | 復原該軌的上一層 |
| <kbd>Delete</kbd> | 清除該軌 |
| <kbd>↑</kbd> <kbd>↓</kbd> | 選擇軌道 |

操作循環錄音時雙手都放在樂器上，所以數字鍵比按鈕重要；所有硬體循環效果器都是這樣準備錄音軌道的。按鈕則用來查看狀態，以及操作目前所在以外的軌道。

五個按鈕分別是：

| 按鈕 | 功能 |
| --- | --- |
| ● | 錄音。按一次開始，再按一次封閉循環並播放，再按一次在上面疊錄一層，再按一次停止疊錄。有設定預備拍時，第一次按下會先數預備拍；在預備拍期間再按一次就會取消 |
| ▶ / ■ | 播放或停止該軌，不會遺失上面的內容 |
| ↶ | 復原上一層，再按一次可以恢復 |
| M | 靜音 |
| × | 清除該軌 |

每一軌都會繪製**錄在上面的波形**，播放頭經過的地方會變亮，播放頭本身也有一條線，所以你看得到每一擊的位置、疊上的一層有沒有對準節拍，而不只是目前播放到循環的哪裡。軌道最後的 `3×` 表示疊了幾層，右邊的短條則是音量。空的軌道會顯示 `press ● to record`（按 ● 開始錄音）。正在等預備拍的軌道會顯示 `counting in`（預備中），錄音燈是**琥珀色**而不是紅色：這時還沒開始錄音，要等預備拍結束才會真正開始錄。**全部停止** 會取消等待中的預備拍。

疊錄沒有預備拍，因為它加入的是一段已經在播放、也已經對準節拍的循環。

在這個編輯器中，**節拍器** 會依照鼓機的速度在每一拍發出一聲。錄音時你就是跟著它演奏，所以才放在這裡。**只有你聽得到**：節拍聲和樂器混音分開產生，經由本機監聽送到你的喇叭，所以永遠不會編碼，也不會傳送給任何人。開啟時會從第一拍開始數，不會從原本數到的地方接下去；每小節的第一拍音比較高也比較大聲，因為不標出小節起點的節拍聲，只能告訴你速度，無法告訴你拍子。

| 設定 | 範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 預備拍 | 0–8 拍 | 4 | 在**第一次**錄音開始前先響這麼多拍，讓你聽得到強拍即將到來。設為 4 就是響四下，錄音從之後那個無聲的拍子開始。即使節拍器關閉也會響；設為 0 則立刻開始錄音 |
| 節拍器 | 開啟／關閉 | 關閉 | 節拍聲，只有你聽得到 |
| 節拍音量 | 0–200% | 70% | |
| 每小節拍數 | 1–12 | 4 | 拍號上方的數字：華爾滋是 **3**，大多數情況是 4。鼓機編輯器中也有這個設定，因為它決定該格線的小節線 |
| 循環長度 | 1–32 拍 | 8 | **新**錄音的長度，以鼓機速度下的**拍數**計算，讓循環能對齊現有的節奏。下方那行會換算成秒數，例如 100 BPM 下八拍是 4.8 秒 |
| 循環音量 | 0–200% | 100% | 循環錄音本身的音量，套用在所有軌道上 |

每一軌會維持錄製時的長度，所有軌道共用同一個時鐘，所以不同長度的軌道會保持同步。**全部播放**、**全部停止** 與 **全部清除** 會一次作用在所有軌道上。

上方的控制項固定不動，只有軌道列表會捲動，所以就算捲到第 14 軌、正在錄音，播放控制仍在畫面上。單一軌道最長 40 秒。

<Callout title="循環不會儲存">
錄下的音訊是好幾分鐘的樣本，而不是一項設定，所以循環只在遊戲執行期間存在。重新啟動後循環還會回來的，就是取樣機，而不是循環錄音了。
</Callout>

### 自訂鼓聲取樣 [#custom-drum-samples]

內建的合成器是為了讓鼓機不必安裝任何東西就能使用，振盪器本身並不是目標。如果想改用錄製的聲音，把裝有取樣的資料夾放到 `config/socketsvc/drumkits/`，再到 **鼓組音色** 中選擇它。

每個檔案以它代表的鼓命名，支援 WAV、MP3、OGG、Opus、FLAC 或 AIFF：

```
config/socketsvc/drumkits/
  my kit/
    kick.wav
    snare.wav
    closed hat.wav
    open hat.wav
    clap.wav
    tom.wav
    rim.wav
    cymbal.wav
```

比對時不分大小寫，會忽略空格與標點符號，也接受取樣包常見的縮寫，所以 `BD.WAV`、`909 Kick Drum 01.wav` 和 `kick.wav` 都會對應到大鼓。`SideStick` 是邊擊，`crash` 是銅鈸。**Open** 和 **closed** 不論出現在名稱的哪個位置都能辨識，所以 `Open HH`、`HH Open`、`Hat Open` 和 `OH` 都是開放腳踏鈸，單獨的 `hat` 或 `HH` 則是閉合腳踏鈸。兩個字母的縮寫（`BD`、`SD`、`HH`、`OH`、`CH`、`CP`、`CY`）必須是獨立的單字，所以資料夾裡的 `China.wav` 或 `Vocal Chop.wav` 會略過，不會佔用某顆鼓的位置。如果兩個檔案對應到同一顆鼓，名稱比較明確的優先，例如 `kick.wav` 優先於 `bd.wav`。

**鼓組音色** 設定會列出沒用到的檔案及原因：名稱沒有對應到任何鼓、那顆鼓已經有檔案，或是檔案無法讀取。如果某顆鼓仍在使用內建音色，那一行也會說明是哪種情況。

沒有對應檔案的鼓會保留合成音色，所以只有大鼓的資料夾也是有效的鼓組，這個設定也會列出哪些鼓屬於這種情況。如果你的拍手還是內建音色，代表它的檔名沒有對應到任何鼓。無法解碼的檔案只影響那一顆鼓，不會影響整組。在已選取的資料夾中新增、替換或重新命名檔案會自動生效，不需要重新選擇鼓組。任何取樣率的樣本都會自動轉換，所以大多數取樣包附的 44.1 kHz 檔案可以直接使用，閉合腳踏鈸也仍然會切斷開放腳踏鈸的聲音。

<Callout title="想要完整的原音鼓組，也可以用 SoundFont">
用 MIDI 打擊墊控制器演奏 General MIDI SoundFont，可以得到一整組有力度層次的取樣鼓組，這是單擊取樣資料夾做不到的。請參閱 [音色庫](#sound-banks-soundfont)。
</Callout>

### 從 DAW 演奏（FL Studio、Ableton、Reaper...） [#playing-from-a-daw-fl-studio-ableton-reaper]

開啟 **線路輸入**，把 DAW 的輸出送到**虛擬音訊線**，再選擇那條音訊線作為輸入裝置。DAW 產生的所有聲音，包括它內建的合成器、你擁有的任何 VST3、經過效果鏈的吉他，都會出現在語音聊天中。

| 平台 | 虛擬音訊線 | 在 DAW 中 |
| --- | --- | --- |
| Windows | [VB-Cable](https://vb-audio.com/Cable/) 或 VoiceMeeter | 將音訊裝置設為虛擬音訊線的輸入端。使用 ASIO 時，FL Studio 需要將 FL Studio ASIO 或 ASIO4ALL 指向它 |
| macOS | [BlackHole](https://existential.audio/blackhole/) 或 Loopback | 將音訊輸出裝置設為虛擬音訊線 |
| Linux | PipeWire / PulseAudio null sink | 用 `pw-link` 或 `qpwgraph` 把 DAW 的 sink 接到它 |

如果自己也想繼續聽到 DAW 的聲音，可以使用同時輸出到虛擬音訊線和耳機的多重輸出裝置，或在 SocketSVC 中保持 **聆聽自己的演奏** 開啟。

SocketSVC 會直接使用裝置本身的格式：立體聲會降混，任何取樣率都會轉換成語音處理流程需要的格式，所以維持 44.1 kHz 立體聲的虛擬音訊線不用重新設定就能使用。

<Callout title="SocketSVC 本身無法成為 DAW 的輸出裝置">
DAW 只能把聲音送到真正的音訊裝置，而建立音訊裝置需要附帶系統音訊驅動程式（macOS 上是核心延伸功能，Windows 上是經過簽章的驅動程式），這是 Minecraft 模組做不到的。虛擬音訊線做的正是這件事，所以路徑才要經過它。
</Callout>

**線路輸入** 適合任何本身就會發出聲音的東西：接在音訊介面上的電吉他、鍵盤的音訊輸出，或是傳送你平常用的軟體合成器聲音的虛擬音訊線。

在有多個插孔的介面上，請把樂器自己的 **輸入聲道** 設成樂器實際插著的那一個。它和「一般設定」分頁中麥克風的聲道分開，所以可以輸入 2 接吉他、輸入 1 接麥克風，共用同一台介面而互不干擾。變更這個設定會重新開啟裝置，樂器聲會短暫中斷。

**聆聽自己的演奏** 對兩種音源預設都是開啟的。MIDI 本身沒有其他發聲途徑，關掉它你就是在無聲中演奏。線路輸入只有在所接的硬體剛好有自我監聽功能時才聽得到（很多介面沒有），所以這裡也預設開啟，免得你不確定到底有沒有在運作。如果已經從其他地方聽到樂器，就把它關掉，否則會聽到兩次。

**MIDI** 會接收 MIDI 鍵盤或吉他的訊號，由 SocketSVC 自己發聲。觸鍵力度、延音踏板和滑音都能使用。聽起來像合成器，而不是取樣鋼琴，原因請參閱 [為什麼內建合成器使用振盪器](#why-the-built-in-synth-is-oscillators)。

「演奏樂器」鍵預設沒有綁定；如果想使用按鍵演奏，請在控制設定中設定。

<Callout type="warn" title="監聽時請戴耳機">
監聽的聲音會從喇叭播出，再被麥克風收進去。監聽路徑也和 SocketSVC 自己的語音播放不同，不在迴音消除的參考訊號中，所以無法消除。如果用喇叭，其他玩家會聽到你的樂器兩次：一次來自樂器聲道，一次是滲進麥克風的聲音。戴上耳機就能完全解決這個問題。
</Callout>

<Callout title="樂器不會經過任何語音處理">
雜訊抑制、自動增益、語音偵測和迴音消除，都是為了處理單一說話聲而設計的，而且每一項都會實際破壞音樂：雜訊抑制的訓練目標是只保留人聲、捨棄其他一切；自動增益會把刻意的漸強壓平；語音偵測則會在延長音衰減到低於說話停頓門檻時直接切掉。樂器會照你的演奏原樣送出，途中只經過你的音量微調和一個限幅器。
</Callout>

### 音色庫（SoundFont） [#sound-banks-soundfont]

把 `.sf2` 或 `.sf3` 檔案放進 `config/socketsvc/soundfonts`，再到 **音色庫** 中選擇一個。之後彈奏的音符就會改用該音色庫錄製的樂器（真正的鋼琴、吉他或弦樂），而不是內建的振盪器；**音色庫音色** 則用來選擇要演奏音色庫中的哪一種樂器。

**音色庫**、**音色庫音色**、**MIDI 裝置** 和 **輸入裝置** 都會開啟可搜尋的清單，而不是每點一下切換一個項目。輸入文字即可篩選：每個詞都必須出現在名稱中的某處，順序不拘，所以 `grand piano` 和 `piano grand` 都會找到同一個音色。這對 **音色庫音色** 最重要，因為 General MIDI 音色庫有一百多種音色，不適合一個一個點過去。免費的 General MIDI 音色庫很容易取得；`.sf3` 是同一種格式，只是樣本用 Ogg 壓縮，所以完整的 GM 音色庫只要幾十 MB，而不是幾百 MB。

大型音色庫需要一點時間載入，所以載入會在背景進行；狀態列會顯示正在載入，準備好之前會繼續用振盪器發聲。無論哪種情況，觸鍵力度、延音踏板和滑音都能使用。

鼓組也能使用：單擊樣本會在樣本結尾停止，把樂器分配在鍵盤不同區域的音色也會照著分配，所以每個鍵只會發出屬於它的聲音。

並非所有 SoundFont 功能都有實作：支援樣本、調音、循環點和音量包絡，不支援調變器、濾波器、LFO、合唱和殘響。後者是用來修飾聲音的，而樣本、音高、循環和包絡**本身**才是聲音。

### 用你自己的錄音當作樂器 [#your-own-recordings-as-an-instrument]

SoundFont 是真正的取樣樂器，但你得先找到合適的，自己製作更是一項大工程。如果想改用自己的錄音來演奏，把裝有錄音的資料夾放進同一個 `config/socketsvc/soundfonts` 目錄，它會和 `.sf2` 檔案一起出現在 **音色庫** 中。

每個檔案以錄製時的音名命名，支援 WAV、MP3、OGG、Opus、FLAC 或 AIFF：

```
config/socketsvc/soundfonts/
  my piano/
    A0.wav
    C2.wav
    C4.wav
    A4.wav
```

`C4.wav`、`C#4.wav`、`Db4.wav` 和 MIDI 編號 `60.wav` 都可以；音名是從檔名結尾讀取的，所以 `Grand Piano A4.wav` 和 `piano-A3.wav` 也沒問題。檔名中沒有任何音高資訊的檔案會當作中央 C，所以就算只有一個沒命名的錄音也能演奏。

沒有對應檔案的音符，會用**最接近**的錄音依音高比例重新取樣來演奏。因此一個檔案就能涵蓋整個鍵盤，每多加一個檔案，它周圍需要拉伸的範圍就會縮小。在整個音域中放四、五個，通常就足以讓聲音聽起來不會明顯像是移調過的。

拉伸會損失音質，而且損失並不對稱。接近錄音的音符很乾淨。比錄音**高出**許多的音符會失去高頻，還會帶一點微弱的鳴響，因為播放加速時，錄音本身的高頻會折疊回來：大約高一個半八度就聽得出來，高兩個八度就很明顯。解決方法是在該音域加入較高的錄音；折疊造成的損失，後續任何處理都無法挽回。

<Callout title="音符的長度就是錄音的長度">
單純的音訊檔沒有循環點，所以按住一個鍵只會把錄音播放一次就停止，不會持續延音。這適合敲擊和撥弦類的聲音，例如鋼琴、吉他、鐘聲、鼓、單擊人聲。需要無限延長的聲音請用 SoundFont，它帶有延音所需的循環點。
</Callout>

### 為什麼內建合成器使用振盪器 [#why-the-built-in-synth-is-oscillators]

沒有載入音色庫時，SocketSVC 會自行合成音符，聽起來像合成器而不是真正的樂器。JDK 確實附帶一個 General MIDI 音色庫，但無論是把它渲染成音訊或讀取它的樣本，所有途徑都位於 Java 平台沒有匯出的套件中，而模組無法修改其他玩家的啟動器來開放存取。所以音色庫才會做成選項，預設也才會退回振盪器。

### VST3 外掛 [#vst3-plugins]

不支援，也沒有計畫在 SocketSVC 內部載入。VST3 沒有 Java 綁定，需要為每個平台各自建置原生宿主程式；它的 SDK 採用 GPLv3，或需要與 Steinberg 簽署協議；而且在遊戲本身的處理程序中執行第三方外掛，可能會讓 Minecraft 直接當機，這也是音訊軟體會把外掛隔離在獨立處理程序中的原因。

支援的做法是 **線路輸入**：在你原本使用的宿主程式中執行外掛，把宿主程式的輸出送到虛擬音訊線，再選擇那條音訊線作為樂器裝置。你擁有的每個外掛都能使用，也不會有任何外掛把遊戲一起拖垮。

### 如果 MIDI 沒有聲音 [#if-midi-makes-no-sound]

- 狀態列顯示 **「找不到 MIDI 輸入裝置」**，代表這台電腦上沒有任何裝置能送出音符。只有硬體 MIDI 連接埠才算：JDK 內建的「Real Time Sequencer」雖然看起來像輸入，但並不是，所以刻意不列出來。
- 在標題畫面也能開啟樂器並在本機監聽，所以可以在加入伺服器前先測試鍵盤。連線之前不會傳送任何東西。
- 如果你聽得到自己、其他人卻聽不到，請確認已經連線，而且伺服器允許 `socketsvc.soundboard`。
- 如果裝置完全無法開啟，代表它沒有提供 SocketSVC 能讀取的錄音格式；請試著在虛擬音訊線自己的控制面板中，把它設為 16 位元立體聲、44.1 或 48 kHz。
- 如果監聽時聲音斷斷續續，那是這個版本之前監聽混音器的錯誤：某個時刻剛好沒有音訊準備好時，會完全跳過寫入，讓輸出裝置斷糧。現在改為寫入靜音，裝置不會再斷糧，監聽本身的緩衝上限也設為 160 ms，彈奏的音符能即時聽到。
- 如果完全聽不到聲音，請確認 **聆聽自己的演奏** 已開啟。使用線路輸入時，只要介面沒有自我監聽功能，開不開它就是有聲和無聲的差別。

### 需求與限制 [#requirements-and-limits]

- 伺服器必須支援音效板聲道，第二條同時進行的串流要靠它才能傳到其他玩家。伺服器版本太舊、不支援時，樂器會退回搭乘你的麥克風串流，也就是不再獨立於麥克風。
- `socketsvc.soundboard` 權限也涵蓋樂器，聽眾的音效板音量同樣會套用在樂器上。
- 最多可以同時發出 24 個音；超過時會重複使用最小聲的那一個。

### 介面 [#interface]

| 設定 | 預設 | 說明 |
| --- | --- | --- |
| 顯示語音狀態 | 開啟 | 左下角的 HUD 狀態圖示；也可以用 <kbd>H</kbd> 切換 |
| 群組浮層 | 開啟 | 左上角列出你所在 [語音群組](/client/groups) 中的所有人，只有頭像和名稱，沒有背景面板。只有在群組中時才會顯示，按住 <kbd>Tab</kbd> 顯示玩家列表時會暫時隱藏 |
| 玩家名稱語音圖示 | 開啟 | 其他玩家名牌旁的語音圖示 |
| 伺服器列表語音標記 | 開啟 | 在多人遊戲伺服器列表中，執行 SocketSVC 的伺服器那一列左側會顯示麥克風標記。標記資料來自列表本來就會送出的狀態查詢，所以不會多建立任何連線；沒有宣告支援的伺服器就不會有標記。請參閱 [伺服器列表標記](/server/configuration#server-list-badge) |
| 減少動畫 | 關閉 | 停用介面的轉場動畫，並讓 GIF 動畫圖示停在第一格 |

### 診斷 [#diagnostics]

這些設定平常用不到，要找出問題時才需要開啟，所以自成一張卡片，而不是放在「介面」的最下面。

| 設定 | 預設 | 說明 |
| --- | --- | --- |
| 開發者模式 | 關閉 | 在右上角顯示本機語音統計，不代表真正的網路流失率。請參閱 [疑難排解](/client/troubleshooting#developer-mode) |
| 詳細記錄 | 關閉 | 將詳細的連線、音訊與網路追蹤紀錄寫入 `latest.log`，方便疑難排解 |
| 分享匿名使用統計 | 開啟 | 將彙總的模組／Minecraft 版本與作業系統資訊傳送到統計系統；絕不包含玩家身分或語音資料 |

## 音量設定 [#player-volume]

「只影響你聽到的音量，0% 為靜音。」

- **喇叭**：伺服器定義了 [空間喇叭](/server/spatial-audio-api) 時，會列在最上方，每個都有 0–200% 的滑桿，依伺服器和喇叭 ID 分別儲存。
- **玩家**：每位連上語音的玩家各佔一列，顯示皮膚頭像和說話音量。最近說過話的玩家排在前面，從沒說過話的排在最後。
  - 語音音量 0–200%（預設 100%）。0% 只會讓那位玩家靜音，100% 為正常，200% 會提高增益，但仍受共用的峰值限幅器限制。
  - 點擊玩家頭像**或名稱**即可切換靜音；取消靜音會恢復上一次非零的音量。滑桿左側任何地方都能點，所以在很長的列表中也很好點。

每位玩家的 [音效板](/client/soundboard) 聲音不再有獨立的一列，請改用「一般設定」分頁中的 **玩家音效板音量**。

音量設定會儲存下來，重新連線或重新啟動遊戲後都會保留。未連線時，分頁會顯示「連上語音後，就能調整其他玩家的音量。」；在不支援玩家名單的舊版伺服器上則會顯示「等待玩家名單；舊版伺服器不支援此功能。」

## 耳機空間音效 [#headphone-spatial-audio]

有位置的語音會用 MIT KEMAR 頭部相關傳遞函數（HRTF）處理，戴耳機時就能分辨聲音來自前方還是後方。不需要任何設定，但請注意以下限制：

- 協定只提供水平的 X/Z 偏移，所以能分辨前後與左右，但無法分辨高低，也沒有頭部俯仰的線索。
- 通用的 HRTF 無法保證每位聽者、每副耳機都能感覺到聲音「在頭部外面」。
- 使用立體聲耳機並停用其他環繞音效處理，效果最好。

## 狀態圖示 [#status-icons]

| 圖示 | 自訂圖示名稱 | 出現位置 |
| --- | --- | --- |
| <img src="/images/icons/speak.png" alt="麥克風 - 未靜音" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 麥克風 - 未靜音 | 麥克風按鈕的開啟狀態；HUD：你正在說話 |
| <img src="/images/icons/mute.png" alt="麥克風 - 靜音" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 麥克風 - 靜音 | 麥克風按鈕的關閉狀態；HUD：你的麥克風已靜音 |
| <img src="/images/icons/mic.png" alt="音訊 - 開啟" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 音訊 - 開啟 | 接收語音按鈕的開啟狀態；名牌：該玩家正在說話 |
| <img src="/images/icons/defend.png" alt="音訊 - 已拒聽" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 音訊 - 已拒聽 | 接收語音按鈕的關閉狀態；HUD：你已停止接收語音；名牌：該玩家已停止接收語音 |
| <img src="/images/icons/disconnected.png" alt="已斷線" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 已斷線 | HUD：語音未連線；名牌：該玩家沒有連上語音 |
| <img src="/images/icons/soundboard.png" alt="正在播放音效板" width={32} height={32} style={{ imageRendering: 'pixelated' }} /> | 正在播放音效板 | 名牌：該玩家正在播放音效板，顯示在其他狀態圖示之後 |

### HUD [#hud]

HUD 沒有外框，位於畫面左下角，一次只顯示一種狀態，優先順序如下：

1. 語音未連線（連線時顯示「連線中...」文字，等待自動重試時顯示「重新連線中...」）
2. 已停止接收語音
3. 麥克風已靜音
4. 正在說話

已連線、未靜音且沒在說話時不會顯示任何東西。在沒有 SocketSVC 的伺服器上，會直接顯示斷線圖示；因為沒有東西可以連線，所以不會先出現「連線中...」。如果改由 Simple Voice Chat 或 Plasmo Voice 連上了這台伺服器，則不顯示任何東西，把位置留給那個模組的圖示。按 <kbd>F1</kbd>、關閉「顯示語音狀態」或開啟任何畫面時，HUD 也會隱藏。

### 名牌 [#nameplates]

圖示畫在其他玩家名稱的右側，絕不會畫在名稱裡面，所以切換圖示時名牌不會移動。優先順序是已斷線、已停止接收語音、正在說話；其他情況不顯示。正在播放音效板的圖示會接在後面。

- 「正在說話」反映的是實際在你的用戶端上播放的聲音。
- 玩家名單未知或你自己斷線時，不會誤把所有人標示為離線。
- 停止接收語音的狀態透過另外協商的擴充協定同步，用戶端和伺服器都需要更新才能使用。
- TAB 列表和聊天中的名稱不會改變。
- 所有名牌圖示都可以在 **進階設定 → 介面 → 玩家名稱語音圖示** 關閉。

## 自訂圖示包 [#custom-icon-packs]

在「自訂」分頁，可以用自己的圖片建立圖示包，取代上面的六個狀態圖示。任何圖片都可以，會自動裁切成正方形並調整大小。

<Steps>
<Step>

### 建立圖示包 [#create-a-pack]

點擊右上角的 <kbd>+</kbd> 建立新的圖示包。新圖示包會先複製目前啟用的圖示包（或預設圖示），並開啟圖示包編輯器。

</Step>
<Step>

### 加入圖片 [#add-images]

在編輯器中，左鍵點擊圖示會開啟「選擇圖片」清單。點擊「開啟資料夾...」，從檔案總管把圖片拖進那個資料夾，點擊「重新整理」，再選擇該檔案。右鍵點擊圖示可以重設為預設。

</Step>
<Step>

### 儲存並啟用 [#save-and-activate]

輸入名稱（最多 48 個字元）並點擊「儲存」，這也會同時啟用該圖示包。「刪除」會移除整個圖示包；刪除目前啟用的圖示包會恢復為預設圖示。

</Step>
</Steps>

在圖示包清單中，左鍵點擊圖塊即可套用，右鍵點擊則可編輯。「預設（by DragonL）」只能套用，無法編輯。

| 項目 | 規則 |
| --- | --- |
| 圖示資料夾 | `config/socketsvc/icons/inbox/`（位於遊戲目錄中；檔案依新到舊排列） |
| 圖片格式 | PNG、JPG/JPEG、GIF、BMP |
| 處理方式 | 從中央裁切成正方形並縮放為 128×128 |
| GIF 動畫 | 逐格儲存，並在所有出現圖示的地方播放動畫，包括 HUD、設定按鈕，以及玩家頭上的名牌圖示；最多 200 格，每格延遲限制在 20 ms–30 s 之間。清單中的縮圖會停在第一格；開啟 [減少動畫](#interface) 時，所有地方也都會停在第一格 |
| 圖示包儲存位置 | `config/socketsvc/icons/packs/` |

### 匯出與匯入 [#export-and-import]

- **匯出...** 會把目前啟用的圖示包存成 zip 檔放在圖示資料夾中（檔名為 `<name>-<timestamp>.zip`），並開啟該資料夾。沒有自訂的圖示會以預設圖示補上，所以 zip 檔可以獨立使用。
- **匯入...** 會從圖示資料夾中選擇一個 zip 檔，匯入為新的圖示包（絕不會覆蓋既有的圖示包，也不會自動啟用）。如果 zip 檔中沒有可辨識的圖示，會顯示「該壓縮檔中沒有可辨識的圖示」。

zip 檔中的項目依圖示檔名辨識：`pack.json`（名稱）、`speak.png`、`mute.png`、`mic.png`、`defend.png`、`disconnected.png`、`soundboard.png`。動畫圖示則是同名的資料夾，裡面有 `anim.json` 加上 `0.png`、`1.png` 等檔案。這些檔名是沿用下來的內部名稱，不一定符合圖案內容；對應關係請參閱 [狀態圖示](#status-icons)（例如 `mic.png` 是「音訊 - 開啟」）。

## Flashback [#flashback]

安裝 Flashback 時會出現這個分頁。Flashback 自己的語音設定只有在安裝 Simple Voice Chat 時才會出現在它的選單中，所以真正控制 SocketSVC 的是這裡的設定。

| 設定 | 範圍 | 預設 | 說明 |
| --- | --- | --- | --- |
| 在 Flashback 中錄製語音聊天 | 開啟／關閉 | 開啟 | 將附近的語音聊天錄進 Flashback 錄影，回放時就聽得到 |
| 包含我自己的聲音 | 開啟／關閉 | 開啟 | 同時錄下你自己傳出的麥克風聲音 |
| 聽力範圍 | 8–256 格 | 48 | 錄製與播放時使用的可聽距離 |
| 淡出起始距離 | 0–255 格 | 0 | 播放時，在這個距離內為最大音量，到聽力範圍時變為無聲；必須小於聽力範圍 |

伺服器的實際數值不會傳送到用戶端，所以請把這些設定調成和伺服器一致。下方的「已錄製的玩家」會列出目前回放中聽到的語音來源，每個都有自己的 0–200% 音量，和即時的玩家音量分開儲存。

錄製功能本身只內建在部分 Minecraft 版本的 Fabric/Quilt JAR 檔中，請參閱 [相容性](/client/compatibility#flashback-replay-mod)。

## 設定檔 [#config-file]

所有用戶端設定都儲存在遊戲目錄中的 `config/socketsvc.json`，關閉設定畫面時寫入。以下選項沒有介面，只能直接編輯檔案來變更：

| 欄位 | 預設 | 說明 |
| --- | --- | --- |
| `lanVoiceHosting` | `true` | 將世界開放給區域網路（原版或 Essential Mod 的世界主持功能）時，是否同時啟動內建的語音伺服器。請參閱 [區域網路與單人遊戲](/client/lan) |