實際影片長度:8:17.580。原文、繁中、雙語可點擊句子跳轉影片。
0:00.760–0:07.530
zh大家好,今天我們給大家講解這個Voice Agent的一個總體架構啊,
0:07.530–0:09.720
zh以及它的這個完整流程。
0:10.500–0:13.682
zh我們首先了解一下什麼是Voice Agent。
0:13.682–0:15.128
zh你看這個Voice,
0:15.128–0:17.009
zhVoice就是語音的意思,
0:17.009–0:18.166
zh就是語音智能體。
0:18.166–0:19.612
zh也就是說不僅有語音,
0:19.612–0:20.480
zh還有智能體。
0:22.020–0:24.667
zh那最簡單的比如說你用豆包的語音功能,
0:24.667–0:26.578
zh或者用LGBT的語音功能,
0:26.578–0:27.460
zh你跟它對話。
0:27.460–0:29.960
zh那這個就是最基本的一個語音智能體。
0:30.760–0:33.026
zh它裡面有哪些關鍵技術呢?
0:33.026–0:34.537
zh有WebRTC,
0:34.537–0:35.481
zh有STT,
0:35.481–0:36.426
zh有TTS,
0:36.426–0:37.370
zh有LLM,
0:37.370–0:39.070
zh這幾個關鍵的技術。
0:39.070–0:40.391
zh這幾個名詞呢,
0:40.391–0:42.280
zh希望大家都去查一下。
0:42.800–0:45.200
zh那首先,WebRTC解決什麼?
0:45.200–0:47.120
zhWebRTC解決就是說,
0:47.120–0:48.240
zh音視頻的問題。
0:48.240–0:50.480
zh你比如說你的聲音怎麼採集的,
0:50.480–0:51.920
zh你聲音怎麼播放的,
0:51.920–0:53.200
zh聲音怎麼傳輸的,
0:53.200–0:55.600
zh這個是由WebRTC來解決的。
0:56.120–0:58.420
zh那麼STT是什麼?STT就是
0:58.920–1:00.200
zh語音轉文字。
1:00.460–1:01.240
zh也就是說
1:01.740–1:07.120
zh你語音採集了以後,需要把它轉成文字,這個文字再交給大語音模型。
1:07.640–1:08.660
zh也就是LM
1:09.160–1:10.200
zh決定說什麼?
1:10.440–1:15.560
zh也就是說,LM是把文字拿到以後,它會加工,會思考,會返回。
1:15.820–1:16.840
zh返回完以後,
1:17.100–1:18.120
zh這不有文字了嗎?
1:18.380–1:19.400
zh文字在
1:19.660–1:21.460
zh第一個,它首先會發到
1:22.220–1:27.100
zh這個端上,也就是比如,一般我們叫前端,比如網頁裡面,或者手機裡面。
1:28.120–1:29.100
zh然後不經意發,
1:29.100–1:30.220
zh有可能要播語音,
1:30.220–1:32.740
zh這個播語音就要把這個文字再轉成語音,
1:32.740–1:34.000
zh這個過程叫TTS。
1:35.020–1:37.580
zh所以說,這裡面有幾個關鍵概念,叫Web RC
1:37.840–1:38.620
enSTD
1:38.860–1:39.640
enTTS
1:39.900–1:40.660
enLM
1:41.420–1:41.920
zh對吧
1:42.200–1:43.980
zh好,我們來看一下它總體架構
1:44.760–1:45.260
zh首先是
1:46.040–1:48.340
zh前端,前端呢,它有一個
1:48.860–1:49.880
zh比如說可能是瀏覽器
1:49.880–1:51.680
zh有可能是App
1:51.920–1:53.200
zh甚至是一個硬件啊,對吧
1:53.460–1:55.000
zh好,那麼麥克風採集
1:55.520–1:56.280
zh那音頻
1:56.800–1:59.860
zh同時音頻可能會播放,然後屏幕上可能有文字
2:00.120–2:01.140
zh大家用這個
2:01.400–2:03.960
zh用豆包的時候,你在跟它對話的時候,它不經常有這個
2:05.240–2:07.800
zh會有文字顯示嗎?另外一個它會播放語音
2:08.820–2:10.100
zh那麼音頻會上行
2:10.360–2:11.120
zh到後端
2:11.640–2:12.160
zh後端呢
2:12.660–2:15.480
zh它這裡面呢,它會比如說,它一般是Web RC
2:16.500–2:17.520
zh處理啊,處理完
2:18.040–2:18.800
zh以後呢,它會
2:19.060–2:20.840
zh把這個聲音提取出來
2:21.100–2:22.640
zh然後把這個聲音呢,丟給
2:22.900–2:23.660
enSTT
2:23.920–2:24.680
zhSTT呢
2:24.940–2:25.460
zh呃
2:25.960–2:28.520
zh有幾種,一種是你本地的這種服務,對吧
2:28.780–2:30.060
zh你可能從歐拉馬來接入
2:30.320–2:32.360
zh第二種呢,有可能比如說你是阿里的
2:32.620–2:33.120
zh對吧
2:33.140–2:34.420
zh也有可能是騰訊的
2:34.680–2:36.720
zh也有可能是火山引擎的
2:36.980–2:38.000
zh也可能是MiniMax
2:38.260–2:38.760
zh是吧
2:39.540–2:40.560
enSTT,MiniMax
2:40.820–2:41.320
zh目前
2:41.840–2:42.360
zh不一定有
2:42.600–2:43.880
zh然後你可能Deepgram
2:44.140–2:45.420
zh有可能是ElevenLab
2:45.680–2:47.220
zh這裡面就有中英文
2:47.480–2:49.780
zh這裡面我們主要以中英文給大家解釋就行了
2:50.300–2:52.600
zh那麼由它轉動文字又返回給
2:52.860–2:54.660
zh那麼由它轉動文字又返回給這個後端,
2:54.660–2:56.141
zh後端這塊它又會調這個LLM,
2:56.141–2:57.200
zh也就是調的大語言模型
2:57.460–2:59.760
zh這裡面選擇就多了,你比如說你可以用Deepseek
3:00.020–3:01.300
zh可以用這個
3:02.060–3:04.120
zhMiniMax,可以用這個Kimi
3:04.380–3:06.940
zh可以用這個OpenAI,對吧
3:07.440–3:08.460
zh你可以用
3:08.720–3:10.520
zh這個很多很多模型啊,都可以用
3:11.020–3:11.540
zh那
3:11.800–3:13.580
zh丟給大元模型,大元模型會
3:13.840–3:15.620
zh對你的話進行加工
3:15.880–3:17.160
zh加工完以後
3:17.420–3:18.960
zh他比如說你今天問了一個
3:19.220–3:21.000
zh舉個例子,什麼是人工智能對吧
3:21.260–3:22.280
zh他會肯定回答
3:23.060–3:24.580
zh一堆這個內容嘛,然後
3:25.100–3:25.860
zh他返回完
3:26.120–3:27.920
zh返回他以後,然後後端呢
3:28.680–3:29.180
zh又
3:29.200–3:29.960
zh緊接著
3:30.220–3:32.260
zh調這個TTS模型,這個TTS模型也有
3:32.520–3:34.580
zh比如火山引擎呢,阿里騰訊呢
3:34.840–3:37.660
zh對吧,Deepgram,ElevenLav,他都會把
3:38.160–3:39.180
zh文字再轉成語音
3:39.440–3:40.720
zh轉成語音呢,他會有一個
3:40.980–3:44.560
zh實時的流,這個實時流呢,再通過WebRTC技術再傳給前端
3:44.820–3:46.100
zh前端把聲音播放出來
3:46.620–3:48.660
zh同時文字部分呢,他也會到前端
3:49.180–3:49.940
zh那這時候呢
3:50.960–3:51.480
zh這時候呢
3:51.740–3:53.260
zh就完成了整個的
3:54.300–3:55.320
zh完成了整個的這個
3:55.580–3:56.600
zhvoice agent的一個流程
3:57.360–3:59.160
zh那麼為什麼我們又稱為agent呢
3:59.920–4:00.420
zh就是
4:00.940–4:02.220
zh不僅是voice,為什麼agent呢
4:02.220–4:05.300
zh原因就是因為這裡面有R,就是大語言模型的介入
4:05.540–4:06.320
zh它是一個智能的
4:07.080–4:08.360
zh所以說我們就要
4:08.880–4:09.900
envoice agent
4:10.160–4:11.440
zh你既然是agent,那麼
4:11.700–4:15.020
zh他可能也可以做RE,也就是檢索增加生成
4:15.280–4:15.780
zh比如說
4:16.040–4:17.060
zh我經常問的問題
4:17.320–4:18.600
zh那麼我們可以把這個問題
4:18.860–4:21.940
zh問的問題以及回答的過程把它傳到相量信息庫裡面
4:22.180–4:25.260
zh那你問題問多了以後,那麼以後他在
4:25.780–4:28.080
zh你再問他問題的,他就更懂你了,對吧
4:28.340–4:31.660
zh更懂你了,知道你以前問過,他會知道怎麼再去回答你
4:32.180–4:32.940
zh這個就是
4:33.460–4:36.020
zh接入這個大語言模型的好處
4:36.260–4:38.580
zh這個你還在這部分進行加強
4:38.820–4:39.600
zh就這部分加強
4:40.360–4:40.880
zh好
4:41.140–4:42.660
zh那下面這邊有解釋
4:43.440–4:45.740
zh好,我們看到總體的架構,我們再看一下這個
4:46.000–4:48.560
zh還有完整流程,那這個裡面當然就更詳細了
4:48.820–4:51.880
zh比如說瀏覽器這邊設計到麥克風採集
4:52.140–4:52.660
zh對吧
4:54.180–4:54.960
zh重採樣
4:55.220–4:55.720
zh分幷
4:56.240–4:58.020
zh這個技術名稱我們不需要長那麼細
4:58.280–4:58.800
zh暫時
4:59.300–5:00.580
zh然後二進制上行
5:00.840–5:01.600
zh對吧
5:01.860–5:02.620
zh然後
5:02.880–5:03.900
zh這邊還會分發
5:04.940–5:07.740
zh那麼這邊有VAD檢測,這個VAD是幹什麼
5:08.260–5:09.540
zh你跟這個
5:10.060–5:10.560
enAI
5:10.820–5:12.360
zh對話的時候你不經常可能會
5:12.620–5:13.900
zh打斷他嗎?比如說
5:14.140–5:15.420
zh他正在回答你某一個
5:15.680–5:17.480
zh某一段話的時候你突然間打斷他了
5:17.740–5:19.520
zh那如果是有打斷的話
5:19.780–5:20.300
zh對吧
5:20.540–5:21.320
zh有打斷的話
5:21.580–5:22.080
zh那麼
5:22.860–5:24.380
zh這時候會丟給LM
5:24.640–5:25.160
zh對吧
5:25.420–5:26.180
zh會切這個句子
5:26.440–5:27.460
zh然後又貼貼的再返回
5:27.460–5:28.220
zh對吧
5:28.480–5:30.020
zh如果不打斷的話
5:30.280–5:31.040
zh不打的話他就
5:31.560–5:32.840
zh他就整個就是
5:33.860–5:35.140
zh朝下去走
5:35.400–5:36.160
zh這個意思
5:36.680–5:37.440
zh整個朝下去走
5:37.700–5:38.460
zh直接從這
5:38.720–5:39.240
enTTS
5:39.740–5:40.240
zh這走
5:40.260–5:41.280
zh然後就返回
5:41.540–5:42.560
zh再返回到前端
5:43.340–5:44.100
zh然後進行播放
5:44.360–5:45.120
zh播放這個聲音
5:45.640–5:46.660
zh中間發生的過程就是
5:46.920–5:47.680
zhSTT code端
5:47.940–5:48.440
zh你要走
5:48.460–5:49.220
zhSTT的服務
5:49.480–5:49.980
zh對吧
5:49.980–5:50.500
zh你比如說
5:51.020–5:51.780
zh阿里的呀
5:52.040–5:52.640
zhDeepgram呀
5:52.800–5:53.300
zh之類的
5:53.320–5:53.820
zh那麼
5:54.600–5:55.620
zh這個如果是LLM的話
5:55.880–5:56.640
zh你可能接入OpenAI
5:57.160–5:58.027
zh也可能接入Deepseek
5:58.180–5:58.980
zh有可能接入Milimax
5:59.200–5:59.700
enKimi
5:59.720–6:00.220
zh都可以
6:00.480–6:00.980
zh好
6:01.000–6:01.500
zh那麼
6:01.500–6:02.280
zh那麼TTS這塊
6:02.540–6:03.560
zh通過SSE的流
6:03.820–6:04.320
zh來進行播放
6:04.580–6:05.600
zh那麼SSE什麼呢
6:05.860–6:07.900
zh這個是AI裡面的一個技術
6:08.160–6:09.700
zh就是一個流式的
6:10.220–6:10.980
zh返回的
6:11.240–6:11.740
zh一個
6:11.740–6:12.520
zh處理技術
6:13.020–6:14.300
zh就是文字的一個流式
6:14.560–6:15.840
zh同時還有音頻的
6:16.620–6:17.380
zh最後到
6:17.380–6:20.700
zh網頁這段它有音頻的一個流式
6:21.480–6:23.780
zh所以這個是更詳細的一個完整流程
6:24.040–6:25.820
zh這裡面涉及到好些技術
6:26.600–6:27.100
zh好技術
6:27.100–6:27.880
zh大家這些技術
6:28.140–6:28.900
zh我們會一步步拆解
6:29.160–6:29.660
zh給大家講的
6:30.180–6:30.680
zh那麼
6:30.700–6:32.220
zh我們對於一個
6:32.480–6:34.280
zh總體的架構以及完整流程
6:34.540–6:35.300
zh有所了解以後
6:35.820–6:36.580
zh你才能搞懂
6:36.840–6:38.620
zh我們後續要給大家講的
6:39.400–6:39.900
zh比如說
6:41.960–6:44.000
zh從Web端到Server端的整個的一個
6:44.780–6:46.820
zhVoice Agent的一個整個流程
6:46.820–6:48.100
zh那麼我們這個例子
6:48.360–6:49.120
zh寫的不是很大
6:49.380–6:50.660
zh但是通過這個例子
6:50.920–6:51.420
zh你
6:51.420–6:53.220
zh能對Voice Agent有一個
6:53.740–6:55.260
zh完整的流程的一個理解
6:55.520–6:56.040
zh並且
6:56.300–6:57.820
zh它是正式辦理能跑起來的一個項目
6:58.340–7:00.140
zh我們首先是把理論先搞清楚
7:00.900–7:01.660
zh這裡面
7:01.920–7:02.700
zh我們可以看到
7:02.940–7:03.980
zh這裡面我們涉及的各種服務
7:04.220–7:05.000
zh比如
7:05.260–7:05.760
enSTT
7:06.020–7:06.540
enIM
7:06.780–7:07.280
zh這些
7:07.300–7:09.100
zh大家都可以去採用不同的
7:09.600–7:10.380
enProvider
7:10.620–7:11.400
zh有著供應商的服務
7:11.660–7:12.680
zh不一定說是非要某一間的
7:12.940–7:13.440
zh對吧
7:13.960–7:14.460
en!
7:14.460–7:17.020
zh比如說如果說我們英文的我建議大家用Deepgram
7:17.280–7:18.040
enEleven Lab
7:18.300–7:20.600
zh如果說是中文的建議大家用
7:21.120–7:23.940
zh阿里的、騰訊的、火山引擎的,像這些
7:24.180–7:25.220
zh包括MiniMax,像這些
7:25.720–7:27.000
zh這樣的話是比較好的
7:27.260–7:27.780
zh因為
7:28.020–7:29.060
zh肯定是
7:30.080–7:30.840
zh各自的模型
7:31.100–7:34.180
zh它對中英文支持的出來的效果是不一樣的
7:34.940–7:37.240
zh當然同時它還支持方言的
7:37.500–7:38.520
zh比如說粵語
7:39.040–7:39.800
zh對吧
7:40.320–7:40.820
zh等等
7:40.820–7:42.100
zh像這些方言的四川話
7:42.620–7:43.120
zh普通話
7:43.900–7:45.440
zh像方言普通話都支持的
7:46.460–7:47.220
zh所以說這個
7:47.480–7:48.760
zh你要不同的去
7:49.020–7:49.520
zh另外還有一個
7:49.780–7:50.560
zhVAD打斷
7:50.800–7:51.580
zhVED打斷的
7:51.840–7:52.340
zh不同的
7:53.120–7:53.880
zh比如STT
7:54.140–7:54.640
zh就是
7:54.640–7:55.160
zh它叫
7:55.420–7:55.920
zh實際上叫
7:55.920–7:56.960
zhASR技術
7:57.460–7:58.480
zh不同的
7:59.520–8:00.280
zh廠商提供出來的
8:00.540–8:01.560
zh質量也是不一樣的
8:01.820–8:02.840
zh這個都去接
8:03.360–8:04.380
zh然後我們這裡面當然就接了
8:04.640–8:05.140
zh有阿里的
8:05.400–8:06.000
zh有Deepgram
8:06.000–8:06.500
zh這些
8:06.940–8:09.240
zh已經有兩個比較好用的給大家接進來了
8:09.500–8:10.520
zh告訴大家怎麼去接的
8:11.800–8:12.300
zh好
8:12.320–8:16.420
zh那麼關於它的這個總體的架構儀完整流程的我們就先講到這裡謝謝大家觀看
0:00.760–0:07.530
大家好,今天我們給大家講解這個Voice Agent的一個總體架構啊,
0:07.530–0:09.720
以及它的這個完整流程。
0:10.500–0:13.682
我們首先了解一下什麼是Voice Agent。
0:13.682–0:15.128
你看這個Voice,
0:15.128–0:17.009
Voice就是語音的意思,
0:17.009–0:18.166
就是語音智能體。
0:18.166–0:19.612
也就是說不僅有語音,
0:19.612–0:20.480
還有智能體。
0:22.020–0:24.667
那最簡單的比如說你用豆包的語音功能,
0:24.667–0:26.578
或者用LGBT的語音功能,
0:26.578–0:27.460
你跟它對話。
0:27.460–0:29.960
那這個就是最基本的一個語音智能體。
0:30.760–0:33.026
它裡面有哪些關鍵技術呢?
0:33.026–0:34.537
有WebRTC,
0:34.537–0:35.481
有STT,
0:35.481–0:36.426
有TTS,
0:36.426–0:37.370
有LLM,
0:37.370–0:39.070
這幾個關鍵的技術。
0:39.070–0:40.391
這幾個名詞呢,
0:40.391–0:42.280
希望大家都去查一下。
0:42.800–0:45.200
那首先,WebRTC解決什麼?
0:45.200–0:47.120
WebRTC解決就是說,
0:47.120–0:48.240
音視頻的問題。
0:48.240–0:50.480
你比如說你的聲音怎麼採集的,
0:50.480–0:51.920
你聲音怎麼播放的,
0:51.920–0:53.200
聲音怎麼傳輸的,
0:53.200–0:55.600
這個是由WebRTC來解決的。
0:56.120–0:58.420
那麼STT是什麼?STT就是
0:58.920–1:00.200
語音轉文字。
1:00.460–1:01.240
也就是說
1:01.740–1:07.120
你語音採集了以後,需要把它轉成文字,這個文字再交給大語音模型。
1:07.640–1:08.660
也就是LM
1:09.160–1:10.200
決定說什麼?
1:10.440–1:15.560
也就是說,LM是把文字拿到以後,它會加工,會思考,會返回。
1:15.820–1:16.840
返回完以後,
1:17.100–1:18.120
這不有文字了嗎?
1:18.380–1:19.400
文字在
1:19.660–1:21.460
第一個,它首先會發到
1:22.220–1:27.100
這個端上,也就是比如,一般我們叫前端,比如網頁裡面,或者手機裡面。
1:28.120–1:29.100
然後不經意發,
1:29.100–1:30.220
有可能要播語音,
1:30.220–1:32.740
這個播語音就要把這個文字再轉成語音,
1:32.740–1:34.000
這個過程叫TTS。
1:35.020–1:37.580
所以說,這裡面有幾個關鍵概念,叫Web RC
1:37.840–1:38.620
STD
1:38.860–1:39.640
TTS
1:39.900–1:40.660
LM
1:41.420–1:41.920
對吧
1:42.200–1:43.980
好,我們來看一下它總體架構
1:44.760–1:45.260
首先是
1:46.040–1:48.340
前端,前端呢,它有一個
1:48.860–1:49.880
比如說可能是瀏覽器
1:49.880–1:51.680
有可能是App
1:51.920–1:53.200
甚至是一個硬件啊,對吧
1:53.460–1:55.000
好,那麼麥克風採集
1:55.520–1:56.280
那音頻
1:56.800–1:59.860
同時音頻可能會播放,然後屏幕上可能有文字
2:00.120–2:01.140
大家用這個
2:01.400–2:03.960
用豆包的時候,你在跟它對話的時候,它不經常有這個
2:05.240–2:07.800
會有文字顯示嗎?另外一個它會播放語音
2:08.820–2:10.100
那麼音頻會上行
2:10.360–2:11.120
到後端
2:11.640–2:12.160
後端呢
2:12.660–2:15.480
它這裡面呢,它會比如說,它一般是Web RC
2:16.500–2:17.520
處理啊,處理完
2:18.040–2:18.800
以後呢,它會
2:19.060–2:20.840
把這個聲音提取出來
2:21.100–2:22.640
然後把這個聲音呢,丟給
2:22.900–2:23.660
STT
2:23.920–2:24.680
STT呢
2:24.940–2:25.460
呃
2:25.960–2:28.520
有幾種,一種是你本地的這種服務,對吧
2:28.780–2:30.060
你可能從歐拉馬來接入
2:30.320–2:32.360
第二種呢,有可能比如說你是阿里的
2:32.620–2:33.120
對吧
2:33.140–2:34.420
也有可能是騰訊的
2:34.680–2:36.720
也有可能是火山引擎的
2:36.980–2:38.000
也可能是MiniMax
2:38.260–2:38.760
是吧
2:39.540–2:40.560
STT,MiniMax
2:40.820–2:41.320
目前
2:41.840–2:42.360
不一定有
2:42.600–2:43.880
然後你可能Deepgram
2:44.140–2:45.420
有可能是ElevenLab
2:45.680–2:47.220
這裡面就有中英文
2:47.480–2:49.780
這裡面我們主要以中英文給大家解釋就行了
2:50.300–2:52.600
那麼由它轉動文字又返回給
2:52.860–2:54.660
那麼由它轉動文字又返回給這個後端,
2:54.660–2:56.141
後端這塊它又會調這個LLM,
2:56.141–2:57.200
也就是調的大語言模型
2:57.460–2:59.760
這裡面選擇就多了,你比如說你可以用Deepseek
3:00.020–3:01.300
可以用這個
3:02.060–3:04.120
MiniMax,可以用這個Kimi
3:04.380–3:06.940
可以用這個OpenAI,對吧
3:07.440–3:08.460
你可以用
3:08.720–3:10.520
這個很多很多模型啊,都可以用
3:11.020–3:11.540
那
3:11.800–3:13.580
丟給大元模型,大元模型會
3:13.840–3:15.620
對你的話進行加工
3:15.880–3:17.160
加工完以後
3:17.420–3:18.960
他比如說你今天問了一個
3:19.220–3:21.000
舉個例子,什麼是人工智能對吧
3:21.260–3:22.280
他會肯定回答
3:23.060–3:24.580
一堆這個內容嘛,然後
3:25.100–3:25.860
他返回完
3:26.120–3:27.920
返回他以後,然後後端呢
3:28.680–3:29.180
又
3:29.200–3:29.960
緊接著
3:30.220–3:32.260
調這個TTS模型,這個TTS模型也有
3:32.520–3:34.580
比如火山引擎呢,阿里騰訊呢
3:34.840–3:37.660
對吧,Deepgram,ElevenLav,他都會把
3:38.160–3:39.180
文字再轉成語音
3:39.440–3:40.720
轉成語音呢,他會有一個
3:40.980–3:44.560
實時的流,這個實時流呢,再通過WebRTC技術再傳給前端
3:44.820–3:46.100
前端把聲音播放出來
3:46.620–3:48.660
同時文字部分呢,他也會到前端
3:49.180–3:49.940
那這時候呢
3:50.960–3:51.480
這時候呢
3:51.740–3:53.260
就完成了整個的
3:54.300–3:55.320
完成了整個的這個
3:55.580–3:56.600
voice agent的一個流程
3:57.360–3:59.160
那麼為什麼我們又稱為agent呢
3:59.920–4:00.420
就是
4:00.940–4:02.220
不僅是voice,為什麼agent呢
4:02.220–4:05.300
原因就是因為這裡面有R,就是大語言模型的介入
4:05.540–4:06.320
它是一個智能的
4:07.080–4:08.360
所以說我們就要
4:08.880–4:09.900
voice agent
4:10.160–4:11.440
你既然是agent,那麼
4:11.700–4:15.020
他可能也可以做RE,也就是檢索增加生成
4:15.280–4:15.780
比如說
4:16.040–4:17.060
我經常問的問題
4:17.320–4:18.600
那麼我們可以把這個問題
4:18.860–4:21.940
問的問題以及回答的過程把它傳到相量信息庫裡面
4:22.180–4:25.260
那你問題問多了以後,那麼以後他在
4:25.780–4:28.080
你再問他問題的,他就更懂你了,對吧
4:28.340–4:31.660
更懂你了,知道你以前問過,他會知道怎麼再去回答你
4:32.180–4:32.940
這個就是
4:33.460–4:36.020
接入這個大語言模型的好處
4:36.260–4:38.580
這個你還在這部分進行加強
4:38.820–4:39.600
就這部分加強
4:40.360–4:40.880
好
4:41.140–4:42.660
那下面這邊有解釋
4:43.440–4:45.740
好,我們看到總體的架構,我們再看一下這個
4:46.000–4:48.560
還有完整流程,那這個裡面當然就更詳細了
4:48.820–4:51.880
比如說瀏覽器這邊設計到麥克風採集
4:52.140–4:52.660
對吧
4:54.180–4:54.960
重採樣
4:55.220–4:55.720
分幷
4:56.240–4:58.020
這個技術名稱我們不需要長那麼細
4:58.280–4:58.800
暫時
4:59.300–5:00.580
然後二進制上行
5:00.840–5:01.600
對吧
5:01.860–5:02.620
然後
5:02.880–5:03.900
這邊還會分發
5:04.940–5:07.740
那麼這邊有VAD檢測,這個VAD是幹什麼
5:08.260–5:09.540
你跟這個
5:10.060–5:10.560
AI
5:10.820–5:12.360
對話的時候你不經常可能會
5:12.620–5:13.900
打斷他嗎?比如說
5:14.140–5:15.420
他正在回答你某一個
5:15.680–5:17.480
某一段話的時候你突然間打斷他了
5:17.740–5:19.520
那如果是有打斷的話
5:19.780–5:20.300
對吧
5:20.540–5:21.320
有打斷的話
5:21.580–5:22.080
那麼
5:22.860–5:24.380
這時候會丟給LM
5:24.640–5:25.160
對吧
5:25.420–5:26.180
會切這個句子
5:26.440–5:27.460
然後又貼貼的再返回
5:27.460–5:28.220
對吧
5:28.480–5:30.020
如果不打斷的話
5:30.280–5:31.040
不打的話他就
5:31.560–5:32.840
他就整個就是
5:33.860–5:35.140
朝下去走
5:35.400–5:36.160
這個意思
5:36.680–5:37.440
整個朝下去走
5:37.700–5:38.460
直接從這
5:38.720–5:39.240
TTS
5:39.740–5:40.240
這走
5:40.260–5:41.280
然後就返回
5:41.540–5:42.560
再返回到前端
5:43.340–5:44.100
然後進行播放
5:44.360–5:45.120
播放這個聲音
5:45.640–5:46.660
中間發生的過程就是
5:46.920–5:47.680
STT code端
5:47.940–5:48.440
你要走
5:48.460–5:49.220
STT的服務
5:49.480–5:49.980
對吧
5:49.980–5:50.500
你比如說
5:51.020–5:51.780
阿里的呀
5:52.040–5:52.640
Deepgram呀
5:52.800–5:53.300
之類的
5:53.320–5:53.820
那麼
5:54.600–5:55.620
這個如果是LLM的話
5:55.880–5:56.640
你可能接入OpenAI
5:57.160–5:58.027
也可能接入Deepseek
5:58.180–5:58.980
有可能接入Milimax
5:59.200–5:59.700
Kimi
5:59.720–6:00.220
都可以
6:00.480–6:00.980
好
6:01.000–6:01.500
那麼
6:01.500–6:02.280
那麼TTS這塊
6:02.540–6:03.560
通過SSE的流
6:03.820–6:04.320
來進行播放
6:04.580–6:05.600
那麼SSE什麼呢
6:05.860–6:07.900
這個是AI裡面的一個技術
6:08.160–6:09.700
就是一個流式的
6:10.220–6:10.980
返回的
6:11.240–6:11.740
一個
6:11.740–6:12.520
處理技術
6:13.020–6:14.300
就是文字的一個流式
6:14.560–6:15.840
同時還有音頻的
6:16.620–6:17.380
最後到
6:17.380–6:20.700
網頁這段它有音頻的一個流式
6:21.480–6:23.780
所以這個是更詳細的一個完整流程
6:24.040–6:25.820
這裡面涉及到好些技術
6:26.600–6:27.100
好技術
6:27.100–6:27.880
大家這些技術
6:28.140–6:28.900
我們會一步步拆解
6:29.160–6:29.660
給大家講的
6:30.180–6:30.680
那麼
6:30.700–6:32.220
我們對於一個
6:32.480–6:34.280
總體的架構以及完整流程
6:34.540–6:35.300
有所了解以後
6:35.820–6:36.580
你才能搞懂
6:36.840–6:38.620
我們後續要給大家講的
6:39.400–6:39.900
比如說
6:41.960–6:44.000
從Web端到Server端的整個的一個
6:44.780–6:46.820
Voice Agent的一個整個流程
6:46.820–6:48.100
那麼我們這個例子
6:48.360–6:49.120
寫的不是很大
6:49.380–6:50.660
但是通過這個例子
6:50.920–6:51.420
你
6:51.420–6:53.220
能對Voice Agent有一個
6:53.740–6:55.260
完整的流程的一個理解
6:55.520–6:56.040
並且
6:56.300–6:57.820
它是正式辦理能跑起來的一個項目
6:58.340–7:00.140
我們首先是把理論先搞清楚
7:00.900–7:01.660
這裡面
7:01.920–7:02.700
我們可以看到
7:02.940–7:03.980
這裡面我們涉及的各種服務
7:04.220–7:05.000
比如
7:05.260–7:05.760
STT
7:06.020–7:06.540
IM
7:06.780–7:07.280
這些
7:07.300–7:09.100
大家都可以去採用不同的
7:09.600–7:10.380
Provider
7:10.620–7:11.400
有著供應商的服務
7:11.660–7:12.680
不一定說是非要某一間的
7:12.940–7:13.440
對吧
7:13.960–7:14.460
!
7:14.460–7:17.020
比如說如果說我們英文的我建議大家用Deepgram
7:17.280–7:18.040
Eleven Lab
7:18.300–7:20.600
如果說是中文的建議大家用
7:21.120–7:23.940
阿里的、騰訊的、火山引擎的,像這些
7:24.180–7:25.220
包括MiniMax,像這些
7:25.720–7:27.000
這樣的話是比較好的
7:27.260–7:27.780
因為
7:28.020–7:29.060
肯定是
7:30.080–7:30.840
各自的模型
7:31.100–7:34.180
它對中英文支持的出來的效果是不一樣的
7:34.940–7:37.240
當然同時它還支持方言的
7:37.500–7:38.520
比如說粵語
7:39.040–7:39.800
對吧
7:40.320–7:40.820
等等
7:40.820–7:42.100
像這些方言的四川話
7:42.620–7:43.120
普通話
7:43.900–7:45.440
像方言普通話都支持的
7:46.460–7:47.220
所以說這個
7:47.480–7:48.760
你要不同的去
7:49.020–7:49.520
另外還有一個
7:49.780–7:50.560
VAD打斷
7:50.800–7:51.580
VED打斷的
7:51.840–7:52.340
不同的
7:53.120–7:53.880
比如STT
7:54.140–7:54.640
就是
7:54.640–7:55.160
它叫
7:55.420–7:55.920
實際上叫
7:55.920–7:56.960
ASR技術
7:57.460–7:58.480
不同的
7:59.520–8:00.280
廠商提供出來的
8:00.540–8:01.560
質量也是不一樣的
8:01.820–8:02.840
這個都去接
8:03.360–8:04.380
然後我們這裡面當然就接了
8:04.640–8:05.140
有阿里的
8:05.400–8:06.000
有Deepgram
8:06.000–8:06.500
這些
8:06.940–8:09.240
已經有兩個比較好用的給大家接進來了
8:09.500–8:10.520
告訴大家怎麼去接的
8:11.800–8:12.300
好
8:12.320–8:16.420
那麼關於它的這個總體的架構儀完整流程的我們就先講到這裡謝謝大家觀看
0:00.760–0:07.530
zh大家好,今天我們給大家講解這個Voice Agent的一個總體架構啊,
大家好,今天我們給大家講解這個Voice Agent的一個總體架構啊,
0:07.530–0:09.720
zh以及它的這個完整流程。
以及它的這個完整流程。
0:10.500–0:13.682
zh我們首先了解一下什麼是Voice Agent。
我們首先了解一下什麼是Voice Agent。
0:13.682–0:15.128
zh你看這個Voice,
你看這個Voice,
0:15.128–0:17.009
zhVoice就是語音的意思,
Voice就是語音的意思,
0:17.009–0:18.166
zh就是語音智能體。
就是語音智能體。
0:18.166–0:19.612
zh也就是說不僅有語音,
也就是說不僅有語音,
0:19.612–0:20.480
zh還有智能體。
還有智能體。
0:22.020–0:24.667
zh那最簡單的比如說你用豆包的語音功能,
那最簡單的比如說你用豆包的語音功能,
0:24.667–0:26.578
zh或者用LGBT的語音功能,
或者用LGBT的語音功能,
0:26.578–0:27.460
zh你跟它對話。
你跟它對話。
0:27.460–0:29.960
zh那這個就是最基本的一個語音智能體。
那這個就是最基本的一個語音智能體。
0:30.760–0:33.026
zh它裡面有哪些關鍵技術呢?
它裡面有哪些關鍵技術呢?
0:33.026–0:34.537
zh有WebRTC,
有WebRTC,
0:34.537–0:35.481
zh有STT,
有STT,
0:35.481–0:36.426
zh有TTS,
有TTS,
0:36.426–0:37.370
zh有LLM,
有LLM,
0:37.370–0:39.070
zh這幾個關鍵的技術。
這幾個關鍵的技術。
0:39.070–0:40.391
zh這幾個名詞呢,
這幾個名詞呢,
0:40.391–0:42.280
zh希望大家都去查一下。
希望大家都去查一下。
0:42.800–0:45.200
zh那首先,WebRTC解決什麼?
那首先,WebRTC解決什麼?
0:45.200–0:47.120
zhWebRTC解決就是說,
WebRTC解決就是說,
0:47.120–0:48.240
zh音視頻的問題。
音視頻的問題。
0:48.240–0:50.480
zh你比如說你的聲音怎麼採集的,
你比如說你的聲音怎麼採集的,
0:50.480–0:51.920
zh你聲音怎麼播放的,
你聲音怎麼播放的,
0:51.920–0:53.200
zh聲音怎麼傳輸的,
聲音怎麼傳輸的,
0:53.200–0:55.600
zh這個是由WebRTC來解決的。
這個是由WebRTC來解決的。
0:56.120–0:58.420
zh那麼STT是什麼?STT就是
那麼STT是什麼?STT就是
0:58.920–1:00.200
zh語音轉文字。
語音轉文字。
1:00.460–1:01.240
zh也就是說
也就是說
1:01.740–1:07.120
zh你語音採集了以後,需要把它轉成文字,這個文字再交給大語音模型。
你語音採集了以後,需要把它轉成文字,這個文字再交給大語音模型。
1:07.640–1:08.660
zh也就是LM
也就是LM
1:09.160–1:10.200
zh決定說什麼?
決定說什麼?
1:10.440–1:15.560
zh也就是說,LM是把文字拿到以後,它會加工,會思考,會返回。
也就是說,LM是把文字拿到以後,它會加工,會思考,會返回。
1:15.820–1:16.840
zh返回完以後,
返回完以後,
1:17.100–1:18.120
zh這不有文字了嗎?
這不有文字了嗎?
1:18.380–1:19.400
zh文字在
文字在
1:19.660–1:21.460
zh第一個,它首先會發到
第一個,它首先會發到
1:22.220–1:27.100
zh這個端上,也就是比如,一般我們叫前端,比如網頁裡面,或者手機裡面。
這個端上,也就是比如,一般我們叫前端,比如網頁裡面,或者手機裡面。
1:28.120–1:29.100
zh然後不經意發,
然後不經意發,
1:29.100–1:30.220
zh有可能要播語音,
有可能要播語音,
1:30.220–1:32.740
zh這個播語音就要把這個文字再轉成語音,
這個播語音就要把這個文字再轉成語音,
1:32.740–1:34.000
zh這個過程叫TTS。
這個過程叫TTS。
1:35.020–1:37.580
zh所以說,這裡面有幾個關鍵概念,叫Web RC
所以說,這裡面有幾個關鍵概念,叫Web RC
1:37.840–1:38.620
enSTD
STD
1:38.860–1:39.640
enTTS
TTS
1:39.900–1:40.660
enLM
LM
1:41.420–1:41.920
zh對吧
對吧
1:42.200–1:43.980
zh好,我們來看一下它總體架構
好,我們來看一下它總體架構
1:44.760–1:45.260
zh首先是
首先是
1:46.040–1:48.340
zh前端,前端呢,它有一個
前端,前端呢,它有一個
1:48.860–1:49.880
zh比如說可能是瀏覽器
比如說可能是瀏覽器
1:49.880–1:51.680
zh有可能是App
有可能是App
1:51.920–1:53.200
zh甚至是一個硬件啊,對吧
甚至是一個硬件啊,對吧
1:53.460–1:55.000
zh好,那麼麥克風採集
好,那麼麥克風採集
1:55.520–1:56.280
zh那音頻
那音頻
1:56.800–1:59.860
zh同時音頻可能會播放,然後屏幕上可能有文字
同時音頻可能會播放,然後屏幕上可能有文字
2:00.120–2:01.140
zh大家用這個
大家用這個
2:01.400–2:03.960
zh用豆包的時候,你在跟它對話的時候,它不經常有這個
用豆包的時候,你在跟它對話的時候,它不經常有這個
2:05.240–2:07.800
zh會有文字顯示嗎?另外一個它會播放語音
會有文字顯示嗎?另外一個它會播放語音
2:08.820–2:10.100
zh那麼音頻會上行
那麼音頻會上行
2:10.360–2:11.120
zh到後端
到後端
2:11.640–2:12.160
zh後端呢
後端呢
2:12.660–2:15.480
zh它這裡面呢,它會比如說,它一般是Web RC
它這裡面呢,它會比如說,它一般是Web RC
2:16.500–2:17.520
zh處理啊,處理完
處理啊,處理完
2:18.040–2:18.800
zh以後呢,它會
以後呢,它會
2:19.060–2:20.840
zh把這個聲音提取出來
把這個聲音提取出來
2:21.100–2:22.640
zh然後把這個聲音呢,丟給
然後把這個聲音呢,丟給
2:22.900–2:23.660
enSTT
STT
2:23.920–2:24.680
zhSTT呢
STT呢
2:24.940–2:25.460
zh呃
呃
2:25.960–2:28.520
zh有幾種,一種是你本地的這種服務,對吧
有幾種,一種是你本地的這種服務,對吧
2:28.780–2:30.060
zh你可能從歐拉馬來接入
你可能從歐拉馬來接入
2:30.320–2:32.360
zh第二種呢,有可能比如說你是阿里的
第二種呢,有可能比如說你是阿里的
2:32.620–2:33.120
zh對吧
對吧
2:33.140–2:34.420
zh也有可能是騰訊的
也有可能是騰訊的
2:34.680–2:36.720
zh也有可能是火山引擎的
也有可能是火山引擎的
2:36.980–2:38.000
zh也可能是MiniMax
也可能是MiniMax
2:38.260–2:38.760
zh是吧
是吧
2:39.540–2:40.560
enSTT,MiniMax
STT,MiniMax
2:40.820–2:41.320
zh目前
目前
2:41.840–2:42.360
zh不一定有
不一定有
2:42.600–2:43.880
zh然後你可能Deepgram
然後你可能Deepgram
2:44.140–2:45.420
zh有可能是ElevenLab
有可能是ElevenLab
2:45.680–2:47.220
zh這裡面就有中英文
這裡面就有中英文
2:47.480–2:49.780
zh這裡面我們主要以中英文給大家解釋就行了
這裡面我們主要以中英文給大家解釋就行了
2:50.300–2:52.600
zh那麼由它轉動文字又返回給
那麼由它轉動文字又返回給
2:52.860–2:54.660
zh那麼由它轉動文字又返回給這個後端,
那麼由它轉動文字又返回給這個後端,
2:54.660–2:56.141
zh後端這塊它又會調這個LLM,
後端這塊它又會調這個LLM,
2:56.141–2:57.200
zh也就是調的大語言模型
也就是調的大語言模型
2:57.460–2:59.760
zh這裡面選擇就多了,你比如說你可以用Deepseek
這裡面選擇就多了,你比如說你可以用Deepseek
3:00.020–3:01.300
zh可以用這個
可以用這個
3:02.060–3:04.120
zhMiniMax,可以用這個Kimi
MiniMax,可以用這個Kimi
3:04.380–3:06.940
zh可以用這個OpenAI,對吧
可以用這個OpenAI,對吧
3:07.440–3:08.460
zh你可以用
你可以用
3:08.720–3:10.520
zh這個很多很多模型啊,都可以用
這個很多很多模型啊,都可以用
3:11.020–3:11.540
zh那
那
3:11.800–3:13.580
zh丟給大元模型,大元模型會
丟給大元模型,大元模型會
3:13.840–3:15.620
zh對你的話進行加工
對你的話進行加工
3:15.880–3:17.160
zh加工完以後
加工完以後
3:17.420–3:18.960
zh他比如說你今天問了一個
他比如說你今天問了一個
3:19.220–3:21.000
zh舉個例子,什麼是人工智能對吧
舉個例子,什麼是人工智能對吧
3:21.260–3:22.280
zh他會肯定回答
他會肯定回答
3:23.060–3:24.580
zh一堆這個內容嘛,然後
一堆這個內容嘛,然後
3:25.100–3:25.860
zh他返回完
他返回完
3:26.120–3:27.920
zh返回他以後,然後後端呢
返回他以後,然後後端呢
3:28.680–3:29.180
zh又
又
3:29.200–3:29.960
zh緊接著
緊接著
3:30.220–3:32.260
zh調這個TTS模型,這個TTS模型也有
調這個TTS模型,這個TTS模型也有
3:32.520–3:34.580
zh比如火山引擎呢,阿里騰訊呢
比如火山引擎呢,阿里騰訊呢
3:34.840–3:37.660
zh對吧,Deepgram,ElevenLav,他都會把
對吧,Deepgram,ElevenLav,他都會把
3:38.160–3:39.180
zh文字再轉成語音
文字再轉成語音
3:39.440–3:40.720
zh轉成語音呢,他會有一個
轉成語音呢,他會有一個
3:40.980–3:44.560
zh實時的流,這個實時流呢,再通過WebRTC技術再傳給前端
實時的流,這個實時流呢,再通過WebRTC技術再傳給前端
3:44.820–3:46.100
zh前端把聲音播放出來
前端把聲音播放出來
3:46.620–3:48.660
zh同時文字部分呢,他也會到前端
同時文字部分呢,他也會到前端
3:49.180–3:49.940
zh那這時候呢
那這時候呢
3:50.960–3:51.480
zh這時候呢
這時候呢
3:51.740–3:53.260
zh就完成了整個的
就完成了整個的
3:54.300–3:55.320
zh完成了整個的這個
完成了整個的這個
3:55.580–3:56.600
zhvoice agent的一個流程
voice agent的一個流程
3:57.360–3:59.160
zh那麼為什麼我們又稱為agent呢
那麼為什麼我們又稱為agent呢
3:59.920–4:00.420
zh就是
就是
4:00.940–4:02.220
zh不僅是voice,為什麼agent呢
不僅是voice,為什麼agent呢
4:02.220–4:05.300
zh原因就是因為這裡面有R,就是大語言模型的介入
原因就是因為這裡面有R,就是大語言模型的介入
4:05.540–4:06.320
zh它是一個智能的
它是一個智能的
4:07.080–4:08.360
zh所以說我們就要
所以說我們就要
4:08.880–4:09.900
envoice agent
voice agent
4:10.160–4:11.440
zh你既然是agent,那麼
你既然是agent,那麼
4:11.700–4:15.020
zh他可能也可以做RE,也就是檢索增加生成
他可能也可以做RE,也就是檢索增加生成
4:15.280–4:15.780
zh比如說
比如說
4:16.040–4:17.060
zh我經常問的問題
我經常問的問題
4:17.320–4:18.600
zh那麼我們可以把這個問題
那麼我們可以把這個問題
4:18.860–4:21.940
zh問的問題以及回答的過程把它傳到相量信息庫裡面
問的問題以及回答的過程把它傳到相量信息庫裡面
4:22.180–4:25.260
zh那你問題問多了以後,那麼以後他在
那你問題問多了以後,那麼以後他在
4:25.780–4:28.080
zh你再問他問題的,他就更懂你了,對吧
你再問他問題的,他就更懂你了,對吧
4:28.340–4:31.660
zh更懂你了,知道你以前問過,他會知道怎麼再去回答你
更懂你了,知道你以前問過,他會知道怎麼再去回答你
4:32.180–4:32.940
zh這個就是
這個就是
4:33.460–4:36.020
zh接入這個大語言模型的好處
接入這個大語言模型的好處
4:36.260–4:38.580
zh這個你還在這部分進行加強
這個你還在這部分進行加強
4:38.820–4:39.600
zh就這部分加強
就這部分加強
4:40.360–4:40.880
zh好
好
4:41.140–4:42.660
zh那下面這邊有解釋
那下面這邊有解釋
4:43.440–4:45.740
zh好,我們看到總體的架構,我們再看一下這個
好,我們看到總體的架構,我們再看一下這個
4:46.000–4:48.560
zh還有完整流程,那這個裡面當然就更詳細了
還有完整流程,那這個裡面當然就更詳細了
4:48.820–4:51.880
zh比如說瀏覽器這邊設計到麥克風採集
比如說瀏覽器這邊設計到麥克風採集
4:52.140–4:52.660
zh對吧
對吧
4:54.180–4:54.960
zh重採樣
重採樣
4:55.220–4:55.720
zh分幷
分幷
4:56.240–4:58.020
zh這個技術名稱我們不需要長那麼細
這個技術名稱我們不需要長那麼細
4:58.280–4:58.800
zh暫時
暫時
4:59.300–5:00.580
zh然後二進制上行
然後二進制上行
5:00.840–5:01.600
zh對吧
對吧
5:01.860–5:02.620
zh然後
然後
5:02.880–5:03.900
zh這邊還會分發
這邊還會分發
5:04.940–5:07.740
zh那麼這邊有VAD檢測,這個VAD是幹什麼
那麼這邊有VAD檢測,這個VAD是幹什麼
5:08.260–5:09.540
zh你跟這個
你跟這個
5:10.060–5:10.560
enAI
AI
5:10.820–5:12.360
zh對話的時候你不經常可能會
對話的時候你不經常可能會
5:12.620–5:13.900
zh打斷他嗎?比如說
打斷他嗎?比如說
5:14.140–5:15.420
zh他正在回答你某一個
他正在回答你某一個
5:15.680–5:17.480
zh某一段話的時候你突然間打斷他了
某一段話的時候你突然間打斷他了
5:17.740–5:19.520
zh那如果是有打斷的話
那如果是有打斷的話
5:19.780–5:20.300
zh對吧
對吧
5:20.540–5:21.320
zh有打斷的話
有打斷的話
5:21.580–5:22.080
zh那麼
那麼
5:22.860–5:24.380
zh這時候會丟給LM
這時候會丟給LM
5:24.640–5:25.160
zh對吧
對吧
5:25.420–5:26.180
zh會切這個句子
會切這個句子
5:26.440–5:27.460
zh然後又貼貼的再返回
然後又貼貼的再返回
5:27.460–5:28.220
zh對吧
對吧
5:28.480–5:30.020
zh如果不打斷的話
如果不打斷的話
5:30.280–5:31.040
zh不打的話他就
不打的話他就
5:31.560–5:32.840
zh他就整個就是
他就整個就是
5:33.860–5:35.140
zh朝下去走
朝下去走
5:35.400–5:36.160
zh這個意思
這個意思
5:36.680–5:37.440
zh整個朝下去走
整個朝下去走
5:37.700–5:38.460
zh直接從這
直接從這
5:38.720–5:39.240
enTTS
TTS
5:39.740–5:40.240
zh這走
這走
5:40.260–5:41.280
zh然後就返回
然後就返回
5:41.540–5:42.560
zh再返回到前端
再返回到前端
5:43.340–5:44.100
zh然後進行播放
然後進行播放
5:44.360–5:45.120
zh播放這個聲音
播放這個聲音
5:45.640–5:46.660
zh中間發生的過程就是
中間發生的過程就是
5:46.920–5:47.680
zhSTT code端
STT code端
5:47.940–5:48.440
zh你要走
你要走
5:48.460–5:49.220
zhSTT的服務
STT的服務
5:49.480–5:49.980
zh對吧
對吧
5:49.980–5:50.500
zh你比如說
你比如說
5:51.020–5:51.780
zh阿里的呀
阿里的呀
5:52.040–5:52.640
zhDeepgram呀
Deepgram呀
5:52.800–5:53.300
zh之類的
之類的
5:53.320–5:53.820
zh那麼
那麼
5:54.600–5:55.620
zh這個如果是LLM的話
這個如果是LLM的話
5:55.880–5:56.640
zh你可能接入OpenAI
你可能接入OpenAI
5:57.160–5:58.027
zh也可能接入Deepseek
也可能接入Deepseek
5:58.180–5:58.980
zh有可能接入Milimax
有可能接入Milimax
5:59.200–5:59.700
enKimi
Kimi
5:59.720–6:00.220
zh都可以
都可以
6:00.480–6:00.980
zh好
好
6:01.000–6:01.500
zh那麼
那麼
6:01.500–6:02.280
zh那麼TTS這塊
那麼TTS這塊
6:02.540–6:03.560
zh通過SSE的流
通過SSE的流
6:03.820–6:04.320
zh來進行播放
來進行播放
6:04.580–6:05.600
zh那麼SSE什麼呢
那麼SSE什麼呢
6:05.860–6:07.900
zh這個是AI裡面的一個技術
這個是AI裡面的一個技術
6:08.160–6:09.700
zh就是一個流式的
就是一個流式的
6:10.220–6:10.980
zh返回的
返回的
6:11.240–6:11.740
zh一個
一個
6:11.740–6:12.520
zh處理技術
處理技術
6:13.020–6:14.300
zh就是文字的一個流式
就是文字的一個流式
6:14.560–6:15.840
zh同時還有音頻的
同時還有音頻的
6:16.620–6:17.380
zh最後到
最後到
6:17.380–6:20.700
zh網頁這段它有音頻的一個流式
網頁這段它有音頻的一個流式
6:21.480–6:23.780
zh所以這個是更詳細的一個完整流程
所以這個是更詳細的一個完整流程
6:24.040–6:25.820
zh這裡面涉及到好些技術
這裡面涉及到好些技術
6:26.600–6:27.100
zh好技術
好技術
6:27.100–6:27.880
zh大家這些技術
大家這些技術
6:28.140–6:28.900
zh我們會一步步拆解
我們會一步步拆解
6:29.160–6:29.660
zh給大家講的
給大家講的
6:30.180–6:30.680
zh那麼
那麼
6:30.700–6:32.220
zh我們對於一個
我們對於一個
6:32.480–6:34.280
zh總體的架構以及完整流程
總體的架構以及完整流程
6:34.540–6:35.300
zh有所了解以後
有所了解以後
6:35.820–6:36.580
zh你才能搞懂
你才能搞懂
6:36.840–6:38.620
zh我們後續要給大家講的
我們後續要給大家講的
6:39.400–6:39.900
zh比如說
比如說
6:41.960–6:44.000
zh從Web端到Server端的整個的一個
從Web端到Server端的整個的一個
6:44.780–6:46.820
zhVoice Agent的一個整個流程
Voice Agent的一個整個流程
6:46.820–6:48.100
zh那麼我們這個例子
那麼我們這個例子
6:48.360–6:49.120
zh寫的不是很大
寫的不是很大
6:49.380–6:50.660
zh但是通過這個例子
但是通過這個例子
6:50.920–6:51.420
zh你
你
6:51.420–6:53.220
zh能對Voice Agent有一個
能對Voice Agent有一個
6:53.740–6:55.260
zh完整的流程的一個理解
完整的流程的一個理解
6:55.520–6:56.040
zh並且
並且
6:56.300–6:57.820
zh它是正式辦理能跑起來的一個項目
它是正式辦理能跑起來的一個項目
6:58.340–7:00.140
zh我們首先是把理論先搞清楚
我們首先是把理論先搞清楚
7:00.900–7:01.660
zh這裡面
這裡面
7:01.920–7:02.700
zh我們可以看到
我們可以看到
7:02.940–7:03.980
zh這裡面我們涉及的各種服務
這裡面我們涉及的各種服務
7:04.220–7:05.000
zh比如
比如
7:05.260–7:05.760
enSTT
STT
7:06.020–7:06.540
enIM
IM
7:06.780–7:07.280
zh這些
這些
7:07.300–7:09.100
zh大家都可以去採用不同的
大家都可以去採用不同的
7:09.600–7:10.380
enProvider
Provider
7:10.620–7:11.400
zh有著供應商的服務
有著供應商的服務
7:11.660–7:12.680
zh不一定說是非要某一間的
不一定說是非要某一間的
7:12.940–7:13.440
zh對吧
對吧
7:13.960–7:14.460
en!
!
7:14.460–7:17.020
zh比如說如果說我們英文的我建議大家用Deepgram
比如說如果說我們英文的我建議大家用Deepgram
7:17.280–7:18.040
enEleven Lab
Eleven Lab
7:18.300–7:20.600
zh如果說是中文的建議大家用
如果說是中文的建議大家用
7:21.120–7:23.940
zh阿里的、騰訊的、火山引擎的,像這些
阿里的、騰訊的、火山引擎的,像這些
7:24.180–7:25.220
zh包括MiniMax,像這些
包括MiniMax,像這些
7:25.720–7:27.000
zh這樣的話是比較好的
這樣的話是比較好的
7:27.260–7:27.780
zh因為
因為
7:28.020–7:29.060
zh肯定是
肯定是
7:30.080–7:30.840
zh各自的模型
各自的模型
7:31.100–7:34.180
zh它對中英文支持的出來的效果是不一樣的
它對中英文支持的出來的效果是不一樣的
7:34.940–7:37.240
zh當然同時它還支持方言的
當然同時它還支持方言的
7:37.500–7:38.520
zh比如說粵語
比如說粵語
7:39.040–7:39.800
zh對吧
對吧
7:40.320–7:40.820
zh等等
等等
7:40.820–7:42.100
zh像這些方言的四川話
像這些方言的四川話
7:42.620–7:43.120
zh普通話
普通話
7:43.900–7:45.440
zh像方言普通話都支持的
像方言普通話都支持的
7:46.460–7:47.220
zh所以說這個
所以說這個
7:47.480–7:48.760
zh你要不同的去
你要不同的去
7:49.020–7:49.520
zh另外還有一個
另外還有一個
7:49.780–7:50.560
zhVAD打斷
VAD打斷
7:50.800–7:51.580
zhVED打斷的
VED打斷的
7:51.840–7:52.340
zh不同的
不同的
7:53.120–7:53.880
zh比如STT
比如STT
7:54.140–7:54.640
zh就是
就是
7:54.640–7:55.160
zh它叫
它叫
7:55.420–7:55.920
zh實際上叫
實際上叫
7:55.920–7:56.960
zhASR技術
ASR技術
7:57.460–7:58.480
zh不同的
不同的
7:59.520–8:00.280
zh廠商提供出來的
廠商提供出來的
8:00.540–8:01.560
zh質量也是不一樣的
質量也是不一樣的
8:01.820–8:02.840
zh這個都去接
這個都去接
8:03.360–8:04.380
zh然後我們這裡面當然就接了
然後我們這裡面當然就接了
8:04.640–8:05.140
zh有阿里的
有阿里的
8:05.400–8:06.000
zh有Deepgram
有Deepgram
8:06.000–8:06.500
zh這些
這些
8:06.940–8:09.240
zh已經有兩個比較好用的給大家接進來了
已經有兩個比較好用的給大家接進來了
8:09.500–8:10.520
zh告訴大家怎麼去接的
告訴大家怎麼去接的
8:11.800–8:12.300
zh好
好
8:12.320–8:16.420
zh那麼關於它的這個總體的架構儀完整流程的我們就先講到這裡謝謝大家觀看
那麼關於它的這個總體的架構儀完整流程的我們就先講到這裡謝謝大家觀看

影片筆記:01VoiceAgent理论基础-项目概述及环境准备

<!-- VIDEONOTE_PUBLICATION_WARNINGS_BEGIN -->

⚠️ 全文快速校讀發現待確認修正

本筆記已完成可閱讀的逐字稿與時間跳轉;下列為待處理問題,建議播放原片確認。

  • 待修正:⚠️ 全文快速校讀:已套用暫定修正,請確認(segment=2 已先套用暫定修正:那最簡單的比如說你用豆包的書,或者用LGBT的書,你跟它對話。那這個就是最基本的一個語音智能體。 → 那最簡單的比如說你用豆包的語音功能,或者用LGBT的語音功能,你跟它對話。那這個就是最基本的一個語音智能體。;segment=3 已先套用暫定修正:它裡面有哪些關鍵技術呢?有Web RC,有STD,有TTS,有IIM,這幾個關鍵的技術。這幾個名詞呢,希望大家都去查一下。 → 它裡面有哪些關鍵技術呢?有WebRTC,有STT,有TTS,有LLM,這幾個關鍵的技術。這幾個名詞呢,希望大家都去查一下。)
  • 待修正:逐字稿可先使用,但有待校正清單(segment=8 unnatural_sentence_boundary: 標點出現在句首或停在逗號位置,斷句可能不符合文法/口語;segment=9 unnatural_sentence_boundary: 標點出現在句首或停在逗號位置,斷句可能不符合文法/口語)

