Skip to content

TUI voice mode: Python crash on 2nd transcription (cTranslate2/OpenBLAS threading conflict) #15462

@Montbra

Description

@Montbra

Bug Description

TUI voice mode crashes Python process on the 2nd transcription attempt. First transcription works, 2nd always crashes with SIGABRT.

CLI ancient (without --tui) works correctly — no crashes, Ctrl+B stops and transcribes, auto-stop by silence works, TTS works.

Steps to Reproduce

  1. Start Hermes with TUI: hermes --tui
  2. Enable voice mode: /voice on
  3. Press Ctrl+B to start recording, speak, press Ctrl+B to stop — 1st transcription works ✓
  4. Press Ctrl+B again to start new recording, speak briefly, press Ctrl+B — Python crashes (SIGABRT)

Environment

  • OS: Linux (openSUSE Tumbleweed)
  • Hermes: latest from NousResearch/hermes-agent
  • Python: 3.11
  • Audio: sounddevice + PortAudio + PipeWire
  • STT: faster-whisper (local, GPU)

Crash Stack Trace

frame.abi3.so + CFFI + libportaudio + scipy_openblas
__pyx_pf_2av_5frame_5Frame_2__dealloc__
PyThread_acquire_lock_timed + _queue.cpython-311
epoll_wait + libspa-support.so + libpipewire-0.3

Multiple threads: libgomp, blas_thread_server, ctranslate2 Worker, libpipewire.

Root Cause

TUI uses hermes_cli/voice.py with start_continuous(). The 2nd transcription crashes — likely accumulated state in cTranslate2/OpenBLAS thread pool. CLI ancient avoids this because each transcription runs in a fresh thread that terminates.

Workaround

Use CLI ancient (without --tui). Voice mode works correctly there.

Severity

Medium — TUI voice unusable. CLI ancient is working alternative.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existscomp/tuiTerminal UI (ui-tui/ + tui_gateway/)tool/ttsText-to-speech and transcriptiontype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions