跳到主要內容
聯絡我們
00:00:04客戶

我們每週有三場會,每場一到兩個小時,全部有錄音。

00:00:09客戶

錄音檔就躺在雲端硬碟裡,沒有人再打開過。

00:00:12AMAX

那我們從最麻煩的那一段開始:兩個小時的檔案,先讓它變成模型吃得下的東西。

AMAX 會議語音 agent

把長時間錄音變成可用資料,逐字稿,以及你真正要的那幾個欄位。

示意波形,由預先產生的音量序列繪製,非任何實際錄音。

以上為示意對話,用來說明產品流程,非任何真實客戶的談話紀錄。

00:00:12客戶

錄音檔有兩個小時,能處理嗎?

00:00:16AMAX

可以,但不是直接丟進去——長檔案要先拆。

00:00:31客戶

為什麼不能直接丟?我看那些服務都寫「支援長音檔」。

00:00:38AMAX

兩小時的檔案直接送進轉錄服務,最常見的結果有三種:報錯、逾時、或者跑完才發現後半段被截掉。第三種最麻煩,因為它不會報錯,你要自己讀到最後才會發現。所以我們在送出去之前先做四件事——這四件事全部是決定性程式碼,沒有模型參與

掛在 00:00:38

長音檔分段管線的四個步驟
標籤做什麼為什麼
1PROBE讀出音檔的實際時長與編碼不能靠副檔名猜。同一個 .mp4 裡可能是任何東西
2SPLIT1200 秒(20 分鐘)為單位切段每一段都落在服務的安全區間內,不賭上限
3NORMALIZE統一轉 16kHz / 單聲道 / 64k AAC語音辨識吃的是這個規格;立體聲與高取樣率只會讓檔案變大
4MERGE逐段送出、依序接回成一份完整逐字稿分段是實作細節,使用者不該看到接縫
00:01:24客戶

這四件事聽起來不難啊。

00:01:29AMAX

不難,但每個做語音產品的團隊都會踩一遍:切段邊界切在句子中間、聲道沒統一導致某些檔案辨識品質莫名其妙地差、段落合併時順序錯亂。我們已經踩完並寫成程式碼了。 你買的其實是這個。

00:02:05客戶

那些數字是寫死的嗎?我們的會議室設備比較舊。

00:02:11AMAX

是預設值,可依部署調整。現行實作的實際值是這五個。

掛在 00:02:11

  • 切段長度 1200s
  • 輸出取樣率 16 kHz
  • 聲道 mono
  • 編碼 AAC 64k
  • 單次上傳上限 100 MB

上列為現行實作的實際參數值;1200s16kHz/mono 是預設值,非上限。

00:04:38客戶

我們開會中間有一大段沒人講話,等大家看資料。那段也要算錢嗎?

00:04:46AMAX

沒人講話的段落,可以在送出去之前就切掉。

00:04:52AMAX

會議錄音裡有大量的空白——等人到齊、看投影片、傳文件、中場休息。按時長計費的服務不會替你分辨這件事,它照算。我們在管線前面掛一層語音活動偵測(VAD),只把有人聲的區段送出去。它不是機器學習模型,是一個很小的訊號處理器,只有三個參數。

掛在 00:04:52

語音活動偵測的三個參數
參數意義
rmsThreshold0.01音量門檻。低於此值視為靜音
activationMs300連續有聲超過 300ms 才判定「開始講話」
silenceMs800連續無聲超過 800ms 才判定「講完了」
SILENCESILENCE
示意波形,由預先產生的音量序列繪製,非任何實際錄音。
00:05:33客戶

為什麼要兩個時間參數?一個音量門檻不就好了。

00:05:39AMAX

因為單靠音量門檻會抖。講話中的自然停頓、換氣、咳嗽都會讓音量瞬間掉到門檻以下——沒有遲滯(hysteresis),一段話會被切成幾十個碎片。300ms 進、800ms 出這組非對稱門檻讓它進得快、出得慢,符合人講話的實際節奏。

