Picovoice/rhino
On-device Speech-to-Intent engine powered by deep learning
Rhino – デバイス上での音声から意図を抽出するエンジン
概要 – Rhinoは、話されたコマンドをリアルタイムで構造化された intents(意図)と slots(スロット、キー・バリュー・ペア)に変換する、軽量なデバイス上でのエンジンです。マイクロコントローラ(Arm Cortex‑M, STM32, Arduino)からスマートフォン、デスクトップ、ブラウザまで、幅広いハードウェア上でローカルに動作するため、クラウド接続は不要です。
仕組み – 開発者はPicovoiceのConsoleを使用して、context(コンテキスト、音声コマンドのセット)を定義します。各コマンドは、slots(例: $size:beverageSize)を含むことができる expression(式)です。実世界のオーディオで学習されたRhinoのディープニューラルネットワークモデルは、マイクのストリームを聴取し、コマンドが話されたことを検知し、以下のようなJSON形式の推論結果を返します。
{
"isUnderstood": true,
"intent": "orderBeverage",
"slots": {"beverage": "espresso", "size": "small", "numberOfShots": "2"}
}
発話内容がコンテキストに一致しない場合、isUnderstood は false になります。
READMEからの主な機能
- コンパクトで効率的 – CPU/メモリが限られたIoTデバイス向けに設計されています。
- クロスプラットフォーム – 以下のプラットフォームで動作します:
- 組み込み (Arm Cortex‑M, STM32, Arduino)
- Raspberry Pi
- Android / iOS
- Webブラウザ (Chrome, Safari, Firefox, Edge) via WebAssembly
- デスクトップOS (Linux, macOS, Windows)
- 多言語対応 – English, Chinese, French, German, Italian, Japanese, Korean, Portuguese, Spanish; 商用利用では追加の言語が利用可能です。
- セルフサービスによるカスタマイズ – ユーザーはPicovoice Consoleを通じて、独自のコンテキスト(意図/スロット)を作成できます。
- SDKs – Python, .NET, Java, Flutter, React Native, Android, iOS, Web (vanilla JS & React), Node.js, C 用の即戦力となるバインディングを提供しています。
- デモアプリ – サポートされているすべての言語とプラットフォームにおける、マイクまたはファイル入力のサンプルプログラムを提供しています。
- パフォーマンス – 主要なクラウドサービスと比較してベンチマークを行っています(詳細は、リンクされたベンチマークリポジトリを参照してください)。
典型的なユースケース – 音声制御可能なスマートホームデバイス、家電、ウェアラブル、または、クラウドに音声を送信せずに、限られた固定のコマンドセットをローカルで認識させる必要があるあらゆるアプリケーション。
はじめに – 使用する言語のSDKをインストール(例: pip install pvrhino (Python用))、Picovoice Consoleから AccessKey を取得し、コンテキストファイルをロードし、16-bit PCM audio frames を process() に入力します。process() が true を返したとき、get_inference() を呼び出して意図を抽出します。
Links
- Interactive web demo
- Picovoice Console (create contexts)
- Benchmark comparison
- SDK package pages (PyPI, Maven, npm, NuGet, CocoaPods, Pub, etc.)
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト