Live speech-to-text transcription demo using Deepgram's Listen API with Node.js backend and web frontend.
Before you start, it's essential to generate a Deepgram API key to use in this project. Sign-up now for Deepgram and create an API key.
- Deepgram API Key (sign up for free)
- Node.js 24 and pnpm 10+
Note: This project uses strict supply chain security measures. npm and yarn will NOT work. See SECURITY.md for details.
Follow these steps to get started with this starter application.
- Clone the repository
Clone the repository with submodules (the frontend is a shared submodule):
git clone --recurse-submodules https://github.com/deepgram-starters/node-live-transcription.git
cd node-live-transcription- Install dependencies
Install the project dependencies:
# Option 1: Use the helper script (recommended)
pnpm run install:all
# Option 2: Manual two-step install
pnpm install
cd frontend && pnpm install && cd ..Note: Due to security settings (ignore-scripts=true), frontend dependencies must be installed separately. The install:all script handles both steps.
- Set your API key
Create a .env file:
DEEPGRAM_API_KEY=your_api_key_here- Run the app
Development mode (with hot reload):
pnpm devProduction mode (build and serve)
# Build the frontend
pnpm build
# Start the production server
pnpm starthttp://localhost:8080
This application:
- Accepts a live audio stream URL via WebSocket connection
- Fetches the audio stream from the provided URL
- Sends binary audio data to Deepgram's live Speech-to-Text API
- Returns real-time transcription results to the client
This project includes a Makefile for framework-agnostic operations:
make help # Show all available commands
make init # Initialize submodules and install dependencies
make dev # Start development servers
make build # Build frontend for production
make start # Start production server
make update # Update submodules to latest
make clean # Remove node_modules and build artifacts
make status # Show git and submodule statusUse make commands for a consistent experience regardless of package manager.
- Open an issue in this repository
- Join the Deepgram Github Discussions Community
- Join the Deepgram Discord Community
See our Contributing Guidelines to learn about contributing to this project.
This project follows the Deepgram Code of Conduct.
For security policy and procedures, see our Security Policy.
MIT - See LICENSE