<!-- VIDEONOTE_PUBLICATION_WARNINGS_END -->

一句話總結

本影片介紹 Voice Agent(語音智能體)的基礎理論與整體架構,解析其由 WebRTC、STT、LLM、TTS 及 VAD 等核心技術組成的數據流向,並提供針對中英文及方言的服務商選擇建議。

核心重點

  • Voice Agent 定義:結合語音(Voice)與智能體(Agent)技術,具備語音對話能力及大語言模型(LLM)帶來的智能處理能力。
  • 核心技術模組:
  • WebRTC:負責音視頻的採集、播放與傳輸。
  • STT (Speech-to-Text):將語音轉為文字。
  • LLM (Large Language Model):進行文字加工、思考與生成回答。
  • TTS (Text-to-Speech):將文字轉為語音。
  • VAD (Voice Activity Detection):語音活動檢測,用於判斷是否打斷 AI 回答。
  • 數據流向架構:
  1. 前端:透過瀏覽器或 App 收集麥克風音頻,顯示文字並播放語音。
  2. 後端處理:音頻經 WebRTC 傳送至後端,由 STT 服務轉為文字。
  3. 智能處理:後端將文字傳給 LLM 進行思考與生成回答。
  4. 語音生成:LLM 返回的文字經 TTS 服務轉為語音。
  5. 返回前端:透過 WebRTC 或 SSE(服務端發送事件)流式技術,將音頻與文字傳回前端播放。
  • Agent 智能增強 (RAG):引入檢索增強生成概念,透過向量資料庫儲存歷史問答,使 AI 更了解用戶,實現更精準的回答。
  • 服務商建議:
  • 英文:建議使用 Deepgram、Eleven Lab。
  • 中文:建議使用阿里、騰訊、火山引擎、MiniMax 等服務。
  • 強調不同廠商對中英文及方言(如粵語、四川話)支援效果的差異。