00:06:10客戶

這一層是掛在哪裡?我們之後可能想做即時的。

00:06:16AMAX

這個模組刻意寫成純邏輯——不擁有音訊環境、不碰前端狀態、不用計時器,只吃音框、吐狀態。所以它可以接在瀏覽器即時串流後面,也可以接在離線音檔管線前面,而且有單元測試。即時那一端的技術層我們有,但還沒包成產品——這條我記在後面一起講,等一下講「現在做不到什麼」的時候會再出現一次。

00:06:58客戶

那我這樣可以省多少?

00:07:04AMAX

這一題我不會給你數字。 省多少取決於你的錄音實際有多少靜音,我們沒有跨案的統計,寫一個百分比出來就是編的。想知道自己的比例,最快的方法是拿一場實際錄音跑一次——那個數字會是你的,不是我們的。

00:11:02客戶

我們開會講話有台語混國語,有時候夾幾個英文專有名詞。這樣行嗎?

00:11:11AMAX

這一題我們的答案是——要先跑一次才知道,而且不是我們決定的。

00:11:30客戶

不是你們決定的?那是誰決定的?

00:11:35AMAX

轉錄由外部的語音模型執行。混語表現取決於那個模型,不取決於我們的管線。我們沒有針對台語混國語做過任何量測,所以有三件事我要先講。

掛在 00:11:35

  • 我們不會跟你說「支援台語」或「支援混語」。沒有測過的事不寫在頁面上。
  • 我們不會給你一個辨識率數字。沒有測過的數字,寫出來就是編的。
  • 我們建議:挑一場最典型的錄音(最好是混語最嚴重的那一場),跑一次,一起看結果。
00:12:24客戶

那如果跑完結果不能接受呢?就沒救了?

00:12:30AMAX

有三個方向。一、換轉錄模型——管線與模型是分開的,可換。二、在管線裡加詞彙表,把專有名詞與人名餵進去。三、接受逐字稿有誤但摘要層仍可用。第三種比想像中常見,因為結構化欄位抽取對零星誤字有相當的容忍度。

00:13:18客戶

……你們業務不太像業務。

00:13:26AMAX

一個會在自家 Landing Page 上寫「這個我們沒測過」的供應商,比一個什麼都說可以的供應商省你更多時間。省下來的是你之後要花在返工上的那幾週。

00:19:45客戶

老實說,我要的不是逐字稿。我要的是待辦事項。

00:19:53AMAX

逐字稿是中間產物。最後要的是可以填進系統的欄位。

00:20:02AMAX

三萬字的逐字稿沒有人會讀。真正有用的是從裡面抽出來的那幾行,而且要能直接進你的專案管理工具或 CRM,不是再貼一次。

00:20:31客戶

那現在拿得到的是哪幾行?

00:20:37AMAX

在摘要之上抽一層固定欄位。會議場景的典型四欄是這四個。

掛在 00:20:37

會議場景的典型四個結構化欄位
決議待辦負責人期限
這場會議確定下來的事要做的事,逐條每一條待辦對應的人每一條待辦對應的時間
00:21:15客戶

我們不是開會,是做客服錄音品管。欄位完全不一樣。

00:21:22AMAX

欄位是可以換的。同一條管線換一組欄位定義,就從「會議記錄」變成「銷售訪談分析」(客戶痛點、預算、決策者、下一步)或「客服品管」(問題類型、處理結果、情緒轉折點、是否需回訪)。換欄位不用改管線。

00:22:04客戶

兩個小時的會,一次丟給模型摘要,它讀得完嗎?

00:22:12AMAX

讀不完——內容超出視窗,細節會被平均掉。正確的做法是分層:逐段摘要 → 段落摘要再匯總 → 產出全場摘要,同時保留「摘要」與「原文索引」兩軌,讓每一條結論都能跳回它在錄音裡的位置。但這一段我必須把話說清楚——

