Skip to content

kaizen403/accent-ai

Repository files navigation

AccentAI

Convert your speech to British, American, Australian, or Indian accent. Powered by ElevenLabs Speech-to-Speech.

Record your voice → pick an accent → get back a converted MP3. That's it.


stack

  • Desktop shell — Tauri 2 (Rust, ~10 MB binary)
  • Frontend — Next.js 15 (static export, runs in webview)
  • UI — shadcn/ui + Tailwind CSS
  • Backend — Node 20 + Fastify (proxies to ElevenLabs, holds your API key)
  • Audio — ElevenLabs eleven_multilingual_sts_v2 Speech-to-Speech

prerequisites

Requirement Version
Node.js 20+
pnpm 10+
Rust 1.80+
ElevenLabs account

Linux — install webkit2gtk and related deps first:

# Ubuntu / Debian
sudo apt install libwebkit2gtk-4.1-dev libsoup-3.0-dev libssl-dev \
  build-essential curl wget file libxdo-dev libayatana-appindicator3-dev \
  librsvg2-dev

macOS — Xcode Command Line Tools:

xcode-select --install

WindowsMicrosoft C++ Build Tools + WebView2 (pre-installed on Windows 11).


quick start

git clone <repo-url>
cd accent_ai

# copy env template and fill in your ElevenLabs API key
cp .env.example .env
# edit .env → set ELEVENLABS_API_KEY=sk_...

pnpm install

# starts api + desktop together
pnpm dev

The desktop app opens automatically. The API runs on http://localhost:3001.


per-package commands

# api only
pnpm --filter @accent-ai/api dev

# desktop (Next.js dev server only, no Tauri shell)
pnpm --filter @accent-ai/desktop dev

# desktop with Tauri shell
pnpm --filter @accent-ai/desktop tauri:dev

# run all tests
pnpm test

# typecheck everything
pnpm typecheck

voice curation

The app ships with placeholder voice IDs. To pick real voices for each accent:

pnpm --filter @accent-ai/api curate-voices

This fetches available ElevenLabs voices, downloads previews, and lets you pick 1 male + 1 female per accent. Selected IDs get written to apps/api/src/lib/voice-catalog.ts.


building binaries

Set NEXT_PUBLIC_API_URL to your deployed backend URL (defaults to http://localhost:3001):

NEXT_PUBLIC_API_URL=https://api.your-domain.com pnpm build:desktop

Output lands in apps/desktop/src-tauri/target/release/bundle/.

See docs/build.md for per-platform prerequisites, debug builds, and a CI example.

note: code signing is not set up yet. users will see OS security warnings on first launch — see the workarounds below.

unidentified developer workarounds

macOS

Right-click the .appOpen → click Open in the dialog. Or from terminal:

xattr -d com.apple.quarantine /Applications/AccentAI.app

Windows

SmartScreen will block the .msi installer. Click More infoRun anyway.

Linux

AppImage: just chmod +x AccentAI.AppImage && ./AccentAI.AppImage.
.deb: sudo dpkg -i accentai_*.deb.


privacy

  • Audio is sent to your own backend (which you host), which proxies to ElevenLabs.
  • No analytics, no telemetry, no third-party tracking.
  • Local history stays on your machine in the app data directory.
  • Your ElevenLabs API key never leaves your backend.

license

MIT — see LICENSE (to be added).

About

Convert your speech to British, American, Australian, or Indian accent. Tauri 2 + Next.js 15 + ElevenLabs Speech-to-Speech.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors