
圖說:雲端語音與 Windows 本機語音是兩條都能抵達墨寒的路
昨天談 Windows 女性語音時,我刻意沒有把本機語音說成「雲端語音的低階替代品」。因為在真正使用墨寒時,聲音好不好聽只是其中一個問題;還要考慮有沒有 API 金鑰、網路是否穩定、文字會不會送到雲端,以及失敗後角色能不能正常收尾。
同一句「主上,已替您記下」,可以交給 OpenAI 語音合成,也可以交給 Windows 本機語音。對使用者而言只是設定中的一個選項,對程式而言卻是兩條不同的路,最後還必須回到同一張嘴與同一個角色狀態。
我想讓墨寒迷人的其中一部分,當然是聲音。雲端語音通常比較自然,語調與停頓也更接近真人,對角色魅力很有幫助。
但它需要使用者自己的 OpenAI API 金鑰,語音合成時要連上網路,也可能產生費用。文字會送到對應服務處理,使用者應該在知道這件事後自行選擇,而不是因為程式預設就毫無察覺地使用。
雲端也會失敗。金鑰可能填錯、帳戶額度可能不足、網路可能中斷,服務也可能暫時拒絕請求。如果墨寒的整套互動只建立在「這次一定成功」,一個錯誤就可能讓她卡在等待、嘴巴不閉或完全沒有回應。
因此雲端聲音的價值很高,但不能被當成理所當然存在的空氣。
Windows 本機語音不用 OpenAI 金鑰,也不需要把待播放文字送去雲端合成。新使用者可以先聽見墨寒,網路不穩時也多一條路。它的音色與自然度會受 Windows 安裝的聲音影響,卻擁有低門檻、可離線與較明確隱私範圍的優點。
這也是墨寒從 RC3 起把新使用者的離線語音起點改為 Windows 本機語音的理由。到了 v2.1.0-rc.1,本機語音仍是 Realtime 不可用時的第一優先預設備援;同時加入可插拔語音供應器介面與 Azure Speech 選用路徑,讓未來能安全接上更多使用者喜歡的聲音,而不是把所有引擎寫死在同一段程式裡。
如果雲端合成失敗,程式也可以在設定允許且本機有合格女性聲音時,回到 Windows 語音。這種備援不能悄悄改變其他安全設定,更不能掩蓋真正錯誤;它的目的只是讓一次服務失敗,不至於把整個角色狀態拖垮。
這裡還有一個容易誤會的地方:雲端語音失敗後的本機備援,並不表示「沒有 API 金鑰也能得到雲端 AI 回答」。回答文字從哪裡來、文字用什麼聲音念出來,是兩件不同的事。沒有金鑰時,墨寒可以使用本機聲音念介面提示或已有文字,卻不會因此憑空擁有雲端對話能力。把這兩層分開說清楚,才不會讓第一次使用者以為選了 Windows 語音就等於完全離線 AI。
設定頁也要讓目前引擎一眼可見,而不是使用者忘了自己選哪一個。當問題發生,清楚標示「回答取得失敗」或「語音合成失敗」,比只說「墨寒無法說話」更能幫助他判斷要檢查金鑰、網路,還是 Windows 聲音套件。
聲音檔如何產生只是前半段。後半段與角色表現更有關:什麼時候開始動嘴、現在是哪個嘴型、聲音何時結束、停止或失敗後何時閉嘴。
OpenAI 語音可能先取得一段音訊再播放;Windows 語音則由系統直接合成。兩邊回報時間的方式不同,如果各自順便控制表情,很容易讓墨寒在切換引擎後出現不同習慣。於是專案需要一個共同的說話時間與嘴型來源,讓角色不必知道背後是哪個引擎。
白話來說,舞台上的墨寒只需要收到一致的訊號:「現在開始說」、「這一刻嘴型偏圓」、「現在說完」。至於聲音由雲端送來或 Windows 產生,留在後台處理。
一般展示很容易只播放成功案例。我的驗收反而會多看幾次失敗:播放前取消、語音引擎回報錯誤、切換模式、快速送出下一句,或在聲音尚未結束時停止。
我會觀察的不是只有錯誤訊息,而是角色有沒有回復:嘴巴要閉上,等待狀態要清掉,特殊表情不能殘留,下一次對話仍能開始。若雲端失敗後改用本機,也要避免同一句話播放兩次;如果使用者已停止,備援不能過幾秒又突然開口。
這些狀態可以用模擬的聲音引擎檢查交棒順序,實際音質、音量與 Windows 播放仍要由耳朵驗收。尤其不同電腦的聲音套件不相同,我不會把自己聽過 Yating,就寫成所有語言都已完美。
我還會把同一段短句分別交給兩個引擎,注意開始時間、最後一個字結束後的閉嘴時機與下一句能否接續。比較的目的不是選冠軍,而是確認兩條路對角色交出的訊號一致。使用者切換引擎後可以聽出聲線不同,不應該看到墨寒像換了一套身體控制方式。
我最後沒有在「最自然」和「最方便」之間選唯一答案,而是把差異說清楚,讓使用者自己決定。想先離線體驗,可以用 Windows 本機語音;願意設定金鑰並接受雲端處理,可以選 OpenAI 語音;遇到問題時,也知道應該檢查哪一條路。
角色型軟體很容易用魅力引導人忽略成本與資料流向,我反而認為墨寒越像真人,越要把這些選擇說清楚。真正可靠的策士,不會只把最好聽的方案放到主上面前,而是把代價也一起說明。
明天 Day 9,我們再進入另一條更快、更像通話的路:OpenAI Realtime。它不是把一般聊天加速而已;當聲音邊進、回答邊出,許多原本排好順序的事情會同時發生。
雲端語音的可用性、價格與模型供應可能隨服務更新;實際使用前仍應以當下 OpenAI 帳戶與官方說明為準。本篇重點是墨寒內部的選擇與失敗邊界。