嗨,超級認真⼯程師夥伴們,今天要帶你們開箱實戰 Kymera Stream Probe(KSP)錄製與診斷 DSP ⾳訊串流的利器!
KSP 是⾼通在 ADK 平台專為 Kymera DSP audio graph 設計的數據監控、錄製與驗證⼯具。本⽂將以 QCC30xx/51xx/518x等系列晶⽚,從韌體配置、KSP 實作、錄⾳流程、Graph 架構、ACAT 串流視覺化,完整講解如何⾼效應⽤ KSP 於藍⽛⽿機⾳訊串流錄製與除錯,並附常⽤腳本與⼯程註解,供超認真⼯程師參考。
A. 什麼是 KSP
1. KSP(Kymera Stream Probe)是⾼通 Kymera 架構下的專業「⾳訊串流擷取與分析」⼯具。
2. 可在 DSP 實際運⾏時,擷取指定處理節點(如 EQ、ANC、AEC、解碼器等)的原始⾳訊資料。這些錄製下來的資料有助於分析⾳質、質、找出問題源、驗證演算法或做 A/B 測試。
B. KSP 的基本原理
1. KSP 透過與開發板的 TRB (建議USB3.0) 連接,讀取 DSP 內部 Graph 中⽬標 Transform Buffer 的數據。
2. 開發者可指定要抓取哪⼀段 Stream 與 Channel,由 KSP ⼯具將這些資料錄製成原始⾳訊檔案(RAW/WAV),供離線分析。
C. 安裝與環境需求
1. 硬體/韌體
-. ⽀援 KSP 的 Qualcomm 晶⽚(如 QCC512x/514x/517x/518x 等)
-. ADK 開發板與 ACAT ⼯具
-. TRB 連接器(強烈建議 USB3.0)
2. 軟體環境
-. 建議於獨⽴ Python 3.7.4 虛擬環境中安裝 KSP
-. 完整 ADK Toolchain
D. 韌體/專案配置
1. KSP downloadable 路徑範例:
-. audio\qcc518x_qcc308x\kalimba_ROM_14612\kymera\prebuilt_dkcs\maor_rom_release\download_ksp.edkcs
2. KSP韌體/專案配置:
-. 於 ro\_fs 專案掛載 download\_ksp.edkcs
-. 在 `headset\src\headset_setup_audio.c` 加⼊ KSP downloadable
E. KSP 錄製實作流程
1. 查找 Transform IDs
- 使⽤ ACAT ⼯具連接⽬標裝置。
- 透過 ACAT 的 stream.create_graph_img() 取得 Audio Graph 各節點的 Transform ID。
- 選定要抓取的 node,記下其 ID。
2. 啟動虛擬環境與 KSP
-. c:\...>c:\qtil\ADK_Toolkit_1.2.21.13_x64\activate.bat
-. ATK...>ksp --version
3. 連接設備並設定錄製參數
-. ATK...>ksp.exe trb:scar -f <workspace_path>
-. ATK>config_stream 0
-. Processor [0]: 0
-. Data Type: PCM32
-. Transform IDs (Space separated IDs): 0x1c14
-. Samples [0]:
-. Sample Rate [0]:
-. Buffer Size [0]:
-. KSP> set_output_filename <your_filename>
-. KSP> start
4. 按 Enter 結束錄製,raw 檔⾃動存於當前路徑。
5. 會⾃動輸出錄製結果、資料筆數、通道數、檔案名稱。
結語
KSP 是⾼通 DSP ⾳訊開發⼯程師深⼊分析訊號流的必備⼯具。
善⽤ KSP 不僅能⼤幅提升 Debug 效率,也有助於⾳訊品質優化與演算法快速驗證。
⾯對愈趨複雜的⾳訊應⽤場景,熟練 KSP 操作,將為你的專案開發與維護增添極⼤助⼒!
[Q & A]
Q1: KSP錄製的最⼤stream和channel數是多少?
A1: 最多 2 個 stream,每個 stream 最多 4 個 channel,且所有 channel 必須同步。
Q2: 哪些情況下會需要⽤KSP來除錯?
A2: 當遇到⾳質異常、雜⾳、⾳效不如預期、演算法驗證、跨部⾨協作,或需擷取 DSP 內部資料做深⼊分析時。
Q3: KSP能抓取哪些資料?
A3: 可擷取 DSP graph 中指定 transform buffer 的資料,包括 PCM、DATA16/32 格式,適⽤於⾳訊通道、原始解碼資料或演算法中間結果。
Q4: 怎麼找到要錄製的Transform ID?
A4: ⽤ ACAT ⼯具連線⽬標裝置,執⾏ stream.create_graph_img() 或 stream.analyse_transforms() 指令,並從graphviz產⽣的圖或列表中取得Transform ID。
Q5: KSP錄製檔案格式是什麼?要怎麼轉成WAV?
A5: KSP錄製下來的檔案是.lrw(raw data),可⽤ksp_extract.exe⼯具轉出WAV/RAW檔,需正確指定sample rate與channel。
參考來源