avs-device-sdk/extension/avs-weakup-sdk/docs/general-architecture.html

1463 lines
34 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="shortcut icon" href="resources/images/alexa-favicon-02.png">
<meta name="generator" content="mkdocs-1.1.2, mkdocs-material-6.0.2">
<title>General Architecture - Amazon Wake Word Engine</title>
<link rel="stylesheet" href="assets/stylesheets/main.38780c08.min.css">
<link rel="stylesheet" href="assets/stylesheets/palette.3f72e892.min.css">
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
<link rel="stylesheet" href="resources/stylesheets/extra.css">
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="" data-md-color-accent="">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#general-architecture" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid" aria-label="Header">
<a href="." title="Amazon Wake Word Engine" class="md-header-nav__button md-logo" aria-label="Amazon Wake Word Engine">
<img src="resources/images/logo-alexa-blue-ring.png" alt="logo">
</a>
<label class="md-header-nav__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
</label>
<div class="md-header-nav__title" data-md-component="header-title">
<div class="md-header-nav__ellipsis">
<span class="md-header-nav__topic md-ellipsis">
Amazon Wake Word Engine
</span>
<span class="md-header-nav__topic md-ellipsis">
General Architecture
</span>
</div>
</div>
<label class="md-header-nav__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active">
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</label>
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs md-tabs--active" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="index.html" class="md-tabs__link md-tabs__link--active">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="getting-started/api-samples/index.html" class="md-tabs__link">
Getting Started
</a>
</li>
<li class="md-tabs__item">
<a href="features/wakeword/overview.html" class="md-tabs__link">
Features
</a>
</li>
<li class="md-tabs__item">
<a href="avs-device-sdk/index.html" class="md-tabs__link">
AVS Device SDK
</a>
</li>
<li class="md-tabs__item">
<a href="api-reference/index.html" class="md-tabs__link">
API Reference
</a>
</li>
<li class="md-tabs__item">
<a href="support/getting-help.html" class="md-tabs__link">
Support
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="." title="Amazon Wake Word Engine" class="md-nav__button md-logo" aria-label="Amazon Wake Word Engine">
<img src="resources/images/logo-alexa-blue-ring.png" alt="logo">
</a>
Amazon Wake Word Engine
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-1" type="checkbox" id="nav-1" checked>
<label class="md-nav__link" for="nav-1">
Home
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Home" data-md-level="1">
<label class="md-nav__title" for="nav-1">
<span class="md-nav__icon md-icon"></span>
Home
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="index.html" class="md-nav__link">
Welcome
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
General Architecture
<span class="md-nav__icon md-icon"></span>
</label>
<a href="general-architecture.html" class="md-nav__link md-nav__link--active">
General Architecture
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#overall-operation" class="md-nav__link">
Overall Operation
</a>
</li>
<li class="md-nav__item">
<a href="#v2-api-callbacks" class="md-nav__link">
v2 API Callbacks
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="api-versions-features.html" class="md-nav__link">
API Versions & Features
</a>
</li>
<li class="md-nav__item">
<a href="wrappers-sdk-integrations.html" class="md-nav__link">
Wrappers & SDK Integrations
</a>
</li>
<li class="md-nav__item">
<a href="supported-architectures.html" class="md-nav__link">
Supported Architectures
</a>
</li>
<li class="md-nav__item">
<a href="release-history.html" class="md-nav__link">
Release History
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
<label class="md-nav__link" for="nav-2">
Getting Started
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Getting Started" data-md-level="1">
<label class="md-nav__title" for="nav-2">
<span class="md-nav__icon md-icon"></span>
Getting Started
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-2-1" type="checkbox" id="nav-2-1">
<label class="md-nav__link" for="nav-2-1">
API Usage Samples
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="API Usage Samples" data-md-level="2">
<label class="md-nav__title" for="nav-2-1">
<span class="md-nav__icon md-icon"></span>
API Usage Samples
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="getting-started/api-samples/index.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="getting-started/api-samples/api-sample-v1.html" class="md-nav__link">
API v1
</a>
</li>
<li class="md-nav__item">
<a href="getting-started/api-samples/api-sample-v2.html" class="md-nav__link">
API v2
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="getting-started/release-contents/index.html" class="md-nav__link">
Release Contents
</a>
</li>
<li class="md-nav__item">
<a href="getting-started/model-selection.html" class="md-nav__link">
Model Selection
</a>
</li>
<li class="md-nav__item">
<a href="getting-started/filesim.html" class="md-nav__link">
File Simulators
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
<label class="md-nav__link" for="nav-3">
Features
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Features" data-md-level="1">
<label class="md-nav__title" for="nav-3">
<span class="md-nav__icon md-icon"></span>
Features
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-1" type="checkbox" id="nav-3-1">
<label class="md-nav__link" for="nav-3-1">
Wake Word
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Wake Word" data-md-level="2">
<label class="md-nav__title" for="nav-3-1">
<span class="md-nav__icon md-icon"></span>
Wake Word
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wakeword/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/performance.html" class="md-nav__link">
Wake Word Performance
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/detection-threshold.html" class="md-nav__link">
Detection Threshold
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-1-4" type="checkbox" id="nav-3-1-4">
<label class="md-nav__link" for="nav-3-1-4">
Media Wake Suppression
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Media Wake Suppression" data-md-level="3">
<label class="md-nav__title" for="nav-3-1-4">
<span class="md-nav__icon md-icon"></span>
Media Wake Suppression
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wakeword/media-wakes/media-wakes.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-1-4-2" type="checkbox" id="nav-3-1-4-2">
<label class="md-nav__link" for="nav-3-1-4-2">
Fingerprinting
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Fingerprinting" data-md-level="4">
<label class="md-nav__title" for="nav-3-1-4-2">
<span class="md-nav__icon md-icon"></span>
Fingerprinting
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wakeword/media-wakes/fingerprinting/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/media-wakes/fingerprinting/integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-1-4-3" type="checkbox" id="nav-3-1-4-3">
<label class="md-nav__link" for="nav-3-1-4-3">
Watermarking
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Watermarking" data-md-level="4">
<label class="md-nav__title" for="nav-3-1-4-3">
<span class="md-nav__icon md-icon"></span>
Watermarking
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wakeword/media-wakes/watermarking/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/media-wakes/watermarking/integration.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="features/wakeword/self-wake/self-wake-overview.html" class="md-nav__link">
Self-Wake Suppression
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-1-6" type="checkbox" id="nav-3-1-6">
<label class="md-nav__link" for="nav-3-1-6">
Pre-roll
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Pre-roll" data-md-level="3">
<label class="md-nav__title" for="nav-3-1-6">
<span class="md-nav__icon md-icon"></span>
Pre-roll
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wakeword/preroll/preroll-overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/preroll/preroll-integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="features/wakeword/cascade-mode.html" class="md-nav__link">
Cascade Mode
</a>
</li>
<li class="md-nav__item">
<a href="features/wakeword/client-properties.html" class="md-nav__link">
Client Properties
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-2" type="checkbox" id="nav-3-2">
<label class="md-nav__link" for="nav-3-2">
Diagnostic Information (WWDI)
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Diagnostic Information (WWDI)" data-md-level="2">
<label class="md-nav__title" for="nav-3-2">
<span class="md-nav__icon md-icon"></span>
Diagnostic Information (WWDI)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/wwdi/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/wwdi/integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-3" type="checkbox" id="nav-3-3">
<label class="md-nav__link" for="nav-3-3">
Standalone Voice Activity Detection (VAD)
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Standalone Voice Activity Detection (VAD)" data-md-level="2">
<label class="md-nav__title" for="nav-3-3">
<span class="md-nav__icon md-icon"></span>
Standalone Voice Activity Detection (VAD)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/vad/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-3-2" type="checkbox" id="nav-3-3-2">
<label class="md-nav__link" for="nav-3-3-2">
Energy Detection
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Energy Detection" data-md-level="3">
<label class="md-nav__title" for="nav-3-3-2">
<span class="md-nav__icon md-icon"></span>
Energy Detection
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/vad/energydetection/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/vad/energydetection/integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-4" type="checkbox" id="nav-3-4">
<label class="md-nav__link" for="nav-3-4">
Device Artifact Vending Service (DAVS)
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Device Artifact Vending Service (DAVS)" data-md-level="2">
<label class="md-nav__title" for="nav-3-4">
<span class="md-nav__icon md-icon"></span>
Device Artifact Vending Service (DAVS)
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="features/davs/overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="features/davs/integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
<li class="md-nav__item">
<a href="features/davs/davs-filters.html" class="md-nav__link">
DAVS filters in wakeword engine package
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
<label class="md-nav__link" for="nav-4">
AVS Device SDK
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="AVS Device SDK" data-md-level="1">
<label class="md-nav__title" for="nav-4">
<span class="md-nav__icon md-icon"></span>
AVS Device SDK
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="avs-device-sdk/index.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="avs-device-sdk/integration-guide.html" class="md-nav__link">
Integration Guide
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
<label class="md-nav__link" for="nav-5">
API Reference
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="API Reference" data-md-level="1">
<label class="md-nav__title" for="nav-5">
<span class="md-nav__icon md-icon"></span>
API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="api-reference/index.html" class="md-nav__link">
API Reference
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-2" type="checkbox" id="nav-5-2">
<label class="md-nav__link" for="nav-5-2">
Wrappers
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Wrappers" data-md-level="2">
<label class="md-nav__title" for="nav-5-2">
<span class="md-nav__icon md-icon"></span>
Wrappers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-2-1" type="checkbox" id="nav-5-2-1">
<label class="md-nav__link" for="nav-5-2-1">
Java
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Java" data-md-level="3">
<label class="md-nav__title" for="nav-5-2-1">
<span class="md-nav__icon md-icon"></span>
Java
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="api-reference/wrappers/java/java-binding-overview.html" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="api-reference/wrappers/java/java-binding-reference.html" class="md-nav__link">
Reference
</a>
</li>
<li class="md-nav__item">
<a href="api-reference/wrappers/java/java-binding-engine-reference.html" class="md-nav__link">
Engine API
</a>
</li>
<li class="md-nav__item">
<a href="api-reference/wrappers/java/java-binding-wake-word-reference.html" class="md-nav__link">
Wake Word API
</a>
</li>
<li class="md-nav__item">
<a href="api-reference/wrappers/java/java-binding-fingerprinting-reference.html" class="md-nav__link">
Fingerprinting API
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="api-reference/wrappers/swift/index.html" class="md-nav__link">
Swift
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
<label class="md-nav__link" for="nav-6">
Support
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Support" data-md-level="1">
<label class="md-nav__title" for="nav-6">
<span class="md-nav__icon md-icon"></span>
Support
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="support/getting-help.html" class="md-nav__link">
Getting Help
</a>
</li>
<li class="md-nav__item">
<a href="support/faq/index.html" class="md-nav__link">
FAQ
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#overall-operation" class="md-nav__link">
Overall Operation
</a>
</li>
<li class="md-nav__item">
<a href="#v2-api-callbacks" class="md-nav__link">
v2 API Callbacks
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<h1 id="general-architecture">General Architecture</h1>
<h2 id="overall-operation">Overall Operation</h2>
<p>The following diagram illustrates the general operation of the Wake Word Engine inside an application:</p>
<p><img alt="ww-overview" class="center" src="general_architecture.assets/ww-overview.png" /></p>
<ol>
<li>
<p>During an initialization phase, the application loads the Wake Word <a href="features/wakeword/overview.html#wakeword-models">Model</a> into memory. It then passes the model, along with configuration parameters to the engine. The engine stores a reference to this model memory to use during its processing, so it needs to remain persistent throughout the lifetime of the application.</p>
</li>
<li>
<p>The application queries the engine for the size of scratch memory needed to run the loaded model. It allocates the required amount and completes the initialization.</p>
</li>
<li>
<p>The application then runs a continuous loop, feeding 16kHz audio samples into the engine, 10ms (160 samples) at a time. <img alt="Overall Architecture" class="center" src="general_architecture.assets/overall_architecture.png" /></p>
</li>
<li>
<p>When a wake word is detected, or any other event such as VAD or events generated from other components, the engine calls an event handling callback (registered during initialization).</p>
</li>
</ol>
<p>Wake Word detection events will trigger a callback after all audio containing the wake word has been passed in, as illustrated in the waveform / timeline below.</p>
<p><img alt="Data Flow" class="center" src="general_architecture.assets/WakewordEventTimeline.png" /></p>
<h2 id="v2-api-callbacks">v2 API Callbacks</h2>
<p>The v2 API uses a single callback function to pass back all supported event types. The top level PryonLiteV2Event structure has pointers to payloads for all supported event types. When an event is triggered pointers to valid payloads will be set and pointers to payloads not applicable to the event will be NULL. See the API sample code for an example of how to handle events.
<img alt="V2 Events" class="center" src="general_architecture.assets/V2_events.png" /></p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid" aria-label="Footer">
<a href="index.html" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-footer-nav__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</div>
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Welcome
</div>
</div>
</a>
<a href="api-versions-features.html" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
API Versions & Features
</div>
</div>
<div class="md-footer-nav__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
AMAZON CONFIDENTIAL. Copyright &copy; 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<script src="assets/javascripts/vendor.77e55a48.min.js"></script>
<script src="assets/javascripts/bundle.9554a270.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing"}</script>
<script src="https://unpkg.com/iframe-worker/polyfill"></script>
<script src="search/search_index.js"></script>
<script>
app = initialize({
base: ".",
features: ['navigation.tabs', 'navigation.expand'],
search: Object.assign({
worker: "assets/javascripts/worker/search.4ac00218.min.js"
}, typeof search !== "undefined" && search)
})
</script>
<script src="resources/javascripts/MathJax.min.js"></script>
</body>
</html>