Skip to content

Commit 56e6f40

Browse files
Merge pull request #17 from analyticsinmotion/development
Add "Choosing an Integration" page and update navigation links
2 parents 9eca9f5 + bf37691 commit 56e6f40

4 files changed

Lines changed: 207 additions & 0 deletions

File tree

docs/docs/nav.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
+ link('/docs/node/index.html', 'Getting Started')
3030
+ link('/docs/node/api-reference.html', 'API Reference')
3131
+ '<div class="sidebar-section-title" style="margin-top:12px">Integrations</div>'
32+
+ link('/docs/node/integrations/index.html', 'Choosing an Integration')
3233
+ '<div class="sidebar-sub">'
3334
+ '<div class="sidebar-section-title" style="font-size:10px;letter-spacing:1px">Sherpa-ONNX</div>'
3435
+ '<div class="sidebar-sub">'
@@ -80,6 +81,7 @@
8081
+ '<a href="/docs/node/index.html" onclick="toggleMobileMenu()">Getting Started</a>'
8182
+ '<a href="/docs/node/api-reference.html" onclick="toggleMobileMenu()">API Reference</a>'
8283
+ '<div class="mobile-menu-section">Integrations</div>'
84+
+ '<a href="/docs/node/integrations/index.html" onclick="toggleMobileMenu()">Choosing an Integration</a>'
8385
+ '<div class="mobile-menu-subsection">Sherpa-ONNX</div>'
8486
+ '<div class="mobile-menu-sub-links">'
8587
+ '<a href="/docs/node/integrations/sherpa-onnx-stt.html" onclick="toggleMobileMenu()">Speech-to-Text</a>'
Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
<!DOCTYPE html>
2+
<html lang="en" data-theme="dark">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="theme-color" content="#0a0a0f" media="(prefers-color-scheme: dark)">
7+
<meta name="theme-color" content="#f8f8fb" media="(prefers-color-scheme: light)">
8+
<script>
9+
(function() {
10+
var t = localStorage.getItem('decibri-theme');
11+
if (t) document.documentElement.setAttribute('data-theme', t);
12+
else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) document.documentElement.setAttribute('data-theme', 'light');
13+
})();
14+
</script>
15+
<title>Choosing an Integration | decibri docs</title>
16+
<meta name="description" content="Compare decibri integrations for speech-to-text, keyword spotting, and voice activity detection. Local and cloud options compared by latency, cost, and offline support.">
17+
<meta name="robots" content="index, follow">
18+
<meta property="og:title" content="Choosing an Integration | decibri docs">
19+
<meta property="og:description" content="Compare decibri integrations for speech-to-text, keyword spotting, and voice activity detection. Local and cloud options side by side.">
20+
<meta property="og:type" content="article">
21+
<meta property="og:url" content="https://decibri.dev/docs/node/integrations/">
22+
<link rel="canonical" href="https://decibri.dev/docs/node/integrations/">
23+
<link rel="icon" href="/favicon.ico" type="image/x-icon">
24+
<link rel="preconnect" href="https://fonts.googleapis.com">
25+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
26+
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Outfit:wght@300;400;500;600;700&display=swap" rel="stylesheet">
27+
<link rel="stylesheet" href="../../styles.css">
28+
</head>
29+
<body>
30+
31+
<nav class="docs-nav">
32+
<div class="nav-inner">
33+
<a href="/docs/index.html" class="nav-logo">deci<span>bri</span> docs</a>
34+
<div class="mobile-nav">
35+
<a href="https://github.com/analyticsinmotion/decibri" class="nav-cta" target="_blank" rel="noopener noreferrer" aria-label="GitHub"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg></a>
36+
<button class="mobile-nav-btn" onclick="toggleTheme()" aria-label="Toggle theme" title="Toggle theme">
37+
<svg class="icon-moon" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
38+
<svg class="icon-sun" aria-hidden="true" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
39+
</button>
40+
<button class="mobile-nav-btn" onclick="toggleMobileMenu()" aria-label="Open menu">
41+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
42+
</button>
43+
</div>
44+
</div>
45+
</nav>
46+
<div class="mobile-menu-overlay" onclick="toggleMobileMenu()"></div>
47+
<div class="mobile-menu"></div>
48+
<div class="sidebar-overlay"></div>
49+
<aside id="sidebar" class="sidebar"></aside>
50+
51+
<div class="doc-content">
52+
<div class="doc-container">
53+
54+
<div class="breadcrumb">
55+
<a href="/docs/index.html">Docs</a>
56+
<span class="sep">/</span>
57+
<a href="/docs/node/index.html">Node.js</a>
58+
<span class="sep">/</span>
59+
<span class="current">Integrations</span>
60+
</div>
61+
62+
<h1>Choosing an Integration</h1>
63+
<p class="lead">decibri captures audio. These integrations process it. Use the table below to find the right one for your use case.</p>
64+
65+
<h2>Comparison</h2>
66+
<div class="table-wrap">
67+
<table>
68+
<thead>
69+
<tr>
70+
<th>Use case</th>
71+
<th>Integration</th>
72+
<th>Latency</th>
73+
<th>Cost</th>
74+
<th>Offline</th>
75+
</tr>
76+
</thead>
77+
<tbody>
78+
<tr>
79+
<td>Real-time local STT</td>
80+
<td><a href="sherpa-onnx-stt.html">Sherpa-ONNX</a></td>
81+
<td>Low</td>
82+
<td>Free</td>
83+
<td>Yes</td>
84+
</tr>
85+
<tr>
86+
<td>High-accuracy local STT</td>
87+
<td><a href="whisper-cpp.html">Whisper.cpp</a></td>
88+
<td>Medium</td>
89+
<td>Free</td>
90+
<td>Yes</td>
91+
</tr>
92+
<tr>
93+
<td>Wake word detection</td>
94+
<td><a href="sherpa-onnx-kws.html">Sherpa-ONNX KWS</a></td>
95+
<td>Low</td>
96+
<td>Free</td>
97+
<td>Yes</td>
98+
</tr>
99+
<tr>
100+
<td>Voice activity detection</td>
101+
<td><a href="sherpa-onnx-vad.html">Sherpa-ONNX VAD</a></td>
102+
<td>Low</td>
103+
<td>Free</td>
104+
<td>Yes</td>
105+
</tr>
106+
<tr>
107+
<td>Real-time cloud STT</td>
108+
<td><a href="deepgram.html">Deepgram</a></td>
109+
<td>Low</td>
110+
<td>Pay-per-use (free tier)</td>
111+
<td>No</td>
112+
</tr>
113+
<tr>
114+
<td>Real-time cloud STT</td>
115+
<td><a href="assemblyai.html">AssemblyAI</a></td>
116+
<td>Low</td>
117+
<td>Pay-per-use</td>
118+
<td>No</td>
119+
</tr>
120+
<tr>
121+
<td>Real-time cloud STT</td>
122+
<td><a href="openai-realtime.html">OpenAI Realtime</a></td>
123+
<td>Low</td>
124+
<td>Pay-per-use</td>
125+
<td>No</td>
126+
</tr>
127+
</tbody>
128+
</table>
129+
</div>
130+
131+
<h2>Local vs cloud</h2>
132+
<p><strong>Local integrations</strong> (Sherpa-ONNX, Whisper.cpp) run entirely on-device. No API key, no network, no usage fees. Audio never leaves the machine. Trade-off: you supply the compute and manage the model files.</p>
133+
<p><strong>Cloud integrations</strong> (Deepgram, AssemblyAI, OpenAI) stream audio to an external API. Higher accuracy on some benchmarks, no local GPU required, and managed model updates. Trade-off: requires an API key, network connectivity, and incurs per-use costs.</p>
134+
135+
<h2>Integration guides</h2>
136+
137+
<h3 class="category-label">Local (no API key, no cloud)</h3>
138+
139+
<h3>Sherpa-ONNX</h3>
140+
<div class="cards-grid">
141+
<a href="sherpa-onnx-stt.html" class="doc-card">
142+
<h3>Speech-to-Text</h3>
143+
<p>Real-time local transcription</p>
144+
</a>
145+
<a href="sherpa-onnx-kws.html" class="doc-card">
146+
<h3>Keyword Spotting</h3>
147+
<p>Detect spoken keywords with sherpa-onnx</p>
148+
</a>
149+
<a href="sherpa-onnx-vad.html" class="doc-card">
150+
<h3>Voice Activity Detection</h3>
151+
<p>Detect speech vs silence with Silero VAD</p>
152+
</a>
153+
</div>
154+
155+
<h3>Whisper.cpp</h3>
156+
<div class="cards-grid">
157+
<a href="whisper-cpp.html" class="doc-card">
158+
<h3>Speech-to-Text</h3>
159+
<p>Local transcription with OpenAI's Whisper model</p>
160+
</a>
161+
</div>
162+
163+
<h3 class="category-label">Cloud (API key required)</h3>
164+
165+
<h3>Deepgram</h3>
166+
<div class="cards-grid">
167+
<a href="deepgram.html" class="doc-card">
168+
<h3>Real-Time Transcription</h3>
169+
<p>Cloud speech-to-text with Deepgram's Nova-3 model</p>
170+
</a>
171+
</div>
172+
173+
<h3>AssemblyAI</h3>
174+
<div class="cards-grid">
175+
<a href="assemblyai.html" class="doc-card">
176+
<h3>Real-Time Transcription</h3>
177+
<p>Cloud speech-to-text with AssemblyAI's Universal-3 Pro model</p>
178+
</a>
179+
</div>
180+
181+
<h3>OpenAI</h3>
182+
<div class="cards-grid">
183+
<a href="openai-realtime.html" class="doc-card">
184+
<h3>Real-Time Transcription</h3>
185+
<p>Stream audio to OpenAI's Realtime API for speech-to-text</p>
186+
</a>
187+
</div>
188+
189+
<footer class="doc-footer">
190+
<p>Apache-2.0 &copy; <a href="https://analyticsinmotion.com" target="_blank" rel="noopener noreferrer">Analytics in Motion</a> &middot; <a href="https://github.com/analyticsinmotion/decibri" target="_blank" rel="noopener noreferrer">GitHub</a> &middot; <a href="https://www.npmjs.com/package/decibri" target="_blank" rel="noopener noreferrer">npm</a></p>
191+
</footer>
192+
193+
</div>
194+
</div>
195+
196+
<script src="../../nav.js"></script>
197+
</body>
198+
</html>

docs/docs/styles.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ body {
336336
right: 0;
337337
width: 260px;
338338
height: 100vh;
339+
height: 100dvh;
339340
background: var(--bg-elevated);
340341
border-left: 1px solid var(--border);
341342
z-index: 251;

docs/sitemap.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
<changefreq>monthly</changefreq>
3131
<priority>0.8</priority>
3232
</url>
33+
<url>
34+
<loc>https://decibri.dev/docs/node/integrations/</loc>
35+
<lastmod>2026-04-02</lastmod>
36+
<changefreq>monthly</changefreq>
37+
<priority>0.8</priority>
38+
</url>
3339
<url>
3440
<loc>https://decibri.dev/docs/node/integrations/sherpa-onnx-stt.html</loc>
3541
<lastmod>2026-03-30</lastmod>

0 commit comments

Comments
 (0)