詳細大綱

1. Voice Agent 概念解析

  • 定義:Voice(語音)與 Agent(智能體)的結合。
  • 基本範例:提及豆包、LGBT(逐字稿原文)的語音功能。

2. 關鍵技術模組

  • WebRTC:解決音視頻採集、播放與傳輸問題。
  • STT:語音轉文字。
  • LLM:文字加工、思考與返回。
  • TTS:文字轉語音。

3. 總體架構與數據流向

  • 前端層:
  • 包含瀏覽器、App、硬件。
  • 負責麥克風採集、音頻播放、文字顯示。
  • 後端層:
  • 接收上行音頻。
  • 呼叫 STT 服務(本地或雲端)。
  • 呼叫 LLM 服務進行邏輯處理。
  • 呼叫 TTS 服務生成語音。
  • 傳輸協議:
  • WebRTC:用於音視頻流傳輸。
  • SSE:用於文字/音頻流式返回。

4. 完整流程細節

  • 前端採集:進行重採樣/分幀,以二進制上行傳輸。
  • 後端 VAD 檢測:
  • 判斷是否打斷 AI 回答。
  • 若打斷:切句子傳給 LM(大語言模型),重新生成。
  • 若不打斷:直接繼續流程。
  • 生成與返回:LLM 生成文字 -> TTS 生成語音 -> 流式返回前端。