掛在 00:22:12

誠實註記

上一段描述的「分層摘要 + 摘要/原文索引雙軌」是我們已經寫完的架構設計,不是已經上線的功能。

目前已有實作的是:前面談過的逐段送出與逐字稿合併(MERGE)、VAD 靜音偵測,以及把外部 workflow 吐回來的欄位接進你的系統。

全場分層匯總與原文索引雙軌屬於「需求訪談 pipeline」那條線的規劃範圍,程式碼為零——它只有架構文件,沒有實作。

你今天送一場錄音來,拿得到的是:逐字稿 + 由外部 workflow 產出的摘要與欄位。拿不到的是:可以逐條跳回錄音位置的雙軌索引。

00:23:40客戶

等一下——那摘要跟欄位到底是誰做的?

00:23:46AMAX

模型執行,而且 prompt 與 workflow 本體不在我們交付的程式碼裡,它們跑在一套獨立部署的 workflow 服務上。我們交付的是音訊前處理、串接、輪詢、把結果接回你的系統,以及欄位定義的設計。等一下我把現在做不到的事一條一條念完,這條分界你會再看到一次——我不想讓你以為那個模型是我們的。

00:32:10客戶

那如果是需求訪談,可以直接變成報價單嗎?

00:32:19AMAX

方法論已經成形。產品還沒做出來。

00:32:26AMAX

這是我們自己最想做的一條線,所以先講清楚它現在在哪個階段:它是一份完整的系統架構文件,不是一套可以交付的產品。 架構圖畫完了、每個環節的技術選擇都想過了、資料流向定義了——但程式碼是零

掛在 00:32:26

需求訪談 pipeline 的實作狀態
項目狀態
系統架構設計 / 各環節技術選型 / 與現有音訊管線的接點✅ 完成(有文件)
實作程式碼。尚未開始
可交付性不可交付。今天下訂單我們沒有東西可以給你
00:33:41客戶

那你架構圖畫的是什麼?給我看一下。

00:33:47AMAX

五格,每一格都要標「規劃」——因為五格都還沒寫。

掛在 00:33:47

  1. 規劃會議來源(線上會議字幕 / 錄音備援)
  2. 規劃每日與會後的增量摘要(分層匯總)
  3. 規劃摘要 + 原文索引雙軌保存
  4. 規劃產出結構化需求清單
  5. 規劃產出報價單草稿

僅供評估,非現有功能

00:34:52客戶

既然一行都沒寫,為什麼還要放在頁面上?

00:34:58AMAX

因為它的最前端是現成的——前面談的長音檔分段管線、VAD 靜音偵測,以及把外部 workflow 產出的欄位接回你的系統,這三段都已有實作。中段(分層匯總與雙軌索引)和兩端(會議來源接入、需求清單 → 報價單)都是零。 我把它放上來,是想找一個需求正好落在這條線上的人一起開發,不是想賣一個做完的東西。

00:35:40客戶

也就是說今天談不成。

00:35:44AMAX

這條線談不成。前面那三段談得成。把只有文件的東西講成做完了,是這個產業最常見的謊——我們不做這件事,所以我寧可在這裡少賣一項。

00:41:55客戶

我們的錄音會外流嗎?會被拿去訓練嗎?

00:42:04AMAX

可以承諾的寫在這裡。不能承諾的,我們寫「要逐案確認」。

00:42:12客戶

這種問題我通常只會拿到「絕不外流」四個字。

00:42:18AMAX

那四個字沒有意義,因為它沒有指明是哪一段、由保證。所以我把它拆成兩欄——左邊是我現在就能說死的,右邊是要在合約裡填答案的。

掛在 00:42:18

