Live microphone speech to text using vosk
Find a file
2025-09-30 14:48:20 -07:00
src better error reporting/handling around channels 2025-09-30 14:48:20 -07:00
.gitignore AI generated first pass 2025-09-09 10:15:16 -07:00
.mise.toml working sample without nix needed 2025-09-09 19:02:07 -07:00
.pre-commit-config.yaml add structural aspects to repo 2025-09-09 14:08:57 -07:00
alsa.conf switch to alsa default device and ask users to configure through alsa.conf 2025-09-10 18:05:51 -07:00
build.zig remove demo - we will use. Also add --exec handling 2025-09-10 18:40:53 -07:00
build.zig.zon support linux arm64, riscv64, and x86_64 2025-09-09 20:14:49 -07:00
LICENSE AI generated first pass 2025-09-09 10:15:16 -07:00
README.md switch to alsa default device and ask users to configure through alsa.conf 2025-09-10 18:05:51 -07:00

Real-time Speech Recognition with Vosk and Zig

This project implements a minimal real-time speech-to-text application using Vosk and Zig.

Audio Device Configuration

The application uses ALSA's default device, which is configured in alsa.conf. To use a different audio device:

  1. Find your audio devices: aplay -l or arecord -l
  2. Edit alsa.conf and update the pcm.!default section:
    pcm.!default {
        type hw
        card 3      # Change to your card number
        device 0    # Change to your device number
    }
    
  3. Rebuild and run the application

Prerequisites

  • Zig 0.15.1 (configured via mise)
  • Nix development environment configured for ALSA, and audio libraries

Vosk Model Download

The application uses the Vosk small English model for speech recognition:

Installation Steps

  1. Enter nix development environment: nix develop
  2. Build application: zig build
  3. Run: zig build run

Usage

The application will:

  • Initialize audio capture from default microphone
  • Load the Vosk speech recognition model
  • Process audio in real-time
  • Output recognized text to terminal
  • Exit on Ctrl+C

Dependencies

  • Vosk C API library
  • ALSA for audio capture

Notes

Vosk tends to recognize "light" as lake or like