5. Agent 智能增強 (RAG)

  • 利用大語言模型介入。
  • 將問答過程存入向量資料庫。
  • 透過歷史數據讓 AI 更懂用戶,優化後續回答。

6. 服務商選擇與建議

  • 支援不同語言與方言(粵語、四川話、普通話)。
  • 英文推薦:Deepgram, Eleven Lab。
  • 中文推薦:阿里, 騰訊, 火山引擎, MiniMax。
  • 強調不同廠商對中英文及方言支援效果的差異。

工具 / 模型 / 名詞整理

  • 產品/應用:
  • 豆包
  • LGBT(逐字稿原文,疑為口誤)
  • 技術/協議:
  • WebRTC
  • STT (Speech-to-Text)
  • TTS (Text-to-Speech)
  • LLM (Large Language Model)
  • VAD (Voice Activity Detection)
  • SSE (Server-Sent Events,逐字稿提及為流式返回技術)
  • ASR (Automatic Speech Recognition,逐字稿提及為 STT 的實際名稱)
  • RAG (Retrieval-Augmented Generation,逐字稿提及為 RE/檢索增加生成)
  • 模型/服務供應商:
  • 歐拉馬(疑為口誤,指代某服務)
  • 阿里
  • 騰訊
  • 火山引擎
  • MiniMax
  • Deepgram
  • ElevenLab / ElevenLav(逐字稿出現兩種拼寫)
  • Deepseek
  • Kimi
  • OpenAI

