hayamimi 早耳 v0.1.2 — user-reported fixes & network audio input
hayamimi 早耳 v0.1.2 — user-reported fixes & network audio input
Two days after the first release, users started filing real bug reports, and we started wiring hayamimi up to devices beyond the PC it runs on. v0.1.2 contains those fixes, a network audio input, and one change of default worth knowing about.
Heads-up: the default port changed
The --serve default port moved from 8765 to 8833 (8=ha, 8=ya, 33=mimi — it spells the project name). If your OBS browser source points at localhost:8765, update the URL, or launch with --serve 8765 to keep the old port.
Fixes from user reports
Both issues below were filed by @kentatorimoto with reproducible, root-caused reports that made the fixes straightforward — thank you.
--lang-switch-guardnow works as documented (#2). The README promised that short new-language detections are treated as noise, but the implementation only used the guard to suppress a fallback path, so two consecutive short misdetections could still flip the subtitle language mid-session. A detection shorter than the guard now never advances the language switch, and the real switch knob is exposed as--lid-switch-confirm N(default 2).--hotwordsfailures are loud now (#1). The Japanese tier's model ships vocabulary that cannot encode hotwords under the current configuration, so every hotword was silently dropped — the underlying library only murmurs on stderr and exits successfully. hayamimi now verifies each hotword against the model vocabulary at startup and prints an unmissable warning, with--replacesuggested as the workaround. A real fix (a byte-level hotword encoder) remains future work.
New: network audio input
--input ws starts a WebSocket endpoint that accepts streamed audio from another device on your LAN — the first building block for the phone and Stack-chan clients this project is working toward. Ingested audio flows through the normal pipeline, so a remote microphone's transcript shows up on the existing dashboard and OBS overlay. The protocol is a deliberately tiny WebSocket subset that bare-metal firmware can speak, and scripts/ws_mic_client.py is a working reference client.
Tests grew from 23 to 52. No model changes; download_models.py output is unchanged.
日本語での要約
公開から2日で届いたユーザー報告2件(@kentatorimoto さん、再現手順と原因分析まで揃った丁寧な報告をありがとうございました)を修正しました。--lang-switch-guard はREADMEの説明どおり「ガード秒数未満の短い判定はノイズ扱い」で動くようになり、切替に必要な連続一致回数も --lid-switch-confirm として公開しています。日本語でホットワードが無言のまま無効になっていた問題には、起動時チェックと明確な警告を追加しました。新機能として、LAN上の別デバイスからマイク音声を送り込める --input ws を追加しています(スマホ・スタックチャン連携への布石で、受けた音声は既存のダッシュボードやOBSオーバーレイにそのまま流れます)。また --serve のデフォルトポートを8765から8833(は・や・みみ)に変更したため、OBSのブラウザソースURLの更新が必要です。
🤖 Generated with Claude Code