voicelens 音声文字起こし / 音声入力
トリガー条件
- ユーザーが音声ファイルのパスまたはURLを指定し、「文字起こし / 書き起こし / 音声をテキスト化 / 音声内容を抽出」を依頼する。
- ユーザーがvoicelensのASRエンジン(OpenAI互換エンドポイント / Groq / whisper.cpp)の設定方法を尋ねる。
- (DSHのみ)ユーザーが入力欄のマイクボタンを押して話す — このパスはクライアントプラグインが自動的に処理するため、本スキルは介入不要。
コアルール
音声ファイルが存在するが現在のモデルが「聞こえない」場合、ffmpeg / OCR / 文字起こしスクリプトを独自に作成せず、まず文字起こしを実行し、返された text を証拠として引用する。
実行(ホスト別)
- DeepSeek Harness(
transcribe_audioツールあり)→ そのツールを直接呼び出し、pathまたはurlを渡す。 - その他のホスト(Claude Code / Codex / Pi / OpenClaw / OpenCode …)→ CLIを実行:
JSONを出力:voicelens transcribe <file-or-url> [--lang zh] [--provider groq]{ "text", "language", "provider" }、textを証拠として引用する。 - 診断(任意のホスト):
voicelens doctor
設定(エージェントがユーザーに代わって実行)
設定の優先順位:環境変数 VOICELENS_* > ~/.voicelens/config.json > 組み込みデフォルト。
オプションA:Groq(無料枠あり、推奨)
VOICELENS_PROVIDER=groq
VOICELENS_GROQ_API_KEY=<gsk_...>
オプションB:OpenAI互換エンドポイント(任意のwhisperゲートウェイ)
VOICELENS_PROVIDER=openai
VOICELENS_OPENAI_API_KEY=<key>
VOICELENS_OPENAI_BASE_URL=https://api.openai.com/v1
VOICELENS_OPENAI_MODEL=whisper-1
オプションC:ローカルwhisper.cpp(キー不要)
VOICELENS_PROVIDER=whisper-local
VOICELENS_WHISPER_CPP=/path/to/whisper.cpp/build/bin/main
VOICELENS_WHISPER_MODEL=/path/to/ggml-base.bin
または ~/.voicelens/config.json に書き込み:
{ "provider": "groq", "groqApiKey": "gsk_..." }
出力契約
{ text, language?, provider } — モデル側の文字起こしは常にこの形式(ツールとCLIで共通)。
既知の制限
- DSHには現在のところ音声メッセージパイプラインがなく(
attachmentsは画像のみ、ModelModalityは text|image のみ)、そのため音声入力はDSHクライアントのマイクボタン経由;モデル側でのファイル文字起こしは本スキル/ツールを経由する。 - DSHのマイクボタンはChrome/Edgeの
SpeechRecognitionに依存(設定不要);その他のブラウザでは切り替えを促す。