Skip to content

fix(example): add native desktop capture to Tauri transcription - #326

Open
Raphjacksun7 wants to merge 8 commits into
deepgram:mainfrom
Raphjacksun7:fix/tauri-capture
Open

fix(example): add native desktop capture to Tauri transcription#326
Raphjacksun7 wants to merge 8 commits into
deepgram:mainfrom
Raphjacksun7:fix/tauri-capture

Conversation

@Raphjacksun7

@Raphjacksun7 Raphjacksun7 commented Sep 4, 2026

Copy link
Copy Markdown

What this adds

This example is a Tauri 2 desktop application for live Deepgram Nova-3 transcription. Its Rust process captures one explicit input with PocketStation and sends linear16 audio through the Deepgram Rust SDK. The TypeScript window selects the input and displays interim and final transcripts with speaker labels.

Available inputs:

  • one running application;
  • the complete system mix;
  • the default microphone.

The microphone is never opened unless the user selects it.

Why PocketStation

cpal can open audio devices, but it does not provide selected-application or desktop-output capture consistently across macOS, Windows, and Linux. PocketStation uses the native Core Audio, WASAPI, and PipeWire implementations behind the same Rust Session API and keeps capture out of the Tauri frontend.

This closes #291.

Verification

  • DEEPGRAM_API_KEY=test python3 examples/340-tauri-live-transcription-rust-ts/tests/test_example.py
  • pnpm build
  • cargo test --locked
  • cargo clippy --locked --all-targets -- -D warnings
  • pnpm tauri build on macOS ARM64
  • exact-commit cargo test and strict Clippy on a Windows 11 guest with the aarch64-pc-windows-msvc Rust toolchain

PocketStation 1.1.10, Deepgram 0.10.1, and Tauri 2.11.5 are installed from their public registries. Native system-audio capture was also checked on physical macOS against PocketStation 1.1.10.

The Windows result is bound to commit fa0a0ed3d74f92b8913cda444a6c8eb280ec7019; its JSON report has SHA-256 0e6179676ed0c524695896a6e2a5d12120a68197afcd20e10a5888d9ea5ef4d5. The automated service call is credential-aware and exits with status 2 when DEEPGRAM_API_KEY is unavailable. I did not record a live Deepgram service result without that credential, and the Windows guest result verifies compilation and tests rather than physical audio hardware.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Suggestion] Tauri desktop live transcription app with system audio capture (Rust + TypeScript)

1 participant