Picovoice/rhino
On-device Speech-to-Intent engine powered by deep learning
Rhino – 온디바이스 Speech-to-Intent 엔진
개요 – 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을 통해 자신만의 컨텍스트 (intent/slot)를 생성할 수 있습니다.
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()를 호출하여 intent를 가져옵니다.
Links
- Interactive web demo
- Picovoice Console (create contexts)
- Benchmark comparison
- SDK package pages (PyPI, Maven, npm, NuGet, CocoaPods, Pub, etc.)
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트