Build always-listening yet private voice applications
Train production-ready models in seconds
Start Building for FreeWork with an expertPicovoice is a leader in the field of wake word detection. We are extremely impressed with how easy it is to get a wake word and how well it performs. We have tried other alternatives, but they do not perform as well.
Train branded wake words and always-listening custom voice commands on Picovoice Console, no machine learning or coding skills required. Type the phrase to train a production-grade keyword model in seconds. Test instantly within your browser.
Start BuildingReduce time-to-market and eliminate engineering risks with the Picovoice SDK of your choice, including Python, Flutter and React. Add only a few lines of code, and let Picovoice SDK take care of audio capture and voice recognition.
o = pvporcupine.create(access_key=access_key,keyword_paths=keyword_paths)while True:keyword_index =o.process(audio_frame())if keyword_index >= 0:// Detection callbackBuild with Python
let o = new Porcupine(accessKey,keywordPaths,sensitivities);while (true) {let keywordIndex =o.process(audioFrame());if (keywordIndex >= 0) {// Detection callback}}Build with NodeJS
PorcupineManagerCallbackcallback =new PorcupineManagerCallback() {@Overridepublic voidinvoke(int keywordIndex) {// Detection callback}}PorcupineManager o =new PorcupineManager.Builder().setAccessKey(accessKey).setKeywordPath(keywordPath).build(appContext,callback);o.start()Build with Android
let o = try PorcupineManager(accessKey,keywordPath: keywordPath,onDetection: { keywordIndex in// Detection callback})try o.start()Build with iOS
const {keywordDetection,isLoaded,isListening,error,init,start,stop,release,} = usePorcupine();init(accessKey,keywords,model);useEffect(() => {if (keywordDetection !== null) {// Keyword detection}}, [keywordDetection])Build with React
PorcupineManager o =await PorcupineManager.fromKeywordPaths(accessKey,keywordPaths,(keywordIndex) => {// Detection callback});await o.start()Build with Flutter
let o = await PorcupineManager.fromKeywordPaths(accessKey,keywordPaths,(keywordIndex) => {// Detection callback});await o.start()Build with React Native
PorcupineManager o =PorcupineManager.FromKeywordPaths(accessKey,keywordPaths,(keywordIndex) => {// Detection callback});o.start();Build with Unity
constructor(private o: PorcupineService) {this.keywordSubscription =o.keywordDetection$.subscribe(d => {// Detection callback})}async ngOnInit() {await this.o.init(accessKey,keywords,model)}Build with Angular
{data() {const {state,init,start,stop,release} = usePorcupine();init(accessKey,keywords,model);return {s: state,start,stop,release}},watch: {"s.keywordDetection":function (o) {if (o !== null) {// Detection callback}}}}Build with Vue
Porcupine o =Porcupine.FromKeywordPaths(accessKey,keywordPaths);while (true){int keywordIndex =o.Process(Audio());if (keywordIndex >= 0){// Detection callback}}Build with .NET
Porcupine o =new Porcupine.Builder().setAccessKey(accessKey).setKeywordPath(keywordPath).build();while (true) {int keywordIndex =o.process(audioFrame());if (keywordIndex >= 0) {// Detection callback}}Build with Java
o := Porcupine{AccessKey: accessKey,KeywordPaths: keywordPaths}o.Init()for {keywordIndex, err :=o.Process(AudioFrame())if keywordIndex >= 0 {// Detection callback}}Build with Go
let o: Porcupine =PorcupineBuilder::new_with_keyword_paths(keyword_paths).init().expect("");loop {if let Ok(keyword_index) =o.process(&audio_frame()) {if keyword_index >= 0 {// Detection callback}}}Build with Rust
pv_porcupine_t *porcupine = NULL;pv_porcupine_init(access_key,model_path,num_keywords,keyword_paths,&sensitivities,&porcupine);while (true) {pv_porcupine_process(porcupine,audio_frame(),&keyword_index);if (keyword_index >= 0) {// Detection callback}}Build with C
Elevate user experience across all channels while remaining platform agnostic. Add always-listening custom voice commands and wake words to your existing platforms without worrying about future expansions.
Grow user engagement with unlimited voice interactions without worrying about unbounded API costs. Scale globally with Picovoice’s multilingual support for English, French, German, Italian, Japanese, Korean, Portuguese, Spanish, and more.
Start with the Free TierEnglish
German
Deutsch
Spanish
Español
French
Français
Italian
Italiano
Japanese
日本語
Korean
한국어
Portuguese
Português
Mandarin
普通话
Dutch
Nederlands
Russian
Русский
Hindi
हिन्दी
Polish
Język polski
Vietnamese
Tiếng Việt
Swedish
Svenska
Arabic
اَلْعَرَبِيَّةُ
When it comes to accuracy, make a decision based on data, not claims. Every voice AI vendor claims their technology is “revolutionary” and has “the highest wake word response accuracy”, with no rigorous or reproducible scientific proof. Instead, we published an open-source wake word benchmark to back that Porcupine functions robustly across various accents and in the presence of noise and reverberations.
Always-listening keyword spotting requires voice data to be processed on-device. Otherwise, it risks user privacy, drains the battery, incurs unbounded costs, and gives a poor user experience. Porcupine always processes voice data offline, even within your browser. Go to the Lamp Demo and turn off the internet connection. It keeps working, right?
Porcupine Wake Word Engine can detect many keywords and phrases concurrently with no added CPU footprint, even in many languages.
Try the Smart Lamp demo that contains 24 wake words from eight different languages. The demo works within the web browser and detects multiple wake words.
Add voice for truly hands-free search experiences on the websites, mobile applications and devices.
Search By VoiceAdd voice search to mobile applications, websites, and devices. Find keywords and phrases in audio, video, and streams.
Voice SearchTransformative customer and employee experience with speech analytics and intelligence tools powered by the only end-to-end Voice AI platform.
Speech AnalyticsAdd voice commands to devices, mobile or web applications to elevate user experience.
Voice CommandA wake word is a special phrase that activates dormant applications. For example, most known wake words “Alexa”, “Hey Siri” and “Hey Google” activate Amazon Echo, Apple devices such as Homepods, iPhones, and Macbooks, and Google devices such as Chromecast and Pixel. Wake Words and "trigger words" , “hotwords” or “wake up words” are used interchangeably.
Wake word detection is one of the applications of Keyword Spotting (KWS) technology. It detects (spots) keywords and phrases in audio streams and conversations. It’s mainly used for voice activation, in other words, to activate dormant devices and applications (i.e. wakes them up). There is no difference between Hotword, Hot Word, Trigger Word, Wake Word, and Wake-Up Word. For example, Picovoice’s wake word engine, Porcupine, is used by NASA for several projects. In one project, NASA calls it Hot Word Recognition and in another, Wake Word Detection. Google predominantly uses Hotword Detection.
A wake word detection engine is a binary classifier that recognizes pre-defined phrases. During training, the detector learns the desired wake word vs. others and how to differentiate chosen keywords from others. Wake word detection should run locally on the device to achieve affordable, power-efficient and private hands-free voice experiences. Wake Word Detection engines listen to conversations in the environment. Thus it has to be resource-efficient and fast. That’s why using other solutions, such as automatic speech recognition for wake word detection, is not a good idea.
If you haven’t, try the Smart Lamp demo offline. Turn off your internet connection before running the demo. Porcupine Wake Word Detection processes voice data within the web browser and can detect multiple wake words in many languages.
The performance of the wake word depends on several factors, including the number of phonemes, vowels, and syllables. For more information, check out the guide on choosing a wake word.
Picovoice doesn’t rely on nor gathers customer data, thanks to transfer and self-supervised learning algorithms in Porcupine. Design on your terms without worrying about time-to-market, cost, and governance.
Wake word detection ensures privacy, reliability and zero latency of voice-activated products. While the most common use case is activating dormant applications, wake word detection engines enable other use cases, such as moderation and monitoring. Don’t forget to check out Voice Search, Voice Commands and Control, Search by Voice and Speech Analytics use cases to learn more about various voice AI applications.
Picovoice docs, blogs, Medium posts, and GitHub are great resources to learn about voice recognition, Picovoice engines, and how to start building voice-activated products. Picovoice also offers GitHub community support to all Free Tier users.
Porcupine Wake Word Engine empowers developers to train any wake word of choice and always-listening custom commands that could work with Alexa-enabled applications and Google Assistant. Technically, “Jarvis” or other phrases can be created and used to change “Alexa” and “Hey Google” wake words. After training custom wake words to change Alexa and “Ok Google” engage with Amazon and Google for certification and integration processes.
Training a custom wake word with Porcupine Wake Word Detection takes less than a minute and it is free. Unlike other vendors, Picovoice does not require prior commercial engagement for enterprise-grade wake words.Train your custom wake word now!
Comparing hotword, trigger word, wake word or wake-up word models the right way is complex. Learn more about the terms, such as FAR, FRR and ROC, used in evaluations and use the open-source benchmark whether your vendor calls it hotword, trigger word, wake word or wake-up word.
Engage with Picovoice Sales by providing details about the opportunity, including use cases, requirements, and project details. Someone from the Picovoice team will respond to you.
Version changes appear in the Picovoice Newsletter, LinkedIn, and Twitter. Subscribing to GitHub is the best way to get notified of the patch releases. If you enjoy building with Porcupine, don’t forget to give it a star when you’re on GitHub !