10-15 英文語音轉文字功能範例教學

在體驗了從人形、多特徵到工安防災等豐富的「影像辨識」功能後,本章節我們將解鎖 NexVDO SDK 的另一項強大潛能——「音訊處理」。

我們將導入專門針對英文語系訓練的語音轉文字模型,讓您的軟體不僅能「看懂」畫面,還能「聽懂」聲音,將接收到的即時語音串流瞬間轉換為文字字幕!這項技術非常適合應用於跨國視訊會議紀錄、英語遠距教學即時字幕,以及影片自動上字幕等智慧場景。

學習目標

透過本章節,您將學會:

1. 針對音訊分析場景,配置並載入專屬的英文語音轉文字模型。

2. 理解從「影像資料流」切換到「音訊資料流」的核心流程差異,並使用 SDK 內建機制直接渲染畫面。

3. 學習在程式中註冊專屬的 AI 回呼函式 (QDEEP_REGISTER_OBJECT_DETECT_CALLBACK) 相關字樣)。

4. 實作 UI 介面擴充,將辨識出的文字即時更新並顯示於 Qt 的標籤 (QLabel) 上。

準備工作

要讓 AI 具備英文聽寫能力,我們必須為它換上專注於語音辨識的「大腦」。這次的模型包包含了多個設定、權重與關聯的文字檔,因此檔案數量會比較多。

