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 的即用型函式庫。

它是如何運作的?

  1. 定義上下文 – 使用 YAML 檔案將使用者可能說出的 表達式(例如:「在 $location 的燈關掉」)對應到一個 意圖,並可選擇性地標記表達式中的部分為 槽位(變數)。範例:
    turnLightOff:
      - 在 $location 的燈關掉。
    
  2. 訓練模型 – Picovoice 的雲端服務將上下文編譯為二進位檔(*.rhn),其中嵌入了一個為該領域優化的微型神經網路。
  3. 執行推論 – SDK 加載二進位檔,逐幀處理 16 位 PCM 音訊。當語句結束時,回傳一個 Inference 物件,包含 is_understoodintentslots 字典。

快速入門(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_rateframe_lengthprocess()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 種語言外,自訂語言支援僅對商業客戶開放。

快速參考連結


TL;DR

Rhino 讓你嵌入一個微型、離線的神經網路,將語音命令轉換為結構化意圖。它可在從微控制器到瀏覽器的任何裝置上運作,你可透過簡單的 YAML 基礎控制台定義自己的命令集。如果你需要在固定領域內實現可靠、低延遲的語音控制,Rhino 是首選解決方案。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案