← 群組語音與訊息
開發者 — DECT NR+ 上位機 Python 原始碼(開發中)

打造屬於你的對講機,
從裝置到手機 App。

Talk 是一套附完整 Python 原始碼的 DECT NR+ 對講機與訊息程式。把無線電接上電腦的 USB,就有群組頻道、點對點語音、文字訊息、網路成員清單與入網離網,語音與訊息都以群組金鑰在 App 內加密;也能像手機 App 一樣,透過 Bluetooth LE 連到 BANFi 的 BFi91XTD 閘道。原始碼全部給你——改介面、加功能、換上你的品牌,或照著藍牙範例做成 iOS、Android App,做出屬於你自己的對講機裝置與應用。

Talk 的網路分頁:九台無線電的樹狀結構與入網表單
Talk 的「網路」分頁:每台無線電、誰經由誰連到匯聚點(範例 ID)
工廠裡拿著手持無線電的工作人員工廠與大型場域的團隊
Python 3附完整原始碼與範例
USB 或藍牙USB 無線電,或 Bluetooth LE 閘道
在 App 內加密中繼與匯聚點只轉送讀不懂的封包
9 台實測五跳台架網路上量測
程式包內容

一個可以直接用的 App,加上自己做 App 的程式碼。

Talk,應用程式

  • 群組頻道:按住說話,所有收聽者都聽得到
  • 對相鄰無線電的點對點語音
  • 文字訊息給所有人,或給單一無線電
  • 找出網路裡的無線電;加入、離開與重新加入網路

不含視窗的引擎

Talk 分成三層,每一層都能單獨使用:視窗、處理語音/訊息/群組頻道的引擎,以及透過無線電主機介面的網路控制。把引擎當作你自己 DECT NR+ 上位機軟體的起點——在電腦、閘道或嵌入式 Linux 板上都可以。

透過閘道使用

  • 像手機 App 一樣,透過 Bluetooth LE 連到 BFi91XTD 閘道
  • 群組頻道與訊息和 USB 用法相同
  • 點對點變成通話:撥號、對方接聽、掛斷
  • 加入或離開網路要按閘道的 Button 1 確認

閘道與開發板範例

透過 Bluetooth LE 閘道傳訊息、群組按講與一對一通話的範例程式——也就是 iOS、Android、Windows 或 macOS App 的範本;另有透過 USB 序列埠操作開發板的範例。

在 App 內加密

AES-128 加上完整性碼,金鑰是只有 App 持有的群組金鑰。中繼與匯聚點負責轉送,但讀不懂內容;每個接收端都會拒收已經收過的封包。

實際畫面

在我們九台無線電的台架網路上實際操作。

截圖以 Talk 的展示模式擷取,無線電 ID 都換成範例 ID。

Talk 的按講分頁:按住說話按鈕、群組頻道或單一無線電、通話清單
按講選群組頻道或單一無線電;清單列出每次通話與收到的封包數。
Talk 的訊息分頁:給所有人或單一無線電的訊息
訊息給所有人或單一無線電,以群組金鑰在 App 內加密。
Talk 的網路分頁:九台無線電的樹狀結構與入網表單
網路每台無線電、誰經由誰連到匯聚點;加入、離開與重新加入。
Talk 的紀錄分頁:連線、訊息與通話的時間紀錄
紀錄連線、通話、訊息與網路事件,可存檔附在支援請求裡。
Talk 透過 Bluetooth LE 連到閘道:點對點顯示撥號與掛斷
透過閘道同一個視窗透過 Bluetooth LE 連到閘道;點對點變成通話。
透過閘道看到的九台無線電樹狀結構
閘道看到的網路從閘道的 App 看九台無線電的樹狀結構。

按住說話

按住按鈕,對相鄰的 3 號機做點對點通話;通話清單記下送出 301 幀、12 秒。15 秒,無聲。

在五跳外聽到

一段群組通話從離匯聚點一跳的無線電發出,由五跳外的無線電用「存下聽到的內容」錄下:301 幀收到 240 幀,其餘由語音編解碼器補上。未經編輯。語音素材:公有領域 LibriVox 錄音 Confucian Analects(James Legge 英譯),朗讀者 Jing Li。

台架實測

九台無線電、五跳,全程加密,用 Talk 量測。

項目結果說明
找出無線電9 台中 9 台回應,3 次皆同3 秒內
群組頻道,發言者離匯聚點 1 跳301 幀收到 238–270 幀每次 12 秒;四台收聽端分在不同深度
群組頻道,發言者在 3 跳外301 幀收到 235–297 幀長距離語音模式
群組頻道,發言者在 5 跳外301 幀收到 237–301 幀長距離語音模式
點對點,對相鄰無線電301 幀全收;送出到收到中位數 40 ms彼此有自己鏈路的相鄰無線電;兩次通話
群組頻道,閘道上的藍牙 App ↔ USB 無線電301 幀分別收到 280 與 274 幀雙向各一次 12 秒通話
兩台閘道之間的通話邀請後 7.7 秒接通;301 幀全收雙方都正常掛斷
訊息給所有人4 台接收端各收到 20 則中的 20 則
跨 5 跳的直接訊息雙向各 20 則中的 20 則

條件:台架網路,Band 9(美國),九台無線電、五跳,鏈路加密開啟,語音與訊息在 App 內加密;2026-10-06。透過閘道的結果:群組與直接訊息雙向都送達。遺失的語音幀由語音編解碼器補上。群組頻道上,幀從送出到收到的中位數為 250–450 ms,這只是網路時間;Talk 另加 40 ms 封包框架與 120 ms 播放緩衝。未量測從嘴到耳的延遲。

需要什麼

一台無線電、一台電腦,加上 Python。

無線電搭載 DECT NR+ 韌體(協定堆疊由 FLSEMI 提供)的 Nordic Semiconductor nRF9151/nRF9131 裝置——向 BANFi 購買,或用你自己同樣韌體的板子。閘道範例使用 BANFi 的 BFi91XTD 閘道(在 Nordic Semiconductor Thingy:91 X 上執行)。
電腦Python 3.10 以上(含 Tk)、Opus 函式庫與 requirements.txt 列出的套件。已在 macOS(Apple silicon)測試;Windows 與 Linux 使用相同的函式庫,但尚未測試。
網路要有其他可以對話的無線電:更多執行 Talk 的電腦、搭配 App 的閘道,或兩者都有。其中一台無線電或閘道擔任網路的匯聚點。
取得原始碼

下載原始碼與繁體中文文件。

原始碼包解壓縮後,Talk 就以繁體中文介面開啟;程式包內含中英文 README。Talk 手冊與範例教學是繁體中文 PDF。有問題請洽 BANFi 技術窗口。

原始碼包ZIP · 約 3 MBTalk、USB 與藍牙引擎、網路控制、閘道與開發板範例、中英文 README下載 ↓
Talk 手冊PDF · 10 頁 · 繁體中文透過 USB 或閘道使用、加入網路、加密、自製上位機軟體、疑難排解下載 ↓
範例教學PDF · 8 頁 · 繁體中文每個範例逐步說明、網路上的資料格式、手機 App 移植要點下載 ↓

Nordic Semiconductor 與 Thingy:91 X 為 Nordic Semiconductor ASA 的商標;Bluetooth 為 Bluetooth SIG, Inc. 的商標;Python 為 Python Software Foundation 的商標;Opus 是由 IETF 標準化的開放音訊編解碼器。

下一步

打造你自己的 DECT NR+ 對講機或訊息產品?

從 Talk 開始,告訴我們你的使用者、裝置與 App,我們用同一套堆疊來做;要先買設備試用,也可以直接詢價。