<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>WebRTC on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/webrtc/</link>
        <description>Recent content in WebRTC on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Thu, 11 Jun 2026 08:22:48 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/webrtc/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>OpenTalking 是什麼？一個把 AI 數字人對話跑起來的開源框架</title>
        <link>https://knightli.com/zh-tw/2026/06/11/opentalking-realtime-digital-human-framework/</link>
        <pubDate>Thu, 11 Jun 2026 08:22:48 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/11/opentalking-realtime-digital-human-framework/</guid>
        <description>&lt;p&gt;OpenTalking 是 datascale-ai 開源的即時數字人對話編排框架。它要解決的不是「給一張圖配個口型」這麼單點的問題，而是把一個數字人對話產品裡常見的鏈路串起來：前端互動、會話狀態、LLM 回覆、TTS 和音色選擇、STT、字幕事件、打斷控制、WebRTC 音影片播放，以及本地或遠端數字人合成後端。&lt;/p&gt;
&lt;p&gt;所以看 OpenTalking 時，最好不要只把它理解成某個數字人模型的啟動腳本。它更像一條數字人產線的工程骨架：模型可以換，語音服務可以換，推理後端可以本地也可以遠端，前端則負責把人物、音色、模型連線狀態和即時對話體驗統一起來。&lt;/p&gt;
&lt;h2 id=&#34;它適合做什麼&#34;&gt;它適合做什麼
&lt;/h2&gt;&lt;p&gt;OpenTalking 適合三類需求。&lt;/p&gt;
&lt;p&gt;第一類是快速驗證數字人對話產品。專案提供 &lt;code&gt;mock&lt;/code&gt; 模式，不需要先下載模型權重，也不需要部署影片推理後端，就能跑通 API、LLM、TTS、STT、WebRTC 和瀏覽器播放鏈路。數字人畫面使用靜態幀佔位，但對話、字幕、串流 TTS 和傳輸鏈路都可以先驗證。&lt;/p&gt;
&lt;p&gt;第二類是消費級顯卡上的單機即時渲染。專案支援透過本地後端接入 &lt;code&gt;quicktalk&lt;/code&gt;、&lt;code&gt;wav2lip&lt;/code&gt;、&lt;code&gt;musetalk&lt;/code&gt; 等模型，適合在 3090 / 4090 這類機器上做真實影片渲染、口型同步和自訂形象驗證。&lt;/p&gt;
&lt;p&gt;第三類是高品質或私有化部署。對畫質、多卡、遠端 GPU/NPU、 production 隔離有要求時，可以透過 OmniRT 接入 &lt;code&gt;flashtalk&lt;/code&gt;、&lt;code&gt;flashhead&lt;/code&gt; 等高品質模型，把編排層和推理層拆開部署。&lt;/p&gt;
&lt;h2 id=&#34;webui-的價值&#34;&gt;WebUI 的價值
&lt;/h2&gt;&lt;p&gt;OpenTalking 提供 Web 服務介面，用來管理數字人對話鏈路。你可以在介面裡選擇或新建數字人物，配置音色、LLM、TTS、STT 和數字人驅動模型，查看模型連線狀態，並在同一頁面裡驗證即時對話、字幕和音影片播放。&lt;/p&gt;
&lt;p&gt;這件事在工程上很重要。很多數字人 demo 看起來只是「模型能不能跑」，但真正做成產品時，還會遇到這些問題：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人物資產怎麼管理；&lt;/li&gt;
&lt;li&gt;音色和 TTS provider 怎麼切換；&lt;/li&gt;
&lt;li&gt;LLM、STT、TTS 的 key 和 base URL 怎麼配置；&lt;/li&gt;
&lt;li&gt;模型後端是否在線；&lt;/li&gt;
&lt;li&gt;首幀延遲、打斷、字幕和音畫同步怎麼觀察；&lt;/li&gt;
&lt;li&gt;普通使用者如何在瀏覽器裡完成測試，而不是只讓工程師看日誌。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenTalking 的 WebUI 把這些入口放到一起，降低了從模型 demo 走向產品原型的摩擦。&lt;/p&gt;
&lt;h2 id=&#34;快速開始路線&#34;&gt;快速開始路線
&lt;/h2&gt;&lt;p&gt;第一次接觸專案，建議先用 Mock 模式跑通完整鏈路。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;DIGITAL_HUMAN_HOME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/opt/digital_human
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$DIGITAL_HUMAN_HOME&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$DIGITAL_HUMAN_HOME&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/datascale-ai/opentalking.git &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; opentalking
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;UV_DEFAULT_INDEX&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://pypi.tuna.tsinghua.edu.cn/simple
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv sync --extra dev --python 3.11
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;環境要求包括 Python 3.10+（推薦 3.11）、Node.js 18+ 和 FFmpeg。&lt;code&gt;.env&lt;/code&gt; 裡至少要配置 LLM / TTS 相關項；如果使用 &lt;code&gt;edge&lt;/code&gt; TTS，則不需要 key。&lt;/p&gt;
&lt;p&gt;Mock 模式啟動：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$DIGITAL_HUMAN_HOME&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/opentalking&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/start_unified.sh --mock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;預設前端地址是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;http://localhost:5173
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果要改連接埠，可以指定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/start_unified.sh --mock --api-port &lt;span class=&#34;m&#34;&gt;8210&lt;/span&gt; --web-port &lt;span class=&#34;m&#34;&gt;5280&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這一步的目標不是追求畫面效果，而是確認瀏覽器、API、LLM、TTS、STT、字幕事件和 WebRTC 傳輸都能連起來。鏈路打通後，再決定是否下載模型權重和部署推理後端。&lt;/p&gt;
&lt;h2 id=&#34;常用啟動參數&#34;&gt;常用啟動參數
&lt;/h2&gt;&lt;p&gt;專案推薦用 &lt;code&gt;scripts/start_unified.sh&lt;/code&gt; 作為統一入口。常用參數可以按用途理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--mock&lt;/code&gt;：使用內建 Mock，不需要模型權重或影片推理後端；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--backend &amp;lt;mock|local|omnirt|direct_ws&amp;gt;&lt;/code&gt;：指定推理後端；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--model &amp;lt;name&amp;gt;&lt;/code&gt;：指定模型，例如 &lt;code&gt;quicktalk&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--omnirt &amp;lt;url&amp;gt;&lt;/code&gt;：連接 OmniRT 推理服務；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--api-port &amp;lt;port&amp;gt;&lt;/code&gt;：指定 OpenTalking 後端連接埠；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--web-port &amp;lt;port&amp;gt;&lt;/code&gt;：指定 WebUI 連接埠；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--host &amp;lt;host&amp;gt;&lt;/code&gt;：指定 WebUI 監聽地址；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--env &amp;lt;file&amp;gt;&lt;/code&gt;：指定 env 檔案位置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如，本地 QuickTalk 路線：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/start_unified.sh --backend &lt;span class=&#34;nb&#34;&gt;local&lt;/span&gt; --model quicktalk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;遠端 OmniRT 路線：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/start_unified.sh &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --backend omnirt &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --model flashtalk &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --api-port &lt;span class=&#34;m&#34;&gt;8210&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --web-port &lt;span class=&#34;m&#34;&gt;5280&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --omnirt http://&amp;lt;gpu-server&amp;gt;:9000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;四條部署路線怎麼選&#34;&gt;四條部署路線怎麼選
&lt;/h2&gt;&lt;p&gt;OpenTalking 的 README 把部署路線拆得比較清楚。更實用的理解方式是：先問自己要不要真實影片渲染，再問推理要不要和 Web 服務放在同一台機器上。&lt;/p&gt;
&lt;p&gt;如果只是驗證鏈路，用 &lt;code&gt;mock&lt;/code&gt;。它不需要 GPU，不需要模型權重，適合第一天把系統跑起來。&lt;/p&gt;
&lt;p&gt;如果有消費級顯卡，希望在單機上做真實數字人即時渲染，可以從 &lt;code&gt;quicktalk&lt;/code&gt; 開始。專案給出的參考是 3090 / 4090 級別機器，適合驗證自訂形象和即時影片效果。&lt;/p&gt;
&lt;p&gt;如果只需要較輕的口型同步和自訂形象驗證，可以看 &lt;code&gt;wav2lip&lt;/code&gt;。它的部署壓力低一些，更適合作為輕量路線。&lt;/p&gt;
&lt;p&gt;如果要走全本地私有化音訊鏈路，可以組合 &lt;code&gt;sensevoice&lt;/code&gt;、&lt;code&gt;local_cosyvoice&lt;/code&gt; 和 &lt;code&gt;quicktalk&lt;/code&gt;，把 STT 和 TTS 也切到本地模型。這條路線更重，但適合不希望依賴雲端語音服務的場景。&lt;/p&gt;
&lt;p&gt;如果追求高品質畫面、多卡或 production 隔離，就把推理層放到遠端，透過 OmniRT 接入 &lt;code&gt;flashtalk&lt;/code&gt; 或 &lt;code&gt;flashhead&lt;/code&gt;。這時 OpenTalking 更像編排層，負責會話、前端、服務配置和推理 endpoint 呼叫。&lt;/p&gt;
&lt;h2 id=&#34;模型支援和資源預期&#34;&gt;模型支援和資源預期
&lt;/h2&gt;&lt;p&gt;專案目前支援的模型路線大致可以這樣看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mock&lt;/code&gt;：靜態幀佔位，不需要 GPU；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;quicktalk&lt;/code&gt;：template video + audio，本地 CUDA GPU，推薦 3090 / 4090；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wav2lip&lt;/code&gt;：參考圖或 frames + audio，適合 &lt;code&gt;local&lt;/code&gt; 或 &lt;code&gt;omnirt&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;musetalk&lt;/code&gt;：full frames + audio，顯存需求更高；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;soulx-flashtalk-14b&lt;/code&gt;：portrait + audio，適合透過 OmniRT 部署在多卡 GPU / NPU 上；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;soulx-flashhead-1.3b&lt;/code&gt;：portrait + audio，同樣更偏高品質遠端推理。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;README 裡還給了一個消費級顯卡參考：&lt;code&gt;quicktalk&lt;/code&gt; 在 RTX 3090 上使用 template video + audio，輸出 720x900 / 25fps，顯存佔用約 3.8 GiB，生成吞吐約 35 fps。這個資料適合作為部署前的粗略預期，但實際體驗還會受首幀構建、快取、解析度、音訊模型和機器環境影響。&lt;/p&gt;
&lt;h2 id=&#34;配置上要注意什麼&#34;&gt;配置上要注意什麼
&lt;/h2&gt;&lt;p&gt;OpenTalking 的配置項比較多，尤其是 LLM、STT、TTS 不再共用一個 fallback key。即使你用的是同一把 DashScope key，也要分別寫到對應的環境變數裡，例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_LLM_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;https://dashscope.aliyuncs.com/compatible-mode/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_LLM_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-your-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_LLM_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;qwen-flash
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_STT_DEFAULT_PROVIDER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;dashscope
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_STT_DASHSCOPE_MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;paraformer-realtime-v2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_STT_DASHSCOPE_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-your-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_TTS_DASHSCOPE_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;sk-your-key
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_TTS_DEFAULT_PROVIDER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;edge
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OPENTALKING_TTS_EDGE_VOICE&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;zh-CN-XiaoxiaoNeural
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這套配置方式看起來繁瑣，但好處是邊界清楚：LLM、語音識別、語音合成和音色復刻可以分別替換 provider，不必把所有能力綁死在一個服務上。&lt;/p&gt;
&lt;h2 id=&#34;工程結構&#34;&gt;工程結構
&lt;/h2&gt;&lt;p&gt;OpenTalking 的程式碼結構也體現了它的定位。核心編排層在 &lt;code&gt;opentalking/&lt;/code&gt; 裡，包含協議、provider、模型適配、avatar、voice、media、pipeline 和 runtime；&lt;code&gt;apps/&lt;/code&gt; 裡有 FastAPI 服務、統一啟動模式、React 前端和 CLI；&lt;code&gt;configs/&lt;/code&gt; 放 YAML 配置；&lt;code&gt;docker/&lt;/code&gt; 和 &lt;code&gt;docker-compose.yml&lt;/code&gt; 用於容器化部署；&lt;code&gt;scripts/&lt;/code&gt; 提供統一啟動和 quickstart 工具；&lt;code&gt;docs/&lt;/code&gt; 則補充模型、部署和配置說明。&lt;/p&gt;
&lt;p&gt;這種結構說明專案不是單模型倉庫，而是在做「數字人產品鏈路」的拆分：前端、後端、模型推理、語音、資產和執行時各有邊界。&lt;/p&gt;
&lt;h2 id=&#34;適合誰關注&#34;&gt;適合誰關注
&lt;/h2&gt;&lt;p&gt;OpenTalking 適合這些人關注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想做即時數字人對話產品原型；&lt;/li&gt;
&lt;li&gt;需要把 LLM、TTS、STT、WebRTC 和數字人模型串成完整鏈路；&lt;/li&gt;
&lt;li&gt;想先用 Mock 驗證系統，再逐步替換真實模型；&lt;/li&gt;
&lt;li&gt;有消費級 GPU，想本地跑 QuickTalk / Wav2Lip / MuseTalk；&lt;/li&gt;
&lt;li&gt;需要私有化或遠端多卡部署，把推理和 Web 編排拆開；&lt;/li&gt;
&lt;li&gt;希望用 WebUI 管理數字人物、音色、模型和對話驗證。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它不太適合只想「一鍵生成一段數字人影片」的使用者。OpenTalking 更偏工程框架，真正用好它需要理解模型權重、音訊服務、推理後端、連接埠、環境變數和瀏覽器即時傳輸。&lt;/p&gt;
&lt;h2 id=&#34;結論&#34;&gt;結論
&lt;/h2&gt;&lt;p&gt;OpenTalking 的價值在於把即時數字人對話拆成一套可以逐步替換、逐步部署的工程鏈路。你可以從 &lt;code&gt;mock&lt;/code&gt; 開始，只驗證 API、LLM、TTS、STT 和 WebRTC；也可以換成本地 &lt;code&gt;quicktalk&lt;/code&gt; 做真實影片渲染；更高品質或 production 場景下，再透過 OmniRT 把推理放到遠端 GPU / NPU。&lt;/p&gt;
&lt;p&gt;如果你正在做數字人應用、直播互動、虛擬主播、陪伴產品或企業內私有化數字人驗證，OpenTalking 值得研究。它的門檻不低，但它處理的是數字人產品從 demo 到可部署系統之間最容易散掉的那一段工程鏈路。&lt;/p&gt;
&lt;p&gt;參考來源：&lt;a class=&#34;link&#34; href=&#34;https://github.com/datascale-ai/opentalking&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;datascale-ai/opentalking GitHub 倉庫&lt;/a&gt;、&lt;a class=&#34;link&#34; href=&#34;https://datascale-ai.github.io/opentalking/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OpenTalking 文件站&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