1. 請找到語音轉文字模型壓縮檔(檔名可能標示為 RELEASES.QDEEP.MODEL.SPEECH.TRANSCRIBE.

2. 將其解壓縮後,把裡面的 QDEEP.OD.SPEECH.TRANSCRIBE.CFG ( 設定檔 ) 以及所有對應的權重檔 (.WEIGHTS) 與字典/文字檔 (.txt, .SETTING.CFG) ,一併複製到您 Qt 專案的建置輸出目錄下(與執行檔同層)。


 

核心觀念解析:從「影像」到「音訊」的流程轉換

在我們正式修改 API 之前,必須先釐清一個極度重要的核心觀念。因為之前我們都是講解影像的處理,而這次是講解聲音!

• 過去的影像流程 : 我們是透過 on_video_decoder_broadcast_client_callback 來攔截解碼後的 NV12 影像數據,並呼叫 QDEEP_SET_VIDEO_OBJECT_DETECT_UNCOMPRESSION_BUFFER 將畫面餵給 AI。

• 全新的音訊流程 : 由於模型是針對聲音進行辨識,使用者必須將「音訊數據」發送給偵測器。因此,我們必須改從負責接收聲音解碼的 on_audio_decoder_broadcast_client_callback 中去攔截純淨的 PCM 音訊數據。並使用專為音訊設計的新 API (QDEEP_SET_AUDIO_...) 來傳遞這些聲音特徵!

➤  接收端的音訊回呼函式可以回顧 : 10-9 RTSP 串流接收端功能範例教學


image.png

 

核心 API 要怎麼改?

了解流程差異後,我們來看看需要修改與新增的核心 API:

• 模型配置 Enum 的改變 : 在  QDEEP_CREATE_OBJECT_DETECT 中,請換成專屬的 QDEEP_OBJECT_DETECT_CONFIG_MODEL_SPEECH_TRANSCRIBE_EN 。

• 註冊語音辨識結果 : 我們需要透過 QDEEP_REGISTER_OBJECT_DETECT_CALLBACK 取得辨識結果。

QDEEP_CREATE_OBJECT_DETECT

這是建立 AI 引擎並載入大腦(模型)的最關鍵 API。使用者必須透過此 API 初始化偵測器。


 

QDEEP_SET_AUDIO_OBJECT_DETECT_UNCOMPRESSION_BUFFER_EX

我們要在 on_audio_decoder_broadcast_client_callback 中呼叫它,將聲音數據源源不絕地提供給 AI 偵測器。比起影像,音訊需要傳遞不同的物理參數:

資料回呼-拿到聲音辨識結果

• 註冊 API :  QDEEP_REGISTER_OBJECT_DETECT_CALLBACK

• 觸發時機 : 當 AI 引擎聽完一段話並完成辨識時,就會主動透過這個 Callback 將英文句子傳遞給我們。

• 回傳的情報參數  (PF_OBJECT_DETECT_CALLBACK) :


 

QDEEP_OBJECT_DETECT_BOUNDING_BOX 結構體

在語音轉文字模型中,SDK 會透過此欄位帶出語音辨識結果相關資料,AI 引擎會在這個結構體中透過 fFeatureVectors 參數將語音辨識結果供我們提取!

撰寫核心程式碼

請開啟您的專案,我們將進行關鍵的微調:

新增字幕顯示介面 ( QLabel )

因為這次的結果是「文字字幕」,請打開您的  mainwindow.ui,在畫面下方新增一個 QLabel 元件,並將其命名為 label_audio_info ,用來專門顯示語音辨識的英文結果。


image.png

 

接著,為了讓全域的 Callback 能夠安全地修改 UI,我們需要在 mainwindow.h 中宣告一個公開的專屬函式:


image.png

 

並在 mainwindow.cpp 中實作它,邏輯非常單純,就是把收到的字串設定給標籤:


image.png


綁定 SDK 原生畫面渲染

在前面的章節中,為了在畫面上畫出 AI 追蹤框,我們必須將原始影像攔截下來,並大費周章地轉為 OpenCV 格式 (cv::Mat) 再用 QPainter 繪出。但在本章節中,因為我們只針對「聲音」進行辨識,影像的部分不需要加工,所以我們可以直接利用 RTSP Client API 的原生功能,把 UI 的顯示窗口綁定給 SDK,讓它自動幫我們播放畫面!這將大幅簡化我們的程式碼。


image.png


宣告音訊資訊變數

 

image.png
 

image.png
 

模型載入與註冊 Callback
 


 

在 Audio Callback 中餵入聲音

找到 on_audio_decoder_broadcast_client_callback 函式,利用 QDEEP_SET_AUDIO_OBJECT_DETECT_UNCOMPRESSION_BUFFER_EX ,把攔截到的 PCM 聲音數據 (pFrameBuffer) 、聲道數、取樣率等參數餵給 AI 引擎。然後在註冊函式中專屬的回呼函示內取得語音辨識結果,並傳給 Qlabel 進行顯示結果;但如果沒有開啟 AI 功能的時候,label_audio_info 就會顯示預設的字串。

image.png
 

在 callback 取出辨識結果並更新 QLabel
 

image.png
 

最終驗證

準備好迎接您的第一個 AI 英文聽寫助理了嗎!現在,請按下左下角的 「Build and RUN」 執行專案:

1. 輸入一段具有「英文人聲說話」音軌的影片 RTSP 網址,點擊 START RECEIVER 開始接收串流。

    這時候畫面會由 SDK 自動且流暢地直接繪製在 UI 上!

2. 點擊  START DETECTION 啟動 AI 語音分析引擎。
 

image.png
 

➤ 溫馨小叮嚀 ( 非常重要 ) : 在您第一次開啟軟體的瞬間,介面可能會需要稍等一下才會顯示。模型在首次執行時必須進行初始化配置,將龐大的神經網路權重與語音字典載入到 GPU 中。只要軟體成功開啟,代表 AI 大腦已經準備就緒!後續開啟就不需要這個等待時間了!

➤ 測試結果 : 當畫面中的人物開始說英文時,您將會看到非常流暢的轉錄體驗: 在軟體介面下方的 QLabel 區塊中,會即時顯示出「Audio Transcribe Result:」,並隨著人物的語句動態浮現出對應的英文字幕! 例如:當影片中的角色說出:"But shorts and flip-flops are not entirely welcome." ,介面下方就會完美捕捉並精準顯示這段原汁原味的英文對話!

Copyright © 2026 YUAN High-Tech Development Co., Ltd.
All rights reserved.