Skip to main content

voice

Speech in and out for iii — transcribe audio files to timestamped text, run live dictation sessions fed with microphone audio, and read text aloud.

소스 정보

저장소
iii-hq/workers
최근 소스 활동
2026년 9월 15일 12:14
감지된 SKILL.md 언어
영어
스타
114
포크
26

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
voice
description
Speech in and out for iii — transcribe audio files to timestamped text, run live dictation sessions fed with microphone audio, and read text aloud.
# voice Local speech-to-text and read-aloud on the iii bus. Nothing leaves the machine by default: a small streaming recognizer produces live text, while bundled Parakeet or a configured host `whisper-cli` can produce accurate final text. An OpenAI-compatible endpoint or any speech provider registered with llm-router can replace either half through configuration. ## When to Use - A user attached or named a WAV recording and wants its text: `voice::transcribe`. - A surface streams microphone audio and wants live text: `voice::dictation::*`. - A reply should be spoken: `voice::speak`. ## Boundaries - Audio in is 16 kHz mono 16-bit PCM for dictation; WAV files of any rate for `voice::transcribe`. No other container is decoded. - The bundled models are English. Portuguese and other languages need `stt.backend: whisper_cpp` with a multilingual GGML model, or a remote backend. - For natural local read-aloud, install `piper-tts`, enter your language in Voice's Piper language filter, choose a matching voice from the bundled multilingual catalog, explicitly download it, and select `tts.backend: piper`. `piper-pt-br-faber-medium` remains available for Brazilian Portuguese. Filtering does not download or change the active voice. `tts.piper.command` is an executable path, not a shell command. No fallback to robotic eSpeak occurs if Piper is unavailable. - `tts.piper.device` defaults to `auto` (request NVIDIA CUDA, allow ONNX Runtime CPU fallback; retry once on CPU if the GPU-preferred process fails). `cpu` forces CPU. Auto allocates 30 seconds per attempt; CPU-only gets 60 seconds. GPU requires compatible onnxruntime-gpu/CUDA/cuDNN in Piper's own environment. No drivers are auto-installed; doctor reports policy, not verified GPU usage. - In Console, Read selection speaks only highlighted text in that chat. Voice chat is opt-in per browser/conversation and reads live assistant text in sentence/phrase chunks before the turn ends (including visible progress, never thinking/tool arguments). It deduplicates snapshots and flushes only the unread tail at completion; it does not send messages or keep the microphone open. Stop disables automatic reading. - `voice::speak` accepts `text_format: markdown` (default) to read prose without Markdown markers, hidden link URLs or block code; `plain` preserves literal text. Chat selections use plain because they are already rendered. The character cap applies after conversion. No messages are modified and no remote links are fetched. - Every `voice::speak` backend returns `audio_base64` and `mime` to the caller. `host` generates WAV using say/espeak in file-output mode, never server playback. The requesting browser plays/stops its own audio; other clients are unaffected. - Dictation sessions idle past `session_idle_secs` are closed by the worker. ## Functions - `voice::transcribe` — a WAV file (path or base64) to text with timestamped segments. - `voice::dictation::start` — open a session; transcript events go to `output_function_id`. - `voice::dictation::push` — feed one base64 PCM chunk (rising `seq`). - `voice::dictation::stop` — close a session and return its transcript (`discard` to drop it). - `voice::dictation::list` — open sessions. - `voice::speak` — read text aloud; returns a `speech_id`. - `voice::speech::prepare` — stateless Markdown snapshot preparation (`text`, `complete`); returns plain text and `max_chunk_chars`. Withhold unfinished syntax, then queue plain-text `voice::speak` clips in the requesting browser. - `voice::speak::stop` — legacy compatibility, returns `stopped: 0`. Stop browser audio locally. - `voice::models::list` — local models, whether each is installed, and each one's license, author and source (Parakeet TDT 0.6B v2 is CC BY 4.0: keep the attribution if you copy its files elsewhere). - `voice::models::download` — install a local model, checksum-verified. - `voice::models::remove` — delete a downloaded model. - `voice::doctor` — backends, model state, open sessions. ## Reactive triggers - `voice::transcript` — partial, final, closed and error events of dictation sessions (filter `session_id`). - `voice::session-started`, `voice::session-stopped` — session lifecycle. - `voice::model-progress` — download progress, one event per megabyte and a final `done`.
GitHub에서 보기