Function: eca-chat-talk
eca-chat-talk is an interactive and natively compiled function defined
in eca-chat.el.
Signature
(eca-chat-talk)
Documentation
Talk to the assistent by recording audio and transcribing it.
Key Bindings
eca-chat-mode-map C-c C-S-t
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
;;;###autoload
(defun eca-chat-talk ()
"Talk to the assistent by recording audio and transcribing it."
(interactive)
(unless (require 'whisper nil t)
(user-error "Whisper.el is not available, please install it first"))
(let ((session (eca-session)))
(eca-assert-session-running session)
(eca-chat-open session)
(eca-chat--with-current-buffer (eca-chat--get-last-buffer session)
(goto-char (point-max)))
(let ((buffer (get-buffer-create "*whisper-stdout*")))
(with-current-buffer buffer
(erase-buffer)
(make-local-variable 'whisper-after-transcription-hook)
(add-hook 'whisper-after-transcription-hook
(lambda ()
(let ((transcription (buffer-substring
(line-beginning-position)
(line-end-position))))
(eca-chat--with-current-buffer (eca-chat--get-last-buffer session)
(eca-chat--insert transcription)
(newline)
(eca-chat--key-pressed-return))))
nil t)
(whisper-run)
(eca-info "Recording audio. Press RET when you are done.")
(while (not (equal ?\r (read-char)))
(sit-for 0.5))
(whisper-run)))))