資料處理位置:現在可以說的,與需要逐案確認的
現在可以說的需要逐案確認的
音訊前處理(切段、格式轉換、VAD)在我們部署的環境內完成,不經過第三方轉錄與摘要 workflow 內部呼叫哪一家模型服務,屬部署設定,需逐案確認並寫進合約
轉錄與摘要跑在自行部署的 workflow 服務上,不是上傳到公用消費級平台資料實際落在哪個區域(境內 / 境外),依部署方式而定
管線與模型是分離的,可以配合你指定的模型服務音訊與逐字稿的保存期限,需依你的資安政策設定,非產品預設值
這條分界(誰做什麼)我們願意寫進合約是否允許用於模型訓練,取決於最終選用的模型服務條款
00:43:36客戶

右邊那一欄是不是就是「我們也不知道」?

00:43:42AMAX

是「還沒決定,而且該由你決定」。資料處理位置是一個合約條款,不是一句行銷詞。 右欄那四格會在導入時一格一格填上,填完寫進合約——不填就不上線。

00:44:20客戶

有沒有一份文件可以給我們資安看?

00:44:25AMAX

有完整的資料流向說明文件,在下面的表單勾「需要資料處理說明」就會一起寄過去。

00:48:20客戶

在我回去跟老闆講之前——你們現在做不到的,一次講完。

00:48:27AMAX

好。我一條一條念,一條都不跳過。

掛在 00:48:27

現在做不到的事
#限制說明
1我們沒有自己的轉錄模型轉錄由外部模型執行。我們交付的是前處理、串接與結果接回
2摘要 prompt 不在交付範圍內摘要與欄位抽取的 prompt 跑在獨立部署的 workflow 服務,不隨程式碼交付
3沒有語者分離系統不會告訴你「這句是誰講的」。這項需求存在,但零實作
4分層匯總與原文索引雙軌沒有實作架構已成形,程式碼為零。前面談摘要與欄位時的那個誠實註記講的就是這一條
5會議 → 報價單這條線沒有實作只有架構文件。五格流程每一格都標「規劃」
6沒有混語辨識的實測數據要用你的錄音跑過才知道。我們沒有測過台語混國語,所以不給數字
7沒有任何準確率數字我們沒有做過可對外引用的辨識準確度評測,因此不提供數字
8沒有即時逐字稿產品瀏覽器即時麥克風串流的技術層已具備並有測試,但尚未包成產品。目前交付形態是「上傳檔案 → 處理 → 取回結果」
9成本節省幅度未量測VAD 跳過靜音確實會減少送出的音訊長度,但省多少取決於你的錄音,我們不給百分比
00:50:48客戶

這幾條會變嗎?

00:50:52AMAX

會隨著實作進度更新。但順序是固定的:先做完,再改這一頁。 任何一條被解掉之前,這一頁不會先改。

00:51:10客戶

我老闆會問,那你們到底做得到什麼。

00:51:16AMAX

三件事:把兩小時的音檔整理成模型吃得下的形狀把沒人講話的段落在計費前切掉把外部 workflow 吐回來的欄位接進你的系統。這三件事今天就能交付,其餘的都在上面那張表裡。

00:52:03AMAX

最快的驗證方式——拿一場你最不想再聽第二遍的錄音給我們。

00:52:26客戶

要先簽什麼嗎?

00:52:31AMAX

不用先簽約、不用先定規格。挑一場實際的錄音——最好是最長的那一場,或者混語最嚴重的那一場——我們跑一次,一起看結果。你會知道逐字稿的品質、欄位抽出來像不像樣,以及這件事值不值得往下做。

00:53:08客戶

那我把檔案寄去哪裡?

00:53:12AMAX

先填下面,我們回信告訴你怎麼給檔案。

掛在 00:53:12

單次上傳上限 100 MB。更大的檔案我們會另外給你上傳方式。

00:53:19

〔錄音結束〕

本頁所有逐字稿內容為示意,非真實客戶談話。時間碼為版面設計元素,不代表實際處理時間。