操作流程整理

  1. 前端初始化:用戶透過瀏覽器或 App 啟動 Voice Agent。
  2. 音頻採集:前端透過麥克風採集音頻,進行重採樣與分幀處理。
  3. 音頻傳輸:透過 WebRTC 協議,將二進制音頻數據上行傳輸至後端。
  4. 語音轉文字 (STT):後端接收音頻,呼叫 STT 服務將其轉為文字。
  5. 語音活動檢測 (VAD):
  • 檢測用戶是否停止說話或打斷 AI。
  • 若檢測到打斷,切分句子傳給 LLM 重新生成。
  • 若未打斷,繼續當前流程。
  1. 智能處理 (LLM):後端將文字傳給 LLM,進行邏輯思考與回答生成。
  2. 文字轉語音 (TTS):將 LLM 生成的文字傳給 TTS 服務,生成語音數據。
  3. 流式返回:
  • 透過 SSE 或 WebRTC,將生成的語音與對應文字流式傳回前端。
  1. 前端呈現:前端播放語音並顯示對應文字。

值得注意的限制或風險

  • 服務商支援度差異:不同廠商對中英文及方言(如粵語、四川話)的支援效果存在差異,需根據需求選擇合適的服務商。
  • 技術名詞辨識風險:逐字稿中出現多個疑似口誤或聽寫錯誤的名稱(如 LGBT、歐拉馬、RE、VED 等),在實際開發或學習時需特別確認正確名稱,以免誤用技術或服務。
  • 斷句與語法問題:影片逐字稿在多個段落(Segment 8, 9, 13-16, 18, 21, 23-25, 87)存在標點出現在句首或停在逗號位置的現象,斷句可能不符合文法或口語習慣,影響對完整語意的理解。

