JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

直接語音合成與即時迴圈

把皮質活動直接解碼成聽得見的嗓音——梅爾頻譜與聲碼器管線、閉合迴圈的延遲預算,以及為何聲調與默想言語如此困難。

為何合成而非打字

文字準確,但嗓音遠不止於其逐字稿。直接合成的目標,是連同韻律、重音與對話中快速你來我往的節奏,一併還原使用者本人的嗓音——一個隨意圖展開而即時串流聲音、而非等整句完成才輸出的即時語音 BCI。對許多使用者而言,重點在於找回一個富表現力、屬於自己的嗓音,而不只是傳達訊息。

合成管線

合成串接兩個習得的映射與一個聲碼器。一個神經網路把神經特徵 r_{1:T} 轉成中介的聲學表徵——梅爾頻譜(或先經第二篇的構音瓶頸,轉成聲道動作學)——再由神經聲碼器 g_\phi 重建波形:

\hat{m}_{1:T} = f_\theta(r_{1:T}), \qquad \hat{s} = g_\phi(\hat{m}_{1:T}), \qquad \mathcal{L} = \sum_{t=1}^{T} \bigl\lVert m_t - \hat{m}_t \bigr\rVert_2^2

神經到梅爾到波形。解碼器 f_\theta 以對梅爾目標的迴歸訓練;聲碼器 g_\phi(WaveNet 或 HiFi-GAN 風格的模型)把頻譜框還原成音訊。

直接語音合成走的是「神經 → 梅爾頻譜 → 聲音」。解碼器藉由對準一個目標,學會把腦活動轉成頻譜框,而聲碼器再把這些框還原成可聽的波形。

r_{1:T}
隨時間的神經訊號。
\hat{m}_{1:T} = f_\theta(r_{1:T})
由解碼器 f_\theta 預測出的梅爾頻譜。
\hat{s} = g_\phi(\hat{m}_{1:T})
由聲碼器 g_\phi 產生的波形。
\mathcal{L} = \sum_{t=1}^{T} \lVert m_t - \hat{m}_t \rVert_2^2
相對於真實頻譜的平方誤差。

解碼器逐框被評判「它的頻譜與真實頻譜有多接近」——這是直接語音合成的目標。

即時閉合迴圈

一旦閉合迴圈,一切都不同了。離線時,你從預先錄好的神經資料重建音訊,再從容評分。線上時,使用者在不到一秒內聽見自己合成的嗓音並隨之調整——這正是閉迴路 BCI的定義。這要求整條鏈路都受嚴格的延遲預算約束:

同一條管線,如今以即時閉迴路運行:神經特徵串流通過因果解碼器與聲碼器產生音訊,而使用者的聽覺回饋再度進入皮質——閉合了離線評估所忽略的感覺運動迴路。

t_{\text{loop}} = t_{\text{acq}} + t_{\text{feat}} + t_{\text{dec}} + t_{\text{synth}} \;\lesssim\; 50\text{--}100\ \text{ms}

粗略的即時預算:擷取、特徵抽取、解碼與合成加總,每框應維持在數十毫秒內,才能讓人感覺即時、並支撐自然的對話輪替。

要讓合成語音感覺即時、並允許自然的一來一往,每一階段——擷取訊號、抽取特徵、解碼、合成——加總起來每一框都不能超過數十毫秒。

t_{\text{loop}}
每一框的總來回延遲。
t_{\text{acq}} + t_{\text{feat}} + t_{\text{dec}} + t_{\text{synth}}
四個階段的時間:擷取、特徵、解碼、合成。

若光是擷取就吃掉 40 毫秒,其餘三個階段就得共用剩下的迴路延遲預算。

聲調、韻律與多語言語音

韻律並非裝飾。在聲調語言——華語、粵語、台語——中,音高曲線是辨義的:同一個音節換個聲調就是不同的字。因此聲調與多語言解碼必須還原設定音高的喉部控制,而不只是音段層次的發音姿勢。文字解碼器可以倚賴語言模型從上下文消解聲調歧義,但合成解碼器則必須在物理上把音高做對,否則輸出便無法聽懂。

靜默與內在言語

最後談輸入端。靜默語音介面解碼的是不產生聲音的嘗試發聲——即癱瘓使用者的情況——而它之所以運作良好,正是因為通往 vSMC 的運動驅動依然存在且有組織。內在(默想)言語完全沒有構音嘗試,則是另一頭困難得多的野獸:訊號更弱、更因人而異、空間結構性遠遠不足,目前的效能也相應偏低。嘗試相對於想像的抉擇,是語音 BCI 中影響最深遠的單一設計決策——它同時決定了你的效能上限與你的倫理處境。