Skip to content
Merged
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ All repos live under the `wavekat` GitHub org. SSH access uses the `github.com-w
| `wavekat-tts` | Text-to-speech synthesis for voice pipelines | Pink `#ff4081` |
| `wavekat-cli` | Command-line client (`wk`) for the WaveKat platform | Blue `#2196f3` |
| `wavekat-sip` | SIP signaling and RTP transport for voice pipelines | Indigo `#3f51b5` |
| `wavekat-asr` | Streaming speech-to-text for voice pipelines | Red `#f44336` |

### Tools
| Name | What it does | URL |
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ WaveKat builds open-source, AI-powered solutions that put enterprise-grade capab
| [wavekat-tts](https://github.com/wavekat/wavekat-tts) | Text-to-speech synthesis — unified Rust interface for multiple TTS backends | [![GitHub stars](https://img.shields.io/github/stars/wavekat/wavekat-tts?style=flat-square)](https://github.com/wavekat/wavekat-tts) | [![Crates.io Total Downloads](https://img.shields.io/crates/d/wavekat-tts?style=flat-square)](https://crates.io/crates/wavekat-tts) |
| [wavekat-cli](https://github.com/wavekat/wavekat-cli) | Command-line client (`wk`) for the WaveKat platform | [![GitHub stars](https://img.shields.io/github/stars/wavekat/wavekat-cli?style=flat-square)](https://github.com/wavekat/wavekat-cli) | [![Crates.io Total Downloads](https://img.shields.io/crates/d/wavekat-cli?style=flat-square)](https://crates.io/crates/wavekat-cli) |
| [wavekat-sip](https://github.com/wavekat/wavekat-sip) | SIP signaling and RTP transport for voice pipelines | [![GitHub stars](https://img.shields.io/github/stars/wavekat/wavekat-sip?style=flat-square)](https://github.com/wavekat/wavekat-sip) | [![Crates.io Total Downloads](https://img.shields.io/crates/d/wavekat-sip?style=flat-square)](https://crates.io/crates/wavekat-sip) |
| [wavekat-asr](https://github.com/wavekat/wavekat-asr) | Streaming speech-to-text — unified Rust interface for multiple ASR backends | [![GitHub stars](https://img.shields.io/github/stars/wavekat/wavekat-asr?style=flat-square)](https://github.com/wavekat/wavekat-asr) | [![Crates.io Total Downloads](https://img.shields.io/crates/d/wavekat-asr?style=flat-square)](https://crates.io/crates/wavekat-asr) |

## Tech Stack

Expand Down
2 changes: 2 additions & 0 deletions scripts/sync-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ const sources = [
// { slug: "lab", repo: "wavekat/wavekat-lab", docsPath: "docs/site", private: false },
// { slug: "core", repo: "wavekat/wavekat-core", docsPath: "docs/site", private: false },
// { slug: "tts", repo: "wavekat/wavekat-tts", docsPath: "docs/site", private: false },
// { slug: "sip", repo: "wavekat/wavekat-sip", docsPath: "docs/site", private: false },
// { slug: "asr", repo: "wavekat/wavekat-asr", docsPath: "docs/site", private: false },
];

const enabled = process.env.SYNC_DOCS === "1";
Expand Down
2 changes: 2 additions & 0 deletions src/lib/docs-products.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const LABELS: Record<string, ProductLabels> = {
turn: { short: 'Turn', long: 'WaveKat Turn' },
tts: { short: 'TTS', long: 'WaveKat TTS' },
core: { short: 'Core', long: 'WaveKat Core' },
sip: { short: 'SIP', long: 'WaveKat SIP' },
asr: { short: 'ASR', long: 'WaveKat ASR' },
};

export function productLabel(slug: string, form: 'short' | 'long' = 'long'): string {
Expand Down
64 changes: 47 additions & 17 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,7 @@ import Base from '../layouts/Base.astro';
import Header from '../components/Header.astro';
import Footer from '../components/Footer.astro';

const libraries = [
{
name: 'wavekat-core',
description: 'Shared audio primitives — AudioFrame, sample format conversion.',
color: '#00e676',
href: 'https://github.com/wavekat/wavekat-core',
},
const voicePipeline = [
{
name: 'wavekat-vad',
description: 'Voice Activity Detection — WebRTC, Silero, TEN-VAD, FireRedVAD.',
Expand All @@ -23,10 +17,10 @@ const libraries = [
href: 'https://github.com/wavekat/wavekat-turn',
},
{
name: 'wavekat-lab',
description: 'Interactive dashboard for testing and comparing audio backends.',
color: '#ffd740',
href: 'https://github.com/wavekat/wavekat-lab',
name: 'wavekat-asr',
description: 'Streaming speech-to-text — unified Rust interface over multiple ASR backends.',
color: '#f44336',
href: 'https://github.com/wavekat/wavekat-asr',
},
{
name: 'wavekat-tts',
Expand All @@ -35,18 +29,33 @@ const libraries = [
href: 'https://github.com/wavekat/wavekat-tts',
},
{
name: 'wavekat-cli',
description: 'Command-line client (wk) for the WaveKat platform.',
color: '#2196f3',
href: 'https://github.com/wavekat/wavekat-cli',
name: 'wavekat-core',
description: 'Shared audio primitives — AudioFrame, sample format conversion.',
color: '#00e676',
href: 'https://github.com/wavekat/wavekat-core',
},
{
name: 'wavekat-sip',
description: 'SIP signaling and RTP transport — REGISTER, INVITE, dialogs, SDP, and RTP for voice pipelines.',
description: 'SIP signaling and RTP transport — REGISTER, INVITE, SDP, dialog tracking.',
color: '#3f51b5',
href: 'https://github.com/wavekat/wavekat-sip',
},
];

const toolsAndClients = [
{
name: 'wavekat-lab',
description: 'Interactive dashboard for testing and comparing audio backends.',
color: '#ffd740',
href: 'https://github.com/wavekat/wavekat-lab',
},
{
name: 'wavekat-cli',
description: 'Command-line client (wk) for the WaveKat platform.',
color: '#2196f3',
href: 'https://github.com/wavekat/wavekat-cli',
},
];
---

<Base>
Expand Down Expand Up @@ -90,8 +99,29 @@ const libraries = [
<!-- Libraries -->
<section class="mb-16">
<h2 class="text-xs font-bold tracking-widest text-gray-400 uppercase mb-5">Libraries</h2>

<h3 class="text-[11px] font-semibold tracking-wider text-gray-500 dark:text-gray-500 uppercase mb-3">Voice pipeline</h3>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
{voicePipeline.map((lib) => (
<a
href={lib.href}
target="_blank"
rel="noopener noreferrer"
class="group block rounded border p-5 dark:bg-wk-surface bg-gray-50 hover:bg-gray-100 dark:hover:bg-[#0d1520] transition-colors"
style={`border-color: ${lib.color}40`}
>
<span class="text-sm font-bold block mb-1.5" style={`color: ${lib.color}`}>{lib.name}</span>
<p class="text-xs text-gray-500 dark:text-gray-400 leading-relaxed mb-4">{lib.description}</p>
<span class="text-xs text-gray-400 dark:text-gray-600 group-hover:text-gray-600 dark:group-hover:text-gray-400 transition-colors">
github.com/wavekat/{lib.name} →
</span>
</a>
))}
</div>

<h3 class="text-[11px] font-semibold tracking-wider text-gray-500 dark:text-gray-500 uppercase mb-3 mt-8">Tools & clients</h3>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
{libraries.map((lib) => (
{toolsAndClients.map((lib) => (
<a
href={lib.href}
target="_blank"
Expand Down
Loading