逐字稿辨識疑點

  • LGBT:逐字稿中提及「用LGBT的語音功能」,疑為口誤或聽寫錯誤,通常語音助手產品名稱為其他名稱。
  • 歐拉馬:逐字稿提及「從歐拉馬來接入」STT服務,疑為特定服務商名稱的口誤或聽寫錯誤。
  • RE:逐字稿提及「做RE,也就是檢索增加生成」,通常此技術稱為 RAG (Retrieval-Augmented Generation),RE 可能為口誤。
  • LM:逐字稿中先提及 LLM,後簡稱為 LM,指代大語言模型。
  • ElevenLab / ElevenLav:逐字稿中分別出現「ElevenLab」與「ElevenLav」,需查證正確拼寫。
  • VED:逐字稿後段提及「VED打斷」,前文為 VAD,疑為口誤。
  • STT code端:逐字稿提及「STT code端」,語意不明,疑為口誤。
  • 大元模型:逐字稿提及「丟給大元模型」,疑為「大語言模型」的口誤。
  • 正式辦理:逐字稿提及「正式辦理能跑起來的一個項目」,疑為「正式版本」或「正式版本能跑起來」的口誤。

可延伸追問

  • 如何具體實作 VAD 來判斷用戶是否打斷 AI 回答?
  • RAG 中的向量資料庫如何與 LLM 結合以優化歷史問答的檢索?
  • 不同 STT/TTS 服務商在延遲(Latency)與準確率上的具體數據比較為何?
  • WebRTC 與 SSE 在 Voice Agent 架構中各自的優劣勢與適用場景?

尚未產生學習筆記

請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習