config.example.toml 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. [audio]
  2. backend = "parec" # "parec" (PulseAudio by name) | "sounddevice"
  3. device = "VirtualMicSink.monitor" # PulseAudio source name (parec) or device index/name (sounddevice)
  4. sample_rate = 16000
  5. channels = 1
  6. frame_ms = 30 # webrtcvad requires 10/20/30 ms
  7. gain = 1.0
  8. [vad]
  9. aggressiveness = 2 # webrtcvad 0-3
  10. pre_roll_ms = 400 # ring buffer kept BEFORE speech is confirmed
  11. speech_start_ms = 90 # consecutive speech frames needed to confirm start
  12. silence_ms = 700 # trailing silence that ends an utterance
  13. min_utterance_ms = 300 # discard utterances with less actual speech than this
  14. max_utterance_s = 30.0 # force-finalize a very long utterance
  15. [whisper]
  16. model = "small" # multilingual (DO NOT use .en suffix)
  17. device = "cpu" # "cpu" | "cuda"
  18. compute_type = "int8" # "int8" cpu, "float16" cuda
  19. language = "auto" # "auto" | "en" | "es"
  20. beam_size = 1
  21. vad_filter = false
  22. [output]
  23. stdout = true
  24. jsonl_dir = "transcripts" # one JSONL file per day: YYYY-MM-DD.jsonl
  25. [sink]
  26. sink_name = "VirtualMicSink" # Name of the null sink to create
  27. remap_source_name = "VirtualMic" # Name of the exposed microphone
  28. loopback_latency_msec = 1 # Loopback latency in ms
  29. monitor_output = false # Loop sink.monitor to default sink (AVOID: causes acoustic feedback)