Picovoice/rhino
On-device Speech-to-Intent engine powered by deep learning
什麼是 Rhino?
Rhino 是 Picovoice 的 語音轉意圖引擎。它監聽麥克風(或音訊檔案),在裝置上執行一個微型神經網路,並直接回傳結構化的意圖——使用者想要做什麼——以及任何提取出的變數(稱為 槽位)。例如,說出:
「我可以來一杯小杯雙份濃縮咖啡嗎?」
會產生如下結果:
{
"isUnderstood": true,
"intent": "orderBeverage",
"slots": {
"beverage": "espresso",
"size": "small",
"numberOfShots": "2"
}
}
為什麼重要
- 裝置端運行,低延遲 – 無需雲端往返,因此可離線運作並保護隱私。
- 極小的體積 – 專為微控制器(Cortex-M)、樹莓派、手機、瀏覽器和桌面作業系統設計。
- 可自訂 – 開發者可透過 Picovoice Console 建立自己的 上下文(命令集)。
- 跨平台 SDK – 提供 Python、.NET、Java、Flutter、React Native、Android、iOS、Web(JS)、Node.js 和純 C 的即用型函式庫。
它是如何運作的?
- 定義上下文 – 使用 YAML 檔案將使用者可能說出的 表達式(例如:「在 $location 的燈關掉」)對應到一個 意圖,並可選擇性地標記表達式中的部分為 槽位(變數)。範例:
turnLightOff: - 在 $location 的燈關掉。 - 訓練模型 – Picovoice 的雲端服務將上下文編譯為二進位檔(
*.rhn),其中嵌入了一個為該領域優化的微型神經網路。 - 執行推論 – SDK 加載二進位檔,逐幀處理 16 位 PCM 音訊。當語句結束時,回傳一個
Inference物件,包含is_understood、intent和slots字典。
快速入門(Python 範例)
# 安裝 SDK
pip3 install pvrhino
import pvrhino
access_key = "YOUR_ACCESS_KEY"
context_path = "/path/to/your/context.rhn"
rhino = pvrhino.create(access_key=access_key, context_path=context_path)
while True:
audio_frame = get_next_audio_frame() # 16 位 PCM,長度 = rhino.frame_length
if rhino.process(audio_frame): # 當語句完成時回傳 True
inf = rhino.get_inference()
if inf.is_understood:
print("意圖:", inf.intent)
print("槽位:", inf.slots)
else:
print("未理解")
rhino.delete() # 釋放原生資源
break
其他語言也遵循相同模式;每個 SDK 都公開 sample_rate、frame_length、process() 和 get_inference()。
哪裡可以試用?
- Web 示範 – 訪問 https://picovoice.ai/demos/barista/ 查看互動式咖啡師示範。
- 桌面/嵌入式示範 –
demo/資料夾中包含 C、Python、.NET、Java、Flutter、React Native、Android、iOS 和 Node.js 的預先建置範例,展示麥克風即時與檔案基礎推論兩種模式。 - 基準測試 – README 中連結的
speech-to-intent-benchmark可公開對比雲端服務表現。
適合誰?
- 需要始終監聽語音控制但不將音訊傳送到雲端的 物聯網/嵌入式裝置(智慧燈、咖啡機、恆溫器等)。
- 希望實現離線語音命令的 行動應用。
- 需要保護隱私的語音互動的 Web 應用。
- 希望透過 Picovoice Console 快速定義一組固定命令的 原型開發者。
限制
- 專為 特定、有限的詞彙(一個 上下文)優化。不是通用語音辨識器。
- 加載引擎需要 存取金鑰(試用免費,生產環境需商業授權)。
- 除列出的 9 種語言外,自訂語言支援僅對商業客戶開放。
快速參考連結
- GitHub 發布 – https://github.com/Picovoice/rhino/releases
- Picovoice Console(建立上下文) – https://console.picovoice.ai/
- SDK 文件 – 請參閱 README 中 SDKs 部分的語言特定章節。
- 套件管理器 – Maven、npm、NuGet、CocoaPods、Pub、PyPI 均提供對應的繫結。
TL;DR
Rhino 讓你嵌入一個微型、離線的神經網路,將語音命令轉換為結構化意圖。它可在從微控制器到瀏覽器的任何裝置上運作,你可透過簡單的 YAML 基礎控制台定義自己的命令集。如果你需要在固定領域內實現可靠、低延遲的語音控制,Rhino 是首選解決方案。
相關
- 專案
- 專案
- 專案
- 專案
- 專案